You will need Node.js >= 18 and yarn
installed.
Instructions for using yarn on all versions of node can be found here.
yarn && yarn submodules
yarn start
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
To develop locally with Devbox, Follow the steps below:
1.Make sure you have Devbox installed.
1.Install the development dependencies by running devbox install
.
1.Enter the development environment by running devbox shell
. This will start a new shell with the project dependencies installed.
1.Continue with the steps above to run the project locally using yarn start
.
yarn build
This command generates static content into the build
directory and can be served using any static contents hosting service.
The ecosystem content is loaded from /src/datasets/index.ts
.
A new hook can be added by:
- Add a new hook in
/src/datasets/hooks
- Add the newly created hook to the
ECOSYSTEM_HOOKS
array in/src/datasets/hooks/index.ts
A new provider can be added by:
- Add a new hook in
/src/datasets/providers
- Add the newly created hook to the
PROVIDERS
array in/src/datasets/providers/index.ts
A new SDK can be added by:
- Add an SVG that represents the technology used by the SDK in the
/static/img
directory. Font Awesome is a good resource finding SVGs. - Add the SVG to the logo map found
/src/datasets/sdks/ecosystem.ts
. The key can be anything you want as long as it matches what you define in the next step. - Add a new SDK in
/src/datasets/sdks
- Add the newly created SDK to the
SDKS
array in/src/datasets/sdks/index.ts
- Run
yarn update:sdk-docs
The SDK docs can be updated by running yarn update:sdk-docs
.
This will fetch the READMEs from all the configured SDK repos and automatically run transformations on the content.
The documentation is hosted by Netlify and deployments are automatically triggered after a successful merge to main.
All contributions to the OpenFeature project are welcome via GitHub pull requests.
To create a new PR, you will need to first fork the GitHub repository and clone upstream.
git clone https://github.com/open-feature/openfeature.dev.git openfeature.dev
Navigate to the repository folder
cd openfeature.dev
Add your fork as an origin
git remote add fork https://github.com/YOUR_GITHUB_USERNAME/openfeature.dev.git
Makes sure your environment is all setup by starting the website
yarn
yarn submodules
yarn start
To start working on a new feature or bugfix, create a new branch and start working on it.
git checkout -b feat/NAME_OF_FEATURE
# Make your changes
git add --all
git commit --signoff
git push fork feat/NAME_OF_FEATURE
Open a pull request against the main openfeature.dev repository.
- If the PR is not ready for review, please mark it as
draft
. - Make sure all required CI checks are clear.
- Submit small, focused PRs addressing a single concern/issue.
- Make sure the PR title reflects the contribution.
- Write a summary that helps understand the change.
- Include usage examples in the summary, where applicable.
A PR is considered to be ready to merge when:
- Major feedback is resolved.
- Urgent fix can take exception as long as it has been actively communicated.
Any Maintainer can merge the PR once it is ready to merge. Note, that some PRs may not be merged immediately if the repo is in the process of a release and the maintainers decided to defer the PR to the next release train.
If a PR has been stuck (e.g. there are lots of debates and people couldn't agree on each other), the owner should try to get people aligned by:
- Consolidating the perspectives and putting a summary in the PR. It is recommended to add a link into the PR description, which points to a comment with a summary in the PR conversation.
- Tagging domain experts (by looking at the change history) in the PR asking for suggestion.
- Reaching out to more people on the CNCF OpenFeature Slack channel.
- Stepping back to see if it makes sense to narrow down the scope of the PR or split it up.
When adding a diagram to the documentation, it's recommended to use one of the following tools:
Mermaid is uses a Markdown-inspired text definitions to create diagrams. These diagrams are natively supported in GitHub and Docusaurus.
Excalidraw is a virtual whiteboard for sketching hand-drawn like diagrams. When saving an Excalidraw image, make sure to use the "embed scene" option. That will allow others to edit the image in the future.