-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Release strategy, conventions, preparation and execution
Jørgen Kalsnes Hagen edited this page Jan 14, 2023
·
10 revisions
Devicon does not follow a strict release plan. A new release is depended on current amount of contributions, required bugfixes/patches and will be discussed by the team of maintainers.
Generally speaking: A new release will be published when new icons are added or a bug was fixed. When it's predictable that multiple icons are added in a foreseeable amount of time they are usually wrapped together.
The version naming follows the rules of Semantic Versioning. Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality (like a new icon) in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
- Define the next release version number based on the conventions
- Checkout
develop
asdraft-release
branch.git checkout develop git checkout -b draft-release
- Bump the package version using
npm version vMAJOR.MINOR.PATCH -m "bump npm version to vMAJOR.MINOR.PATCH"
(see #487) - Push the branch
draft-release
- Manually trigger the workflow
build_icons.yml
(which has aworkflow_dispatch
event trigger) and select the branchdraft-release
as target branch. This will build a font version of all icons using icomoon and automatically creates a pull request to merge the build result back intodraft-release
- Review and approve the auto-create pull request created by the action of the step above
- Create a pull request towards
development
. Mention the release number in the pull request title (like "Build preparation for release vMAJOR.MINOR.PATCH").- Check the
build-bot
's PR message in the last step. There should be a section where it displays the features that have been added to the release. You can copy the markdown there and put it in the description as a CODE BLOCK. This will prevent GitHub from tagging everyone involved for now.
- Check the
- Wait for review and approval of the pull request (you can perform a squash-merge)
- Once merged create a pull request with BASE
master
and HEADdevelopment
.- Copy the
build-bot
's PR message in the last step to the description as MARKDOWN text. This will tag all contributors and thanks them for their help.
- Copy the
- Since it was already approved in the 'development' stage a maintainer is allowed to merge it (DON'T perform a squash-merge).
- Create a new release using the format "Release vMAJOR.MINOR.PATCH" as tag and release title. Use the earlier created description as description of the release.
- Publishing the release will trigger the npm_publish.yml workflow which will execute a
npm publish
leading to a updated npm package (vMAJOR.MINOR.PATCH).