Contributing

Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct.

Find things to work on

We label issues that we need help with the help wanted tag. We also categorize them with the following tags:

  • cat-bug
  • cat-feature
  • cat-chore
  • cat-performance

These are the main categories that you can work on. We further mark issues with a high-priority tag or a good first issue tag to indicate their importance to the project and subjective level of easiness to get started on respectively. If you don’t see the triaged tag or you see any of the needs-confirmation, needs-repro-script, needs-discussion tags, it may not be wise to start working on these issues.

Here are a few quick links to get you started:

If you would like to start triaging issues, one easy way to get started is to subscribe to yarn on CodeTriage.

Setup

  1. Ensure Node.js 4+ and a non-development version of Yarn are installed.
  2. Git clone the Yarn repository.
  3. From the root of the repository, run yarn to install the dependencies required for development.

Building

Perform a one-off build using:

yarn build

Or to automatically rebuild as changes are made, use:

yarn watch

Testing Your Changes Locally

You can modify the following command to allow you to test your changes locally such that it doesn’t override an existing installation of yarn.

  1. Navigate to the folder for yarn that you cloned from GitHub
  2. Run alias yarn-local="node $PWD/lib/cli/index.js". This will map yarn-local to the index.js file in your current working directory.

You can now proceed to run yarn watch in one tab, and test with yarn-local in the other.

Testing

First follow the building instructions above.

Then to run both the linters and tests, use:

yarn test

Or to run them separately, use:

yarn lint
yarn test-only

Pull Requests

We actively welcome your pull requests.

  1. Fork the repo and create your branch from master.
  2. If you’ve added code that should be tested, add tests.
  3. If you’ve changed APIs, update the documentation.
  4. Ensure the test suite passes.
  5. Make sure your code lints.

License

By contributing to Yarn, you agree that your contributions will be licensed under its BSD license.