Contributing to fgm/container
We welcome contributions to fgm/container! Whether you're fixing a bug, proposing a feature, or improving documentation, your help is appreciated.
- Fork the repository
- Clone your fork
- Create a branch
- Make your changes
- Push to your fork
- Create a pull request to fgm/container
- Code Style: Please follow the existing code style. We use staticcheck, and strive to use idiomatic Go code, following the Effective Go best practices.
- Tests: If you're adding or changing code, please add or update tests as needed. Unit tests are needed, benchmarks are important if your implementation provides new implementations. Fuzz tests are nice to have too.
- Documentation: Update the documentation to reflect your changes.
- Commit Messages: Use clear and concise commit messages. Preferably follow the Conventional Commits format
- Issue Tracking: If you're fixing a bug, please reference the issue number in your pull request description.
- Check existing issues: Before creating a new issue, please check if the bug has already been reported, at issues
- Provide detailed information: Include the following in your bug report:
- Steps to reproduce the bug.
- Expected behavior.
- Actual behavior.
- Your processor family (arm64, amd64, ...)
- Your operating system (Linux, darwin, ...) and version.
- Any relevant error messages or logs.
- Check existing issues: Before suggesting a new feature, please check if it has already been suggested, at issues
- Provide a clear description: Explain the feature you'd like to see and why it would be useful.
- Consider implementation: If possible, provide some ideas on how the feature could be implemented. Example in other languages can be useful.
- Install dependencies:
- This project has zero run-time dependencies, and minimizes test-time dependencies.
- As such, code or tests MUST NOT use non-stdlib packages.
- Follow instructions on the Staticcheck site to install the linter.
- Run tests:
- Currently, this command will run all unit and benchmark tests:
go test -race -run=. -bench=. ./... - If you add fuzz tests, update the documentation to describe how to run them.
- Currently, this command will run all unit and benchmark tests:
- Run the demos:
go run ./cmd/orderedmap go run ./cmd/queuestack
Follow instructions in SECURITY.md.
Do not disclose security vulnerabilities publicly.
Please note that this project is released without a Code of Conduct at this point, but one could be added at any time.
Thank you for contributing to fgm/container!