MantisBT - Doomseeker
View Issue Details
0004082Doomseeker[All Projects] Epicpublic2023-01-04 20:402024-11-03 18:58
Zalewa 
Zalewa 
highfeatureN/A
closedfixed 
1.3.3 
1.4.01.4.0 
0004082: Doomseeker 1.4 release
I've done everything I wanted for Doomseeker 1.4, so I suppose it's time for a release. Just about a year after Doomseeker 1.3.3. The detailed instructions are in the checklist txt attachment.
Doomseeker 1.3.3 release: 0003959
No tags attached.
txt release-checklist-1.4.txt (3,169) 2023-01-04 20:40
https://zandronum.com/tracker/file_download.php?file_id=2821&type=bug
patch 0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch (2,082) 2023-01-24 15:54
https://zandronum.com/tracker/file_download.php?file_id=2835&type=bug
patch v2-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch (2,085) 2023-01-24 15:58
https://zandronum.com/tracker/file_download.php?file_id=2836&type=bug
patch v3-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch (2,082) 2023-01-24 16:00
https://zandronum.com/tracker/file_download.php?file_id=2837&type=bug
patch v4-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch (2,083) 2023-01-24 16:06
https://zandronum.com/tracker/file_download.php?file_id=2838&type=bug
Issue History
2023-01-04 20:40ZalewaNew Issue
2023-01-04 20:40ZalewaFile Added: release-checklist-1.4.txt
2023-01-04 20:44Pol MNote Added: 0022634
2023-01-21 08:35ZalewaAssigned To => Zalewa
2023-01-21 08:35ZalewaStatusnew => assigned
2023-01-21 20:13ZalewaAssigned ToZalewa => Blzut3
2023-01-21 20:15ZalewaNote Added: 0022708
2023-01-21 20:15ZalewaNote Edited: 0022708bug_revision_view_page.php?bugnote_id=22708#r13887
2023-01-21 21:12Blzut3Note Added: 0022709
2023-01-21 21:40ZalewaNote Added: 0022710
2023-01-21 21:41ZalewaNote Edited: 0022710bug_revision_view_page.php?bugnote_id=22710#r13889
2023-01-23 05:59Blzut3Note Added: 0022711
2023-01-23 05:59Blzut3Assigned ToBlzut3 => Zalewa
2023-01-23 18:04ZalewaNote Added: 0022712
2023-01-23 18:05ZalewaAssigned ToZalewa => Blzut3
2023-01-23 18:05ZalewaStatusassigned => feedback
2023-01-23 20:30WubTheCaptainNote Added: 0022713
2023-01-23 20:32WubTheCaptainNote Added: 0022714
2023-01-23 20:32WubTheCaptainNote Edited: 0022714bug_revision_view_page.php?bugnote_id=22714#r13891
2023-01-24 04:11Blzut3Note Added: 0022715
2023-01-24 14:23WubTheCaptainNote Added: 0022716
2023-01-24 14:35WubTheCaptainNote Added: 0022717
2023-01-24 14:42WubTheCaptainNote Edited: 0022717bug_revision_view_page.php?bugnote_id=22717#r13893
2023-01-24 14:43WubTheCaptainNote Edited: 0022717bug_revision_view_page.php?bugnote_id=22717#r13894
2023-01-24 14:47WubTheCaptainNote Edited: 0022717bug_revision_view_page.php?bugnote_id=22717#r13895
2023-01-24 15:54WubTheCaptainFile Added: 0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch
2023-01-24 15:56WubTheCaptainNote Added: 0022718
2023-01-24 15:58WubTheCaptainFile Added: v2-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch
2023-01-24 16:00WubTheCaptainFile Added: v3-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch
2023-01-24 16:01WubTheCaptainNote Added: 0022719
2023-01-24 16:06WubTheCaptainFile Added: v4-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch
2023-01-24 16:06WubTheCaptainNote Edited: 0022719bug_revision_view_page.php?bugnote_id=22719#r13897
2023-01-24 17:36Blzut3Note Added: 0022720
2023-01-24 17:43ZalewaAssigned ToBlzut3 => Zalewa
2023-01-24 17:43ZalewaStatusfeedback => assigned
2023-01-24 17:56WubTheCaptainNote Added: 0022721
2023-01-24 17:56WubTheCaptainNote Edited: 0022721bug_revision_view_page.php?bugnote_id=22721#r13899
2023-01-24 18:01WubTheCaptainNote Edited: 0022721bug_revision_view_page.php?bugnote_id=22721#r13900
2023-01-24 18:01WubTheCaptainNote Edited: 0022721bug_revision_view_page.php?bugnote_id=22721#r13901
2023-01-24 18:03WubTheCaptainNote Edited: 0022721bug_revision_view_page.php?bugnote_id=22721#r13902
2023-01-24 18:03WubTheCaptainNote Edited: 0022721bug_revision_view_page.php?bugnote_id=22721#r13903
2023-01-24 18:09ZalewaNote Added: 0022722
2023-01-24 18:12WubTheCaptainNote Edited: 0022721bug_revision_view_page.php?bugnote_id=22721#r13904
2023-01-24 19:00WubTheCaptainNote Added: 0022723
2023-01-24 19:15ZalewaAssigned ToZalewa => Blzut3
2023-01-24 19:15ZalewaStatusassigned => feedback
2023-01-24 19:26WubTheCaptainNote Added: 0022724
2023-01-24 19:26WubTheCaptainNote Edited: 0022724bug_revision_view_page.php?bugnote_id=22724#r13906
2023-01-24 19:27WubTheCaptainNote Edited: 0022724bug_revision_view_page.php?bugnote_id=22724#r13907
2023-01-25 04:31Blzut3Note Added: 0022733
2023-01-25 07:07ZalewaAssigned ToBlzut3 => Zalewa
2023-01-25 07:07ZalewaStatusfeedback => assigned
2023-01-25 07:22ZalewaNote Added: 0022737
2023-01-25 18:11ZalewaNote Added: 0022739
2023-01-25 18:11ZalewaStatusassigned => needs review
2023-02-19 14:10ZalewaStatusneeds review => resolved
2023-02-19 14:10ZalewaFixed in Version => 1.4.0
2023-02-19 14:10ZalewaResolutionopen => fixed
2024-11-03 18:58ZalewaStatusresolved => closed

Notes
(0022634)
Pol M   
2023-01-04 20:44   
Let's goooo
(0022708)
Zalewa   
2023-01-21 20:15   
Ok, let's do this. Stage 1 completed.

Tag:'https://bitbucket.org/Doomseeker/doomseeker/commits/tag/1.4 [^]'
Website:'https://bitbucket.org/Doomseeker/website/commits/9e78407f2f7bea2c96908b1fdf2fbccfb49c6c1c [^]'

Reassigning to Blzut for stage 2.

Also, I need to add a hint to the checklist to remind myself next time that the libwadseeker src zip can be easily created with the makesourcepackages.sh script because I forgot how this is done again.

(0022709)
Blzut3   
2023-01-21 21:12   
While you can technically generate the src archive, I have the signing key so given that signing is an optional part of that script I'd be regenerating it anyway.
(0022710)
Zalewa   
2023-01-21 21:40   
(edited on: 2023-01-21 21:41)
That's right, but we're packaging the libwadseeker source as .tar.xz and as a .zip. The "Wadseeker Development Kit" download on the Windows page gets the .zip archive, while the "Wadseeker Source" download on the Source page gets the .tar.xz. The .sig file is for the .tar.xz only. Also there's no link to the .sig file on the website.

I create the .zip file by creating the .tar.xz first and then repacking it as .zip.

(0022711)
Blzut3   
2023-01-23 05:59   
Files uploaded. Note that since you set VERSION_STRING to 1.4.0 in versiondefs.cmake instead of 1.4, the source package is named 1.4.0. It probably makes sense to just start including the .0 in the other package names anyway. The Mac dmg can simply be renamed without issue if so.
(0022712)
Zalewa   
2023-01-23 18:04   
The habit of having 3 components in the version number got the better of me. Even though I remembered we're omitting the PATCH component if it's 0, I made the mistake in that one place where it is crucial. Now we have a mishmash. The website, the changelog and the tag are all just "1.4". The components that have "1.4.0" are doomseeker.exe in all binary packages, the tar.gz source package and the auto-update packages.

Since we technically haven't released, yet, I can rewrite the commit and the tag and then redo the parts that have the .0 component.
(0022713)
WubTheCaptain   
2023-01-23 20:30   
Lightweight Git tags are temporary, according to git-tag(1). Those lightweight tags have been used in the past for releases (incorrectly).
Nonetheless, I don't like rewriting mistakes (or tags). The beauty of Git is in its history. Please use a new tag (preferably an annotated one).
(0022714)
WubTheCaptain   
2023-01-23 20:32   
In the future to avoid similar issues, I would like to see MAJOR.MINOR.PATCH version numbering (from SemVer) for all the next releases, from this point onward.

(0022715)
Blzut3   
2023-01-24 04:11   
It doesn't seem like anyone has an objection to just not eliding the .0 going forwards, so it would make more sense to me to adjust the documentation accordingly. (1.4 and 1.4.0 are logically equivalent so I'm not sure there's even a need to make further changes besides maybe renaming the tag.)
(0022716)
WubTheCaptain   
2023-01-24 14:23   
Commit a new change to CHANGELOG, describe version 1.4 in it as [YANKED] (on the right side of 2023-01-21). Keep the 1.4 tag at d47a53624a9b477c084d132599809bb7d06aed7f.
Create a new CHANGELOG entry for release 1.4.0, using a new date. Say in it to have fixed the version number / serious release issue with 1.4, but otherwise it's the same as 1.4. Make a new Git (annotated) tag for this 1.4.0 version.
Upload 1.4.0 sources to the website, etc.
(0022717)
WubTheCaptain   
2023-01-24 14:35   
(edited on: 2023-01-24 14:47)
The above 0004082:0022716 would keep the history of this bug documented, it helps troubleshoot users/distributors experiencing this release bug. Doing it that way may also help automated tools (i.e. Debian packaging) discover new versions, and I want to avoid a scenario where a packager's source tarball hash checksum would become mismatched or unavailable (i.e. OpenBSD porting) if the tag was simply moved (which would be another bug with the release).

(0022718)
WubTheCaptain   
2023-01-24 15:56   
Patch 0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch attached. Please apply it, and tag that one with Git object 1.4.0? I've set the release date pre-emptively as tomorrow (2023-01-25) instead of using the "unreleased" thingy, but the release date can be changed as fit.
(0022719)
WubTheCaptain   
2023-01-24 16:01   
(edited on: 2023-01-24 16:06)
Quote from WubTheCaptain
Patch 0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch attached.

Please see the latest patch instead. (v4-0001-CHANGELOG-Yank-1.4-create-a-new-release-1.4.0.patch)

(0022720)
Blzut3   
2023-01-24 17:36   
OK, if what's effectively a typo in the changelog is going to be a big enough deal to restart the whole release process (vs. just renaming two files and maybe a tag) then so be it. (To be clear, I'm all for updating the Changelog going forward to document the discrepancy, but since we build the commit hash into the binaries moving the tag will necessitate a whole rebuild. So that's why I wanted to either rename or duplicate the tag.)

That said I will note that the Apt repo technically went live, and as you might imagine those have 1.4.0 as their version number. I'm fairly sure Apt will pick up on the repo version being different and offer it as an upgrade but technically this would require a permanent epoch version change.

There are a couple of adjustments I could make to the release scripts based on the previous run (somehow there's always something). Perhaps, since we'll have to rebuild everything anyway, instead of debating the difference between "1.4" and "1.4.0" I can commit those and we'll have a reason to go directly to "1.4.1"?
(0022721)
WubTheCaptain   
2023-01-24 17:56   
(edited on: 2023-01-24 18:12)
To make a note for packagers, the following is the SHA256 hash of the Git tag 1.4 (d47a5367) source with the release issue:
432ec31976d1d513ea2db2de4758c5ef325cf52bb59191470851f4c254f671d2 doomseeker-1.4.0.tar.xz

  • Arch GNU/Linux AUR by Pol_M (I'm assuming) currently uses an explicit Git tag (currently 1.3.3) to select the version. Coincidentally that one is set to skip SHA256 checksum checks, so no breakage yet with that AUR package.
  • Arch GNU/Linux packages could also download a source tarball from an URL and compare its checksum. The $pkgver is an arbitrary Arch version number for the package, and the default one; the Arch package's version number doesn't need to match upstream's (such as pkgver=1.4, _pkgver=1.4.0, source=("https://doomseeker.drdteam.org/files/$pkgname-$_pkgver.tar.xz")). If there's a 1.4.0 PKGBUILD out there somewhere using a source tarball download, if either the filename or checksum changes, this PKGBUILD would break and require changes.
  • OpenBSD distinfo files have the SHA256 + filename, and SIZE + filename to verify a downloaded source tarball; the source tarball will be fetched from ${MASTER_SITES}${DISTNAME}${EXTRACT_SUFX} URL; these three variables are defined in Makefile. DISTNAME=doomseeker-1.4 would fail to download doomseeker-1.4.tar.xz (404 Not Found) I think, but could be hackable by setting EXTRACT_SUFX=.0.tar.xz temporarily for this version. DISTNAME=doomseeker-1.4.0 would currently download doomseeker-1.4.0.tar.xz matching the Git object tag 1.4 (d47a5367) release, with a matching filesize and size; but I anticipate this has another issue with the port's OpenBSD pkg being versioned "1.4.0". If the upstream tarball changes, the port maintainer needs to update the distinfo files when the doomseeker-1.4.0.tar.xz changes at upstream. Alternatively, OpenBSD can also clone a source from Git...
  • Debian scans the Vcs-Browser and Vcs-Git URIs from control with vcswatch, and reports about changes (new Git tags). I am not sure what would happen if the 1.4 tag would be rewritten, but there's a plausibility of not getting notified of new upstream changes at all.
  • debian/watch files point to the source tarball directory index URL with a regex match (such as https://doomseeker.drdteam.org/files/doomseeker-(.*).tar.xz) or a Git repository, to download the package.
  • Usually, Debian maintainers keep a pristine copy of an upstream version branch (1.4), either as a Git branch or as a source tarball. If the 1.4 tag is rewritten to a new commit (after applying a Debian Git branch), I anticipate issues breakage could occur when comparison is made to pristine source branches/tarballs, as a matching pristine source tarball is generally a requirement for distribution.


(0022722)
Zalewa   
2023-01-24 18:09   
Please give me the chance to respond. I really shouldn't (and sometimes can't) respond during my work time hours.

Quote from Blzut3
It doesn't seem like anyone has an objection to just not eliding the .0 going forwards, so it would make more sense to me to adjust the documentation accordingly. (1.4 and 1.4.0 are logically equivalent so I'm not sure there's even a need to make further changes besides maybe renaming the tag.)

I was about to say that I intend to own the mistake and resolve it with least friction possible. This involves:

1. Renaming the Windows .zip and Mac packages to "1.4.0". The Windows zip doesn't have a top-level directory inside so renaming the file is enough. Similar goes for the Mac package.
2. Leave the changelog as-is and keep the "1.4" tag. The changelog links to the "1.4" tag, so we shouldn't be removing it.
3. For completness, add "1.4.0" tag next to the "1.4" tag, making them equivalent.
4. Adjust the website to offer "1.4.0" instead of "1.4".

Quote from Blzut3
the Apt repo technically went live, and as you might imagine those have 1.4.0 as their version number. I'm fairly sure Apt will pick up on the repo version being different and offer it as an upgrade but technically this would require a permanent epoch version change.

Apt uses version comparison methods that you can test with `dpkg --compare-versions`, and it considers 1.4 to be older than 1.4.0
$ dpkg --compare-versions 1.4 lt 1.4.0 && echo y || echo n
y

So if you replace 1.4.0 in apt with 1.4, it won't offer the replacement for anyone who has already installed 1.4.0.
(0022723)
WubTheCaptain   
2023-01-24 19:00   
Quote from Zalewa
1. Renaming the Windows .zip and Mac packages to "1.4.0". The Windows zip doesn't have a top-level directory inside so renaming the file is enough. Similar goes for the Mac package.

Winget uses absolute URLs for downloads. Wondering why I didn't see Doomseeker packaged in the Windows Package Manager Community Repository, I later found out Winget only supports MSIX, MSI, APPX or .exe application installers anyway. I don't foresee issues with renaming.
Quote from Zalewa
2. Leave the changelog as-is and keep the "1.4" tag. The changelog links to the "1.4" tag, so we shouldn't be removing it.

I agree, the 1.4 tag should remain to exist. After my longer consideration how various distributions may be affected, the 1.4.0 version number should be documented in the next version's (1.4.1) changelogs at the earliest. The patch I've authored shouldn't be used for the 1.4.0 tag then.
Quote from Zalewa
3. For completness, add "1.4.0" tag next to the "1.4" tag, making them equivalent.
4. Adjust the website to offer "1.4.0" instead of "1.4".
.
Sounds agreeable.
(0022724)
WubTheCaptain   
2023-01-24 19:26   
(edited on: 2023-01-24 19:27)
Quote from WubTheCaptain
Quote from Zalewa
1. Renaming the Windows .zip and Mac packages to "1.4.0". The Windows zip doesn't have a top-level directory inside so renaming the file is enough. Similar goes for the Mac package.

[...] I don't foresee issues with renaming.

No changes required for Homebrew formulae (nevermind Homebrew Formulae repository doesn't have Doomseeker available) source builds with this change, but I'm thinking a Homebrew binary download manifest (doomseeker.rb) may need to change a version number from 1.4 to 1.4.0 now. I noticed there's no HTTP redirect from doomseeker-1.4_macosx.dmg to doomseeker-1.4.0_macosx.dmg, so there's currently some breakage for theoretical Homebrew casks/bottles/binary whatever on Mac.

(0022733)
Blzut3   
2023-01-25 04:31   
Quote from Zalewa
Apt uses version comparison methods that you can test with `dpkg --compare-versions`, and it considers 1.4 to be older than 1.4.0

Actually ran that test today as well, was slightly surprised by that but it makes sense based on how the algorithm works. FYI, rpm does the same.

Anyway, your proposed changes are essentially what I proposed so not sure if you need anything more from me?
(0022737)
Zalewa   
2023-01-25 07:22   
Quote from Blzut3
not sure if you need anything more from me?

Only your confirmation. Which I just received, thanks.

I progressed with the release and all things should be up: the website and the auto-update on the stable channel. I will have to do the announcements later today.
(0022739)
Zalewa   
2023-01-25 18:11   
And here's the announcement:'https://zandronum.com/forum/viewtopic.php?f=8&t=10887 [^]'

It's done. Thanks to all who contributed and persevered through all of this.