Skip to content

Commit

Permalink
Merge pull request #63 from sirosen/update-release-methodology
Browse files Browse the repository at this point in the history
Add docs and tooling for release updates
  • Loading branch information
sirosen authored Aug 29, 2024
2 parents 5b4b063 + 5c81398 commit d9db075
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 10 deletions.
8 changes: 0 additions & 8 deletions CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,3 @@ Linting & Testing
NOTE: Please do not reformat code cosmetically without discussing it
beforehand. We do want to apply some code checkers and fixers, but as part of
a carefully considered effort.


Running a Release
-----------------

- Update the changelog to reflect the latest released version.
- Cut a release branch (e.g. `release/beta-4`)
- Notify via email that there's a new release, link to latest changelog
14 changes: 14 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
CLIENT_VERSION=$(shell grep 'version=' client/setup.py | grep -Eo '([[:digit:]]|\.)+')
DAEMON_VERSION=$(shell grep 'version=' daemon/setup.py | grep -Eo '([[:digit:]]|\.)+')

.PHONY: help
help:
@echo "These are our make targets and what they do."
Expand All @@ -19,3 +22,14 @@ lint: .venv
.PHONY: clean
clean:
rm -rf .venv

.PHONY: showvars tag-release prepare-release
showvars:
@echo "VERSION=$(CLIENT_VERSION)"
@echo "CLIENT_VERSION=$(CLIENT_VERSION)"
@echo "DAEMON_VERSION=$(DAEMON_VERSION)"
prepare-release:
tox -e prepare-release
tag-release:
git tag -s "$(CLIENT_VERSION)" -m "v$(CLIENT_VERSION)"
-git push $(shell git rev-parse --abbrev-ref @{push} | cut -d '/' -f1) refs/tags/$(CLIENT_VERSION)
18 changes: 18 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Releasing Guide

- Create a release branch, `release-X.Y.Z`
- Update the version numbers in `client/setup.py` and `daemon/setup.py`
- Update the changelog, `make prepare-release`
- Add & commit these changes

git add CHANGELOG.md changelog.d client/setup.py daemon/setup.py
git commit -m 'Update version and changelog for release'

- Open a release PR, `gh pr create`
- Merge the release PR (after approval)
- Tag the release, `make tag-release`
- Create a GitHub release, `gh release create`

## Versioning

globus-cwlogger uses SemVer.
12 changes: 12 additions & 0 deletions changelog.d/20240828_221132_sirosen_update_release_methodology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### Changed

- Release artifacts published in GitHub releases now use the full dist
filenames, and include both wheel and sdist variants.

- In order to synchronize versions between the client and daemon, the version
number has increased to 3.0.0

### Development

- `globus-cwlogger` has switched to using SemVer based versioning.
- There is a new release guide in `RELEASING.md`
2 changes: 1 addition & 1 deletion client/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name="globus_cw_client",
version="1.2",
version="3.0.0",
packages=find_packages(),
# descriptive info, non-critical
description="Client for Globus CloudWatch Logger",
Expand Down
2 changes: 1 addition & 1 deletion daemon/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name="globus_cw_daemon",
version="2.2",
version="3.0.0",
packages=find_packages(),
install_requires=["boto3<2"],
entry_points={
Expand Down
5 changes: 5 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,8 @@ commands =
client: mypy globus_cw_client {posargs}
daemon: mypy globus_cw_daemon {posargs}
daemon: mypy globus_cw_daemon_install {posargs}

[testenv:prepare-release]
skip_install = true
deps = scriv[toml]
commands = scriv collect

0 comments on commit d9db075

Please sign in to comment.