Thanks for taking the time to contribute! 🎉 🎊 👍
Looking for places to contribute to the codebase? Check out the "help wanted" label.
First, ensure you have Node v10+ and the latest yarn installed on your machine.
As an external contributor, you will have to fork Blueprint in order to contribute code. Clone your fork onto your machine and then run the following commands to install dependencies:
git clone [email protected]:<username>/blueprint.git # using ssh
cd blueprint
yarn
yarn verify
A typical contributor workflow looks like this:
- Create a new feature branch. We use a format like
[your-initials]/[short-name]
:bd/refactor-buttons
. - Run
yarn dev
in the root to watch all the code and run the dev app at http://localhost:9000- You can instead watch package subsets with
yarn dev:core
,yarn dev:select
, etc.
- You can instead watch package subsets with
- Write some code. 🔨 Refer to the wiki in this repo for detailed instructions on:
- Ensure your code compiles properly and is tested, linted, and formatted.
- Run
yarn compile
at the repo root to build all libraries. - Run
yarn bundle
at the repo root to build the Blueprint documentation and other bundles. - Add unit tests as necessary when fixing bugs or adding features; run them with
yarn test
in the relevant package directory. - Linting is best handled by your editor for real-time feedback (see
Editor integration). Run
yarn lint
to be 100% safe. - TypeScript lint errors can often be automatically fixed by ESLint. Run lint fixes with
yarn lint-fix
. - Code formatting is enforced using Prettier. These errors can be fixed in your editor
through ESLint (make sure you have set up the editor integrations linked above).
Formatting checks will not run during the
yarn lint
package script. Instead, when using the CLI or in a CI environment, you should run theyarn format
script to fix all formatting issues across the Blueprint monorepo.
- Run
- Submit a Pull Request on GitHub and fill out the template.
⚠️ DO NOT enable CircleCI for your fork of Blueprint. When you open a PR, your branch will be checked out and built in palantir's CI pipeline automatically. There is no need to enable the CI build for your fork's pipeline. If you do, this may cause problems in the CI build.- If you have already opened a PR where CircleCI built the code in your own personal or organization pipeline, you will likely have to disable the project from building at app.circleci.com/settings/project/github/<your-username>/website and open a new PR.
- Team members will review your code and merge it after approvals.
- You may be asked to make modifications to code style or to fix bugs you may have not noticed.
- Please respond to comments in a timely fashion (even if to tell us you need more time).
- Do not amend commits and
push --force
as they break the PR history. Please add more commits; we squash each PR to a single commit on merge.
- Hooray, you contributed! 🎩