keithley_instrument_libraries
has no internal dependencies to build/release prior to releasing.
On your development machine, pull the latest dev
and main
branches
# Development Machine
git switch dev
git pull
git switch main
git pull
On your development machine, create a release branch off of main
# Development Machine
git switch main
git switch -c release/vX.Y.Z
Merge dev
into the new release branch, handling any merge conflicts.
# Development Machine
git switch release/vX.Y.Z
git merge dev
Commit the fully-resolved merge with the default merge commit message.
Change the "Unreleased" section to the current version number, with the link to the release underneath (see all previous versions for examples).
-## [Unreleased]
+<!--## [Unreleased] -->
+## [vX.Y.Z]
+[vX.Y.Z Release Page]
Be sure to add the associated links at the bottom of the file underneath the "Unreleased" reference:
[Unreleased]: https://git.keithley.com/trebuchet/teaspoon/ki-comms/-/tree/dev
+[vX.Y.Z]: https://git.keithley.com/trebuchet/teaspoon/ki-comms/-/compare/v(X.Y.Z - 1)...vX.Y.Z?from_project_id=33
+[vX.Y.Z Release Page]: https://git.keithley.com/trebuchet/teaspoon/ki-comms/-/releases/vX.Y.Z
(Where v(X.Y.Z - 1)
is the previous released version)
Be sure to check the merge requests for this past version to make sure everything was added to the changelog. Add anything that was missed (with JIRA issue number).
You can do that with a query like the one at this link: https://git.keithley.com/trebuchet/teaspoon/ki-comms/-/merge_requests?scope=all&state=merged&deployed_after=03%2F29%2F2023&deployed_before=04%2F14%2F2023
Update the package.json
version number:
package.json
- "version": "0.6.0", + "version": "X.Y.Z",
Commit the CHANGELOG.md and package version changes in a single commit with something similar to:
Update Version Numbers
Push the release branch to GitLab:
git push -u origin release/vX.Y.Z
- From
release/vX.Y.Z
intomain
(you will need to "Change branches" for this, as it defaults todev
)- Title: Release vX.Y.Z
- Description: Delete template text and insert "Internal vX.Y.Z Release"
- Assignee: Yourself
- Reviewer: Pick someone
- Milestone: Select the appropriate milestone (vX.Y.Z)
- Labels: Add "Release"
- Merge Options
- Select ONLY "Squash commits when merge request is accepted"
- From
release/vX.Y.Z
intodev
- Title: Release vX.Y.Z into dev
- Description: Delete template text and insert "Internal vX.Y.Z Release into dev"
- Assignee: Yourself
- Reviewer: Pick someone
- Milestone: Select the appropriate milestone (vX.Y.Z)
- Labels: Add "Release: Dev"
- Merge Options
- Select ONLY "Delete source branch when merge request is accepted"
Complete the merge into the main
branch.
Create a tag for the new version.
- Tag Name:
vX.Y.Z
- Create from:
main
(This is NOT default, make sure to change it)- Message: Internal vX.Y.Z Release
Wait for the automatically started pipeline to complete.
Check the following to ensure that the release completed successfully:
- Releases page should show
vX.Y.Z
- Package registry should show the new version
The release notes will have "TBD" in the "Added Features" and "Known Issues" sections. Copy all the sections from the CHANGELOG.md file for the current version release and past them into the "Added Features" section. List any known issues in the "Known Issues" section.
This will delete the release/vX.Y.Z
branch.