Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update release documentation (Q2 2024 edition) #1759

Merged
merged 6 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions .github/ISSUE_TEMPLATE/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,22 @@ Previous release: <!-- LINK TO LAST RELEASE'S CHECKLIST -->

Preflight checklist ([release steps](https://github.com/matrix-org/matrix-spec/blob/main/meta/releasing.md)):

* [ ] Pin this issue to the repo.
* [ ] Ensure the social media account holders are available for the release day.
* [ ] Blog post written
* [ ] Check for release blockers that may have been missed
* [ ] Review/fix the changelog
* [ ] Blog post written.
* [ ] Check for release blockers that may have been missed.
* [ ] Review/fix the changelog.

Release checklist ([release steps](https://github.com/matrix-org/matrix-spec/blob/main/meta/releasing.md)):
* [ ] Branch stuffs
* [ ] Github release artifact
* [ ] Published to spec.matrix.org
* [ ] All links work
* [ ] Publish blog post
* [ ] Announce in #matrix-spec, client developers, HS developers, SCT office, and other rooms as warranted
* [ ] Post to Twitter/Mastodon
* [ ] Close this issue
* [ ] Branch stuffs.
* [ ] Github release artifact.
* [ ] Published to spec.matrix.org.
* [ ] All links work.
* [ ] Publish blog post.
* [ ] Announce in #matrix-spec, client developers, HS developers, SCT office, and other rooms as warranted.
* [ ] Post to Twitter/Mastodon.
* [ ] Close this issue.
* [ ] Unpin this issue from the repo.

Known release blockers:
* [ ] <!-- Issue/PR link -->
1 change: 1 addition & 0 deletions changelogs/internal/newsfragments/1759.clarification
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update the spec release process and related documentation.
59 changes: 29 additions & 30 deletions meta/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,48 +6,43 @@ machinery works.

## Timeline

The spec is released each calendar quarter. The target release dates are within the
following ranges:
The spec is released each calendar quarter. The *target* months are:

* Q1: January 20-27 (critically, before FOSDEM).
* Q2: May 20-27.
* Q3: August 20-27.
* Q4: November 1-15 (before recurring November conflicts, like IETF).
* Q1: January or February.
* Q2: May.
* Q3: August.
* Q4: November.

The SCT aims to have dates picked out by:

* Q1: January 10.
* Q2: May 1.
* Q3: August 1.
* Q4: October 15.
The SCT aims to have dates picked out 2 weeks before the chosen release date. When
possible, releases should be scheduled for Thursdays and Fridays to allow a few
consecutive business days for identifying blockers.

When a release date is picked, a [checklist](https://github.com/matrix-org/matrix-spec/issues/new?assignees=&labels=release-blocker&projects=&template=release.md&title=Matrix+1.X)
issue is created to track details of the release. Release blockers should continue to
be accepted up until 7 calendar days prior to the release date.
issue is created to track details of the release. Release blockers should continue
to be accepted at the discretion of whoever is doing the release (typically, blockers
should be allowed up to 1-2 days before the release date).

**Release dates are not promises.** The SCT reserves the ability to change, cancel,
postpone, etc a release for any reason. Do not rely on a release happening on a given
day until the release has actually happened & blog post published.

Once a release is scheduled, the SCT will begin planning what the next release is
Once a release is *scheduled*, the SCT will begin planning what the next release is
expected to look like. The plan should be included in the spec release blog post,
and be ready for execution on spec release day. Plans are guides and not promises.

A blog post for the SCT members to review should be ready at minimum 1 week before
the target release date. 1-2 days before the release itself, the prerequisite steps
below are executed to ensure the spec release can go ahead.
A blog post for the SCT members to review should be ready 2-3 days prior to the
release at minimum. Preferably a week in advance.

1-2 days before the release itself, the prerequisite steps below are executed to
ensure the spec release can go ahead.

## Release composition

*This section is a work in progress.*

Mentioned above, the SCT aims to have spec releases quarterly. Each quarter has a
slightly different theme to it:

* Q1: Massive feature release, if possible. This generally happens thanks to FOSDEM.
* Q2: Regular feature release, if possible.
* Q3: Momentum-continuing feature release, if possible.
* Q4: Preferably a maintenance release, but will accept features per normal.
Spec releases do not currently have attached themes, though when planning a release
a broad theme may be considered. Ideally, each release contains a "hero feature"
which is highlighted in the later blog post.

## Prerequisites / preparation

Expand Down Expand Up @@ -115,12 +110,16 @@ release.

## Patching a release

From time to time we'll need to update a release in the wild. Examples include fixing typos,
updating build machinery, etc. Typically it is not considered a good idea to patch a release
more than 1 month after the original release date - this is because the administrative effort
is typically best reserved for the next release cycle.
Patch releases are used to fix the most recent release on record. Typically a patch
release will be deployed if there is an issue with the build machinery, a factual
error is introduced by the release, or there are notable clarity issues introduced
by the release which may affect implementation. It's usually not a good idea to
ship a patch release if it can be avoided.

Typos and similar do not generally require a patch release.

**Patch releases are not to be used for spec changes. Only typos and equivalent.**
**Patch releases must not to be used for spec changes (new MSCs, etc) beyond fixing
factual errors.**

1. Add the required changes to the release branch (`release/v1.2` for example).
2. Fast forward the `v1.2` tag to the release branch head.
Expand Down