diff --git a/CONRTIBUTING.md b/CONRTIBUTING.md new file mode 100644 index 000000000..2c0629d11 --- /dev/null +++ b/CONRTIBUTING.md @@ -0,0 +1,52 @@ +# Contributing + +## Reporting Bugs + +When submitting a new bug report, please first [search](https://github.com/oclif/core/issues) for an existing or similar report & then use one of our existing [issue templates](https://github.com/oclif/core/issues/new/choose) if you believe you've come across a unique problem. Duplicate issues, or issues that don't use one of our templates may get closed without a response. + +## Development + +**1. Clone this repository...** + +```bash +$ git clone git@github.com:oclif/core.git +``` + +**2. Navigate into project & install development-specific dependencies...** + +```bash +$ cd ./core && yarn +``` + +**3. Write some code &/or add some tests...** + +```bash +... +``` + +**4. Run tests & ensure they pass...** + +``` +$ yarn test +``` + +**5. Open a [Pull Request](https://github.com/oclif/core/pulls) for your work & become the newest contributor to `@oclif/core`! 🎉** + +## Pull Request Conventions + +We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). When opening a pull request, please be sure that either the pull request title, or each commit in the pull request, has one of the following prefixes: + +- `feat`: For when introducing a new feature. The result will be a new semver minor version of the package when it is next published. +- `fix`: For bug fixes. The result will be a new semver patch version of the package when it is next published. +- `docs`: For documentation updates. The result will be a new semver patch version of the package when it is next published. +- `chore`: For changes that do not affect the published module. Often these are changes to tests. The result will be _no_ change to the version of the package when it is next published (as the commit does not affect the published version). + +## What _not_ to contribute? + +### Dependencies + +It should be noted that our team does not accept third-party dependency updates/PRs. We use dependabot to ensure dependencies are staying up-to-date & will ship security patches for CVEs as they occur. If you submit a PR trying to update our dependencies we will close it with or without a reference to these contribution guidelines. + +### Tools/Automation + +Our core team is responsible for the maintenance of the tooling/automation in this project & we ask collaborators to kindly not make changes to these when contributing (ex. `.github/*`, `.eslintrc.json`, package.json `scripts`, etc.)