Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
- Fork and clone the repository
- Configure and install the dependencies:
npm install
- Make sure the tests pass on your machine:
npm test
, note: these tests also run the TypeScript compiler (tsc
) to check for type errors, so there's no need to run these commands separately. - Create a new branch:
git checkout -b my-branch-name
- Make your change, add tests, and make sure the tests still pass
- Push to your fork and submit a pull request
- Pat your self on the back and wait for your pull request to be reviewed and merged.
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
- Follow the style guide which is using Prettier. Any linting errors should be shown when running
npm test
- Write and update tests.
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write a good commit message.
Work in Progress pull requests are also welcome to get feedback early on, or if there is something that blocked you.
To submit a pull request for a previous version of Probot, checkout the maintenance branch before creating a new branch, e.g. git checkout 7.x && git checkout -b my-branch-name
. When submitting the pull request, set the base branch to the same maintenance branch.
Releases are automated using semantic-release. The following three commit message conventions determine which version is released:
fix: ...
orfix(scope name): ...
prefix in subject: bumps fix version, e.g.1.2.3
→1.2.4
feat: ...
orfeat(scope name): ...
prefix in subject: bumps feature version, e.g.1.2.3
→1.3.0
BREAKING CHANGE:
in body: bumps breaking version, e.g.1.2.3
→2.0.0
Only one version number is bumped at a time, the highest version change trumps the others. Besides publishing a new version to npm, semantic-release also creates a git tag and release on GitHub, generates changelogs from the commit messages and puts them into the release notes.
New versions are released from the following branches
master
: new versions are published to npm using the@latest
dist-tagnext
: new versions are published to npm using the@next
dist-tag. When merging thenext
branch intomaster
, the@latest
dist-tag will be bumped automatically.beta
: a new@beta
version will be released. For example, if the current version is7.5.0
, then the first version will be published as8.0.0-beta
using the@beta
dist-tag. The next version will be8.0.0-beta.1
, etc. When merged into master, the8.0.0
version will be released automatically and all release notes will be combined into the8.0.0
release. See also Publishing pre-releases.<version>.x
: For example7.x
. New bug fix & feature releases are published the given version. No breaking changes are allowed. See also Publishing maintenance releases.
When in doubt, ping @gr2m.