Thank you very much for contributing to this project. Any issues and pull requests following these guidelines are welcome.
There's a code of conduct. TLDR: be respectful.
Vendor specific details are intentionally not included in this module in order to be lightweight and agnostic. If there are changes needed to enable vendor specific behaviour in code or other extension points, check out the spec.
Any contributions are expected to include unit tests.
The continuous integration runs a set of gherkin e2e tests.
If you'd like to run them locally, first pull the test-harness git submodule
git submodule update --init --recursive
and run tests with,
bazel test //test/...
We require PR titles to follow the Conventional Commits specification, meaning all titles should begin with a specifier for the type of change being made, followed by a colon, like feat: add support for boolean flags or perf: improve flag evaluation times by removing time.Sleep.
The full list of available types is:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testsbuild: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)chore: Other changes that don't modify src or test filesrevert: Reverts a previous commit
The Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project.
To sign off that they adhere to these requirements, all commits need to have a Signed-off-by line, like:
fix: solve all the problems
Signed-off-by: John Doe <jd@example.org>
This is easy to add by using the -s/--signoff flag to git commit.
More info is available in the OpenFeature community docs.
This repo uses Release Please to release packages. Release Please set up a running PR that tracks all changes for the library components, and maintains the versions according to conventional commits, generated when PRs are merged. When Release Please PR is merged, any changed artifacts will be published.
We hold regular meetings which you can see here.
We are also present in the #openfeature channel in the CNCF slack.