teaspoon
has several dependencies, be sure to follow the RELEASE.md
document in each of those projects before following the rest of this process.
ki-comms
keithley_instrument_libraries
(project: jsonToLuaParser)tsp-2600series-web-help-documents
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
If there are conflicts on the package-lock.json
file, simply delete it and run
npm install --devDependencies
.
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/teaspoon/-/tree/dev
+[vX.Y.Z]: https://git.keithley.com/trebuchet/teaspoon/teaspoon/-/compare/v(X.Y.Z - 1)...vX.Y.Z?from_project_id=33
+[vX.Y.Z Release Page]: https://git.keithley.com/trebuchet/teaspoon/teaspoon/-/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/teaspoon/-/merge_requests?scope=all&state=merged&deployed_after=03%2F29%2F2023&deployed_before=04%2F14%2F2023
Update the package.json
version numbers:
package.json
- "version": "0.6.0", + "version": "X.Y.Z",
Update the version number of all dependencies:
package.json
- "@trebuchet/tsp-2600series-web-help-documents": "^0.6.0", - "@trebuchet/keithley_instrument_libraries": "^0.6.0", - "@trebuchet/ki-comms": "^0.6.0", + "@trebuchet/tsp-2600series-web-help-documents": "^X.Y.Z", + "@trebuchet/keithley_instrument_libraries": "^X.Y.Z", + "@trebuchet/ki-comms": "^X.Y.Z",
After updating these files, make sure to update the lock files
# Development Machine
npm install --devDependencies
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
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.