Working in Stratus
The changes that happens in Stratus are initiated either by the Design team or by reporting an error in a Slack channel.
We will turn every issue into a JIRA ticket.
When you begin to work on a ticket assign it to yourself.
#Let's jump in
These are the steps from the beginning to a new Stratus release:
#1. Create a new feature branch
First, you need to create a feature branch from master.
$ git checkout -b 'feature/STR-12345-my-feature'
#2. Make your change
Please don't forget to lint and test your code before
committing. (Running these tests: npm run lint && npm run test)
Don't forget to document your changes. Here's a guide for that.
#3. Commit your changes
It's exceptionally important to do this step exactly.
We have a strict commit message format. In the commit messages you must use the conventional commit standard, because of the semantic release process. We lint the commits with commitlint, and reject all the commits with improper message.
If you aren't familiar with this concept, you can use commitizen, by running:
$ npm run commit
Please always provide the corresponding package's name as a namespace when it's possible,
e.g. feat(icons): added new icons (SocialTwitter, SocialGoogle). Please note that after the colon,
the first letter must be lowercase.
If you have breaking changes, visit the docs on how to handle those here
#4. Submit a pull request to the master branch
Every pull request automatically create a "release candidate" package, that way the changes can be tested in MyKinsta before releasing a new version. The rc version is tagged with the ID of the pull request. For example, the latest rc build of pull request #1234 can be installed with npm i @kinsta/stratus@rc-1234
#5. Wait for the checks
If you have all the green lights (changes on Chromatic, reviews) on the PR, you are ready to go.
#6. Merge the PR
From here everything will happen automatically.
- The new version is calculated based on the commit messages, following the conventional-commits specification.
- GitHub Actions will release the versioned package to GitHub Packages
- A webhook will create an announcement into #project-stratus Slack channel
Congratulations, you did it! 🎉