Files
cunningham/CONTRIBUTING.md

97 lines
3.1 KiB
Markdown
Raw Normal View History

# Contributing to Cunningham
Want to contribute to Cunningham? We got you covered.
We try to raise our code quality standards and expect contributors to follow
the recommandations from our [handbook](https://suitenumerique.gitbook.io/handbook).
## Development
### First start
Install and build packages
```
make bootstrap
```
And then run dev servers
```
make dev
```
Then, you will be able to access the demo app on [http://localhost:3200](http://localhost:3200) and the React components package's Storybook on
[http://localhost:6006](http://localhost:6006)
### Building
In order to build all packages of this repo you just need to type the following command at the root of the monorepo.
```
make build
```
## Sending a pull request
When submitting please follow those steps:
- Make sure you followed the commit conventions from the [handbook/git](https://suitenumerique.gitbook.io/handbook/git).
- Make sure that you added tests covering your changes.
- Run `make deploy` to tests, lint and build the project.
- Create a [changeset](#adding-a-changeset) by running `yarn changeset` at the root of the repo. In any case, a bot will verify if your PR contains a changeset.
### Changelog
The changelog is created with [Changesets](https://github.com/changesets/changesets).
#### Adding a changeset
A changeset describes changes made in a branch or commit. It holds three bits of information:
- What packages we need to release
- What version we are releasing packages
- A changelog entry for the released packages
Add a changeset if you have made any changes that will require a package version bump and release:
1. Run `yarn changeset`.
2. Select the packages you want to include using ↑ and ↓ to navigate to packages, and space to select a package. Hit enter when all desired packages are selected.
3. Select a [bump type](https://semver.org/) for each selected package.
4. Provide a message to be written into the changelog on the next release.
#### Writing a changelog message
Keep the following in mind when authoring your changelog entry (final prompt after running `yarn changeset`):
- Begin sentences with explicit verbs like "add", "fix", "refactor"
- Avoid redundancy when possible
- Use sentence case
- Use plain language
#### Out of scope for the changelog
Generally, changes related to these topics can be omitted:
- Doc typo fixes
- Dev dependencies upgrades
- Chores (infrastructure, release process…)
This part of the documentation is 99% inspired by [Polaris](https://github.com/Shopify/polaris/blob/main/.github/CONTRIBUTING.md#adding-a-changeset)
## Release
1. Create a new branch from main specific to the release.
`git checkout -b release/version-packages`
2. Now run the following command at the root of the repo to bump the version of the packages.
`yarn changeset version`
3. Update the upgraded CHANGELOG.md files of the packages to add link to the diff between the previous version and the new one.
4. Commit the changes and create a PR named "🔖(release) version packages".
Once this PR is merged, the CI will automatically publish the new version of the packages on npm. It will also create and push release tags.