Skip to content

Commit 98db201

Browse files
committed
Update release guide
Reflect the latest changes in the release process & simplify the steps a bit.
1 parent 4f63eb6 commit 98db201

1 file changed

Lines changed: 56 additions & 61 deletions

File tree

devel_doc/release_maintaince.md

Lines changed: 56 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -319,92 +319,87 @@ The following items should be completed before proceeding to release cutting:
319319
320320
## Cutting a release
321321
322-
In the following text, the `X.Y.Z` string denotes the version number that
323-
you're preparing, for example `4.19.1`.
322+
1. Determine the version metadata (to be used in the next steps):
324323
325-
1. Make a release commit:
324+
1. `NUMBER` - RPM version number, as shown in the `rpm --version` output,
325+
e.g. `6.0.0` or `5.99.92`
326+
1. `VERSION` - RPM version number when final, e.g. `6.0.0` (equivalent to
327+
`NUMBER` if final)
328+
1. `LABEL` - release label, e.g. `beta1` (if prerelease) or `release` (if
329+
final)
326330
327-
1. Bump `VERSION` in `project()` in CMakeLists.txt
331+
1. Make a release commit:
328332
333+
1. Set `project(VERSION ...)` in CMakeLists.txt to `NUMBER`
329334
1. Bump `RPM_SOVERSION` and `RPM_LIBVERSION` in CMakeLists.txt:
330-
331335
* Consult the associated comment block in CMakeLists.txt for
332336
instructions.
333337
* soname bumps can only occur at the first version of a new branch
334338
(i.e. alpha/beta).
335-
336339
1. Update the output of "pinned" tests: `make pinned`
337-
338-
1. Commit the changes from the previous step with something like "Preparing
339-
for X.Y.Z" as the message
340+
1. Commit the changes from the previous step with "Preparing for `VERSION
341+
LABEL`" as the message
340342
341343
1. Tag the release:
342344
343-
`git tag -am "RPM X.Y.Z release" rpm-X.Y.Z-release`
344-
345-
1. Push the tag. This is the point of no return for a given release:
346-
347-
`git push rpm-X.Y.Z-release`
345+
`git tag -am "RPM VERSION LABEL" rpm-VERSION-LABEL`
348346
349-
1. Compile release notes (see `git changelog -h` for more details):
347+
1. Push the tag:
350348
351-
`git changelog -m > changelog.md`
349+
`git push rpm-VERSION-LABEL`
352350
353-
1. Publish the release:
351+
1. Generate a tarball on GitHub:
354352
355-
1. Create a draft release on GitHub for the new tag:
353+
1. Create a GitHub release for the new tag:
356354
357-
`gh release create --draft --title "RPM X.Y.Z" --notes-file changelog.md rpm-X.Y.Z-release`
355+
```
356+
gh release create --title "RPM VERSION LABEL" \
357+
--notes "Visit https://rpm.org/releases/NUMBER for the release notes and download information." \
358+
[--prerelease] rpm-VERSION-LABEL
359+
```
358360
359-
1. View the draft in your browser (see the link printed by the command)
360-
1. Verify that the draft looks fine, make any adjustments if necessary
361-
1. Tick the "Create a discussion for this release" checkbox
362-
1. Click the Publish button to make the release available
363-
1. Verify that the release gets a tar.bz2 and CHECKSUM file attached under
364-
"Assets" after a few minutes. This is done by a GitHub Actions workflow
365-
named "Release artifacts" that automatically runs when a new release is
366-
published.
361+
1. This will trigger a GitHub Actions workflow that generates a `tar.bz2`
362+
and `CHECKSUM` file, and attaches both to the newly created release,
363+
under "Assets". This may take a few minutes.
367364
368-
1. Upload the tarball to [rpm.org](https://rpm.org/):
365+
1. Upload the tarball to [ftp.osuosl.org](https://ftp.osuosl.org/):
369366
370-
1. Download the tar.bz2 and CHECKSUM files from the new release to your
367+
1. Download the `tar.bz2` and `CHECKSUM` files from the new release to your
371368
current directory
372369
1. Verify the tarball's checksum:
373370
374371
`sha512sum -c CHECKSUM`
375372
376373
1. `scp` the tarball to `rpm@ftp-osl.osuosl.org` into the appropriate
377-
per-branch directory in `~/ftp/releases/`
378-
1. Run the `./trigger-rpm` script in the home directory to start mirror
379-
process
380-
381-
1. Update the homepage at [rpm.org](https://rpm.org/):
382-
1. Clone the [rpm-web](https://github.com/rpm-software-management/rpm-web)
383-
repository (if not cloned yet) and enter it
384-
1. Make a copy of the `wiki/Releases/skeleton.md` file and name it
385-
`wiki/Releases/X.Y.Z.md`
386-
1. Fill in the blanks, use the contents of `changelog.md` for the "Summary
387-
of changes" section
388-
1. Add an entry to the `index.md` file announcing the release (see the
389-
existing entries for inspiration), copy the Highlights section from
390-
`changelog.md`
391-
1. Copy the entry into the `timeline.md` file
392-
1. Add an entry to the `download.md` file
393-
1. Commit the whole lot with a commit message such as "Release X.Y.Z"
394-
1. Push the above commit to the remote (this will automatically regenerate
395-
the pages)
396-
397-
1. Send out an announcement mail:
398-
399-
```
400-
To: rpm-announce@lists.rpm.org, rpm-maint@lists.rpm.org, rpm-list@lists.rpm.org
401-
Subject: RPM X.Y.Z released!
402-
403-
[some intro followed by the output of "git changelog"]
404-
405-
For a complete list of changes, visit:
406-
407-
https://rpm.org/wiki/Releases/X.Y.Z
408-
```
374+
per-branch directory in `~/ftp/releases/`. Use the `testing/`
375+
subdirectory if this is a prerelease.
376+
1. Run the `./trigger-rpm` script in the `rpm` user's home directory on the
377+
server to start the mirroring process
378+
379+
1. Publish the release on [rpm.org](https://rpm.org/):
380+
381+
1. Clone the
382+
[rpm-web](https://github.com/rpm-software-management/rpm-web.git)
383+
repository (if not cloned already)
384+
1. Add a new release page to the `_releases/` directory and name it
385+
`NUMBER.md`
386+
1. Write the release notes and fill out the top `---` block ("front
387+
matter") according to the README file provided in the repo
388+
1. Update the release notes draft for the final release (if this is a
389+
prerelease) accordingly
390+
1. Commit and push
391+
392+
1. Compose an announcement mail. See the previous
393+
[announcements](https://lists.rpm.org/pipermail/rpm-announce/) for
394+
inspiration. When ready, send it to the following mailing lists:
395+
396+
`rpm-announce@lists.rpm.org, rpm-maint@lists.rpm.org, rpm-list@lists.rpm.org`
397+
398+
1. Open a discussion on GitHub:
399+
400+
1. [Start](https://github.com/rpm-software-management/rpm/discussions/new?category=announcements)
401+
a new discussion topic in the "Announcements" category
402+
1. Use the contents of the announcement mail from above
403+
1. Submit and pin the discussion
409404
410405
1. Party!

0 commit comments

Comments
 (0)