Thanks for your interest in contributing to XDelta3. It's people like you that push the open source ecosystem forward.
Make sure these dependencies are installed. For zig it's version should be greater or equal to 0.13.0
.
When using MacOS, there are a couple of extra prerequisites that are required.
- python
- coreutils (e.g. via
brew install coreutils
)
- ⚙️ Run
git submodule init
to initialize submodule. - ⚙️ Run
git submodule update
to fetch latest code for submodules. - ⚙️ Run
npm i
to install dependencies. - ⚙️ Run
npm i
to install dependencies. - ⚙️ Run
npm run build:native
to build native dependencies. - ⚙️ Run
npm run build:ts
to build js lib.
To run tests:
- 🧪 Run
yarn test:unit
for unit tests.
Unsure where to begin contributing to XDelta3-Node? Here are some ideas!
- ✏️ See any typos? See any verbiage that should be changed or updated? Go for it! Github makes it easy to make contributions right from the browser.
- 🔎 Look through our outstanding unassigned issues. (Hint: look for issues labeled
good first issue
orhelp-wanted
!) - 💬 Join our Discord chat!
- 🗒️ Create a new issue! Select the type of issue that best fits, and please fill out as much of the information as you can.
- Make sure you're familiar with our contribution guidelines (this document)!
- Create your own fork of this repository.
- Make your changes in your local fork.
- If you've made a code change, make sure to lint and test your changes (
yarn lint
andyarn test:unit
). - Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information.
- You may be asked to sign a Contributor License Agreement (CLA). We make it relatively painless with CLA-bot.
Branch Naming
If you are contributing from this repository prefix the branch name with your Github username (i.e. myusername/short-description
)
Pull Request Naming
Pull request titles must be:
- Adhering to the conventional commits spec
- Short and descriptive summary
- Written in imperative present tense
- Not end with a period
For example:
- feat: add lodestar prover for execution api
- fix: ignore known block in publish blinded block flow
- refactor(reqresp)!: support byte based handlers
Pull Request Etiquette
- Pull requests should remain as drafts when they are not ready for review by maintainers. Open pull requests signal to the maintainers that it's ready for review.
- If your pull request is no longer applicable or validated to fix an issue, close your pull request.
- If your pull request is fixable and needs additional changes or commits within a short period of time, switch your pull request into a draft until it's ready.
- Otherwise, close your pull request and create a new issue instead.
Come chat with us on Discord and join our public weekly planning meetings!