Thanks for showing interest to contribute to GreenField JS SDK!
When it comes to open source, there are different ways you can contribute, all of which are valuable. Here's a few guidelines that should help you as you prepare your contribution.
The following steps will get you up and running to contribute to Greenfield JS SDK:
-
Fork the repo (click the Fork button at the top right of this page)
-
Clone your fork locally
git clone https://github.com/<your_github_username>/greenfield-js-sdk.git
cd greenfield-js-sdk
- Setup all the dependencies and packages by running
pnpm install
. This command will install dependencies.
To improve our development process, we've set up tooling and systems. GreenField SDK uses a monorepo structure and we treat each component as an independent package that can be consumed in isolation.
- PNPM to manage packages and dependencies
- Changeset for changes documentation, changelog generation, and release management.
pnpm install
: bootstraps the entire project, symlinks all dependencies for
cross-component development and builds all components.
pnpm release
: publish changed packages.
Please conform to the issue template and provide a clear path to reproduction with a code example.
Please provide thoughtful comments and some sample API code. Proposals that don't line up with our roadmap or don't have a thoughtful explanation will be closed.
Pull requests need only the 👍 of two or more collaborators to be merged; when the PR author is a collaborator, that counts as one.
Before you create a Pull Request, please check whether your commits comply with the commit conventions used in this repository.
If you are interested in the detailed specification you can visit https://www.conventionalcommits.org/ or check out the rules.
-
Fork of the repository and clone your fork
-
Create a new branch out of the
main
branch. We follow the convention[type/scope]
. For examplefix/accordion-hook
ordocs/menu-typo
.type
can be eitherdocs
,fix
,feat
,build
, or any other conventional commit type.scope
is just a short id that describes the scope of work. -
Make and commit your changes following the commit convention. As you develop, you can run
pnpm {pkg} <module> build
andpnpm {pkg} <module> test
to make sure everything works as expected. -
Run
pnpm changeset
to create a detailed description of your changes. This will be used to generate a changelog when we publish an update. Learn more about Changeset. Please note that you might have to rungit fetch origin main:master
(where origin will be your fork on GitHub) beforepnpm changeset
works.
If you made minor changes like CI config, prettier, etc, you can run
pnpm changeset add --empty
to generate an empty changeset file to document your changes.
All commits that fix bugs or add features need a test.
By contributing your code to the GreenField JS SDK GitHub repository, you agree to license your contribution under the GPLv3 license.