Contributing to GoDotEnv
Contributions are welcome, but please be aware of the project's development philosophy.
Contribution Policy
As of issue #182, this library has been declared feature complete. The maintainers will not be accepting new functionality or changes that break the existing API.
Contributions that will be gladly accepted include:
- Compatibility Improvements: Changes that bring this library's parsing into closer compatibility with mainline
dotenv
implementations, particularly Ruby's dotenv and Node.js' dotenv. - Ecosystem Updates: Keeping the library up-to-date with the Go ecosystem (e.g., CI updates, documentation changes, core library changes).
- Bug Fixes: Fixes for issues that pertain to the library's core purpose of easing development for twelve-factor applications.
Note: Code changes submitted without tests and references to peer dotenv
implementations will not be accepted.
Development Process
- Fork the repository: Create your own fork of the project on GitHub.
-
Create a feature branch:
git checkout -b my-new-feature
-
Make your changes: Implement your bug fix or improvement.
-
Add or update tests: Ensure your changes are covered by tests. Run the test suite to make sure everything passes:
go test
-
Commit your changes:
git commit -am 'Add some feature'
-
Push to the branch:
git push origin my-new-feature
-
Create a new Pull Request: Submit a pull request from your fork to the main
godotenv
repository.
Continuous Integration
This project uses GitHub Actions to automatically test pull requests and pushes to the main
branch. The CI pipeline runs go test
across multiple versions of Go and on different operating systems (Linux, macOS, and Windows) to ensure compatibility.