Skip to content

Commit

Permalink
Merge pull request #56 from dmcgowan/release-1.0
Browse files Browse the repository at this point in the history
Add release notes for v1.0.0
  • Loading branch information
dmcgowan committed May 14, 2020
2 parents 28d3ccc + 43cccb7 commit ea51bea
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 1 deletion.
4 changes: 3 additions & 1 deletion .mailmap
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
Stephen J Day <stephen.day@docker.com> <stevvooe@users.noreply.github.com>
Aaron Lehmann <aaronl@vitelus.com> <aaron.lehmann@docker.com>
Derek McGowan <derek@mcg.dev> <derek@mcgstyle.net>
Stephen J Day <stephen.day@docker.com> <stevvooe@users.noreply.github.com>
Haibing Zhou <zhouhaibing089@gmail.com>
50 changes: 50 additions & 0 deletions releases/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
## go-digest release process

1. Create release pull request with release notes and updated versions.

1. Compile release notes detailing features added since the last release and
add release template file to `releases/` directory. The template is defined
by containerd's release tool but refer to previous release files for style
and format help. Name the file using the version, for rc add an `-rc` suffix.
When moving from rc to final, the rc file may just be renamed and updated.
See [release-tool](https://github.com/containerd/release-tool)

2. Update the `.mailmap` files for commit authors which have multiple email addresses in the commit log.
If it is not clear which email or name the contributor might want used in the release notes, reach
out to the contributor for feedback. NOTE: real names should be used whenever possible. The file is
maintained by manually adding entries to the file.
- e.g. `Real Name <preferred@email.com> Other Name <other@email.com>`

3. Before opening the pull request, run the release tool using the new release notes.
Ensure the output matches what is expected, including contributors, change log,
dependencies, and visual elements such as spacing. If a contributor is duplicated,
use the emails outputted by the release tool to update the mailmap then re-run. The
goal of the release tool is that is generates release notes that need no
alterations after it is generated.

2. Create tag

1. Choose tag for the next release, go-digest uses semantic versioning and
expects tags to be formatted as `vx.y.z[-rc.n]`.

2. Generate release notes (using a temp file may be helpful).
- e.g. `release-tool -l -d -n -t v1.0.0 ./releases/v1.0.0.toml > /tmp/v1.0.0-notes`

3. Create tag using the generated release notes.
- e.g. `git tag --cleanup=whitespace -s v1.0.0 -F /tmp/v1.0.0-notes`

4. Verify tag (e.g. `git show v1.0.0`), it may help to compare the new tag against previous.

3. Push tag and Github release

1. Push the tag to `git@github.com:opencontainers/go-digest.git`.
NOTE: this will kick off CI building of the release binaries.

2. Create the Github release using the `Tag version` which was just pushed. Use the first
line outputted from the release tool as the `Release title` and the remainder of the
output for the description. No alteration of the release output should be needed.
Ensure `pre-release` is checked if an `-rc`.
NOTE: This should be done immediately after pushing the tag, otherwise CI may create the release
when the binaries are pushed.

4. Promote on Slack, Twitter, mailing lists, etc
26 changes: 26 additions & 0 deletions releases/v1.0.0.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# commit to be tagged for new release
commit = "HEAD"

project_name = "go-digest"
github_repo = "opencontainers/go-digest"

pre_release = false

preface = """\
This is the first official release of the go-digest package. This package
provides a simple toolkit for working with the digests used in the open
containers ecosystem.
This includes support for `sha256`, `sha384`, and `sha512` algorithms, with
`sha256` being the most common and preferred for greatest compatibility across
the ecosystem. Encoding ambiguity has been removed by only supporting lower
case hex-encoded characters in the format for this release.
The `digestset` package is provided to securely and unambiguously use
shortened forms of the digest in environments where there is a full set
of known digests."""

# notable prs to include in the release notes, 1234 is the pr number
[notes]

[breaking]

0 comments on commit ea51bea

Please sign in to comment.