-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Release strategy, conventions, preparation and execution
Thomas Bui edited this page Mar 13, 2022
·
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
development
asdraft-release
branch - Bump the package version using
npm version v_MAJOR_._MINOR_._PATCH_ -m "bump npm version to v_MAJOR_._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 v_MAJOR_.MINOR.PATCH).- Add information about all new icons, fixes, features and enhancements in the description of the pull request.
- Take the PRs/commits as a guideline. It's also a good idea to mention and thank all contributions who participated in the release (take description of #504 as an example).
- We now have a script that will do this for us. 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 use it for the release message.
- 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 description of the earlier pull request. - 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 v_MAJOR_.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 (v_MAJOR_.MINOR.PATCH).