Release GIMP 2.99.18
- Release manager in charge of this version: @Jehan
- GIMP maintainers: @Jehan @mitch
- GEGL maintainers: @ok
- GIMP docs maintainers: @Wormnest @marcoc
- Core Developers: @Jehan @mitch @ok @Wormnest @cmyk.student @dnovomesky @lb90 @bootchk @nielsdg @programmer_ceds @schumaml
- Packagers:
- Windows installer: @jernejs @brunolopesdsilv
- MSIX: @brunolopesdsilv
- Microsoft Store: @Jehan @jernejs
- macOS DMGs: @lukaso
- Flatpak: @Jehan @hub @HarryMichal @dnovomesky
- Runner maintainers:
- Windows Aarch64: @hmartinez82
- Windows x86: @creiter
- User testing:
- Windows: @sevenixvii (also managing testers on Discord) @ShiroYuki_Mot @dnovomesky @Uzugijin
- macOS: N/A
- Flatpak: @dnovomesky @pixelmixer @ajonsson
- News writer: @Jehan
- Proofreaders: @drc @barefootliam @patdavid
- Social networks: @patdavid @barefootliam @schumaml @Jehan
- Various other core team: @akkana @nmat @ellestone
Release check-list:
-
Prepare a <release>
tag with<description>
, as documented, withindesktop/org.gimp.GIMP.appdata.xml.in.in
for the upcoming version. -
Announce a string freeze on GNOME discourse with the gimp
andi18n
tags: https://discourse.gnome.org/t/releasing-gimp-2-99-18-soon/18771It serves as an announcement to both developers and translators.
Mention:
- the planned release version;
- the frozen branch name;
- the expected release date (end of freeze) (plan for a couple of weeks at least. No translatable strings must be touched during this time);
- this bug report URL.
-
Entering source freeze a few days before release, except for obvious bug fixes. Ask packagers to make test packages based on current HEAD
of the release branch. -
Make sure that changes which deserve some tour get the appropriate "demo" attribute in desktop/org.gimp.GIMP.appdata.xml.in
as documented. -
Packagers should post links to test packages in comments: -
Windows installer: -
macOS DMG for Intel: -
macOS DMG for Silicon: -
Flatpak:
-
-
Testers: please test the above packages and comment. ⬆ ️ -
Until the date specified in the announcement, get bug fixes applied which don't modify strings. Re-do the above 2 steps as many times as needed. -
Check that you have working SSH access to master.gnome.org
and that you are a member of thegimpftpadmin
group. If not, ask Michael Natterer, Michael Schumacher or Jehan for assistance. -
Check that master.gnome.org
has enough space to upload the release and to place it into the download area. If not, make place or ask Michael Natterer, Michael Schumacher or Jehan to do that. -
Check that you have admin access to gimp
module on Gitlab and commit access to thegimp-web
module, or that someone can do the changes for you. -
Check if the following files need to be updated and commit changes: -
NEWS
-
authors.xml
(and the generatedAUTHORS
) -
README
-
INSTALL.in
-
-
Does the splash screen need to be changed? Splash requirements:
-
Accepted license: libre license, such as CC 0, CC by, CC by-sa or Free Art. -
XCF file must be provided. -
Minimum size: full HD (splash images will be scaled down to 1/2 of the main display when too big; but they won't be scaled up. Therefore anything smaller than fullHD will look tiny and unsuited on a 4K or higher res display). -
Loading text will appear in bottom quarter, so image contents must be adapted.
-
-
Verify that our meson.build
depends on stablebabl
andGEGL
versions, then sync up with their maintainers for new releases if needed. -
If ever the actual release date evolved and is different from the planned date, update the "date"
in the<release>
tag of the appdata indesktop/org.gimp.GIMP.appdata.xml.in
-
Check our Continuous Integration builds: all jobs must be successful because we should not release with code known not to build in some conditions. The following procedure simulates a release:
-
Create a pipeline: choose the branch we plan to release and add the variable CI_COMMIT_TAG
to any value (it will simulate a build with a tag, which is characteristical of a release). -
The following jobs should be triggered: Stage: prepare Stage: dependencies Stage: gimp Stage: packaging Stage: distribution build-image deps-debian gimp-meson-debian sources-meson dev-docs deps-win32-native gimp-win32-native packaging-win32-native deps-win64-native gimp-win64-native packaging-win64-native win-installer-nightly -
Check in particular: - the job
win-installer-nightly
should contain a working Windows installer and 2 checksum files; - the job
sources-meson
should contain a tar.xz tarball and 2 checksum files. - the job
dev-docs
should contain 3 tar.xz tarballs (one for GIMP, one for GEGL and one for babl docs) and 2 checksum files per tarball.
- the job
If these steps work fine, we are ready to tag and publish.
Note: the test build will likely take up to 1 hour, especially because of the Windows installer step. And of course, if you ever discover any build or run into issues, the time will be multiplied. It is advised to take this in consideration. This test step should be run well in advance, even the day before.
-
-
Bump the version number in meson.build
to the release version. Releases always have an even micro version. -
Bump or reset gimp_interface_age
inmeson.build
according to libtool instructions. -
Commit the version bumps only and push. Since there was no code change since the last CI check, the CI should build fine once again. Make sure of it. -
Tag the release and push the tag: git tag -s GIMP_2_x_y git push origin GIMP_2_x_y
All release tags are signed in order for the authenticity and origin of the release to be publicly verified.
-
Gitlab will run a new CI pipeline specifically for the tag. Once it is done, you will find a tarball, a Windows installer, SHA256 and SHA512 checksum files on the artifacts of the job sources
andwin-installer-nightly
.Direct links, for instance for the
GIMP_2_99_6
tag, would be:https://gitlab.gnome.org/GNOME/gimp/-/jobs/artifacts/GIMP_2_99_6/browse/?job=sources https://gitlab.gnome.org/GNOME/gimp/-/jobs/artifacts/GIMP_2_99_6/browse/?job=win-installer-nightly
-
Packagers should post links to release candidate packages in comments: -
Windows installer: -
macOS DMG for Intel: -
macOS DMG for Silicon: -
Flatpak:
-
-
Testers: please test the above packages and comment. ⬆ ️ -
Windows packager: sign the Windows installer if all looks fine and send the link as comment. -
Publish dist tarballs: -
Upload the 3 files (tar.xz tarball and 2 checksums) to /gimp_ftp/incoming/
onmaster.gnome.org
(do not upload to your home first as it would mess up some SELinux flags). -
Copy the tarball to its final destination in the download area ( /gimp_ftp/pub/gimp/
). Really usecp
notmv
or SELinux will make the uploaded file unreadable to the web server unless some obscure status bit is toggled. -
Update the SHA256SUMS
andSHA512SUMS
files present in the same download area by adding the computed sha256 and sha512 sums. -
Update the 0.0_LATEST-IS-\*
file in the corresponding directory on the download server. -
Change permissions of the new files to make them writable by the gimpftpadmin
group. This will allow other members of this group to correct mistakes and to update the0.0_LATEST-IS-\*
file next time.
-
-
Publish dev docs tarball: -
Upload the 9 artifact files (tar.xz tarball and 2 checksums for babl, GEGL and GIMP) from the dev-docs
job to/gimp_ftp/incoming/
onmaster.gnome.org
(do not upload to your home first as it would mess up some SELinux flags). -
Copy the tarballs to their final destination in the download area ( /gimp_ftp/pub/gimp/vX.Y/api-docs/
, withgimp
replaced bybabl
andgegl
respectively). Really usecp
notmv
or SELinux will make the uploaded file unreadable to the web server unless some obscure status bit is toggled. -
Update the SHA256SUMS
andSHA512SUMS
files present in the same download area by adding the computed sha256 and sha512 sums. -
Change permissions of the new files to make them writable by the gimpftpadmin
group. This will allow other members of this group to correct mistakes and to update the0.0_LATEST-IS-\*
file next time.
-
-
Publish the binary files: -
upload the signed Windows installer to master.gnome.org
; -
upload the 2 macOS packages; -
merge the flatpak release merge request; -
For stable releases: create a new package on the Microsoft Partner Center so that GIMP becomes available on the Microsoft Store.
-
-
Bump the version number in meson.build
. Except on the release commit, git code always have an odd micro version. -
Bump gimp_interface_age
inmeson.build
. -
Commit the version bumps only and push. -
Add the next version milestone on GIMP's Gitlab per instructions. Note: we don't close immediately the milestone of the just-released version as we may still assign some reports to it, but older milestones might be closed (up to what feels the most needed for organization of reports).
-
Checkout the testing
branch of the 'gimp-web' module:-
Update the file content/gimp_versions.json
adding the version, release date, tarball name and its SHA256 and SHA512 hashes under "STABLE" for stable releases or "DEVELOPMENT" for dev releases, as well as for any already available packages. -
Create a news items for the release in content/news/
and commit it. -
Run ninja authors.md
in GIMP repository. This will generate the fileauthors.md
. Move it to./content/about/authors.md
on the 'gimp-web' module and commit it. -
Commit and push the changes to the testing
branch, the web server should then update itself soon. -
Go to https://testing.gimp.org to verify the changes. -
Proofreaders should validate the news. -
Do not merge to master
branch yet. We usually wait for a few packages to be available (often at least the Flatpak and Windows installer) and published to the download server when relevant. -
For binary packages, we also publish web torrent files with the tools/download/mt
tool. Here is an example of command as run for the revision 2 of GIMP 2.10.24 installer:tools/downloads/mt -c "GIMP 2.10.24 Installer for Microsoft Windows - 32 and 64 Bit - Update 2: custom GTK fixes for drag&drop issues with certain screen grabbers (issue #1082), tiny SVG icons (issue #1563) and pasting images from some other applications (issue #3481)" -p "gimp/v2.10/windows" -m "./tools/downloads/downloads.http.txt" gimp-2.10.24-setup-2.exe
-
-
Update the developer website to make sure the API docs is fine. -
Verify the testing developer website. -
In particular, you might want to check that babl, GEGL and GIMP API references were updated. -
If needed, make the necessary fixes on gimp-web-devel
repository, branchtesting
. You may force an update of the testing website by creating a pipeline for branchoscp
with variableTRIGGER_JOB = testing_developer
. -
If the testing
branch is fine, merge it into themaster
branch and push. -
In order not to wait for the daily developer website update, force an update by creating a pipeline for branch oscp
with variableTRIGGER_JOB = developer
-
-
Add a new Gitlab release, linking the recently pushed git tag ( GIMP_X_Y_Z
), the related milestone, the news ongimp.org
website and each package (source tarball, installers, docs tarball…). -
Announce the release on gimp.org and send release announcements: -
Check out the gimp-web master
branch andmerge
theorigin/testing
branch. -
Push the changes, the web server should update itself soon. -
Verify the changes on https://www.gimp.org -
Announce on: -
Mastodon -
Twitter -
Facebook -
The discourse thread created in the beginning.
-
-