When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Please note we have a Code of Conduct, please follow it in all your interactions with the project.
We release new versions of this project (maintenance/features) on a monthly cadence so please be aware that some items will not get released right away.
You can contribute changes to this repo by opening a pull request:
- After forking this repository to your Git account, make the proposed changes on your forked branch.
- Run tests and linting locally.
- Install and run Docker if you aren't already. NOTE: on docker set
enable host networkingto true as it is required for the tests in redis clustering. - Install
aws clias you will need it to run dynamodb tests. - Install
pnpmby doingnpm install -g pnpmif you haven't already, and runpnpm install - Run
pnpm test:services:start, allow for the services to come up. - Run
pnpm test.
- Install and run Docker if you aren't already. NOTE: on docker set
- Commit your changes and push them to your forked repository.
- Navigate to the main
keyvrepository and select the Pull Requests tab. - Click the New pull request button, then select the option "Compare across forks"
- Leave the base branch set to main. Set the compare branch to your forked branch, and open the pull request.
- Once your pull request is created, ensure that all checks have passed and that your branch has no conflicts with the base branch. If there are any issues, resolve these changes in your local repository, and then commit and push them to git.
- Similarly, respond to any reviewer comments or requests for changes by making edits to your local repository and pushing them to Git.
- Once the pull request has been reviewed, those with write access to the branch will be able to merge your changes into the
keyvrepository.
If you need more information on the steps to create a pull request, you can find a detailed walkthrough in the Github documentation
We use pnpm outdated to check for outdated dependencies across the monorepo. When updating packages, we follow a cautious approach to avoid potential issues with newly released versions.
In our pnpm-workspace.yaml, we have configured minimumReleaseAge: 7200 (5 days in minutes). This setting ensures that when running pnpm update, only packages that have been published for at least 5 days will be considered for updates.
This approach provides several benefits:
- Stability: Newly published packages may contain undiscovered bugs or breaking changes. Waiting 5 days allows the community to identify and report issues.
- Security: Malicious packages are often detected and removed within the first few days of publication. This delay provides a buffer against supply chain attacks.
- Reliability: It gives package maintainers time to publish patch releases if critical issues are found shortly after a release.
To check for outdated packages:
pnpm outdatedTo update packages (respecting the minimum release age):
pnpm updatePlease refer to our Code of Conduct readme for how to contribute to this open source project and work within the community.