jamulus icon indicating copy to clipboard operation
jamulus copied to clipboard

Prepare release 3.11.0

Open ann0see opened this issue 1 year ago • 74 comments

Target timeline

Phase Date
Scheduled feature freeze / Start of translation process In the past
Targeted translation completion date: 2024-08-26
Approximate release date: 2024-09-15
Current state: Beta

(Due to a couple of late changes post freeze, the planned date is moved back two weeks.)

Checklist

  • [ ] Assign this issue to the release shepherd who is in charge of managing this checklist.
  • [x] Pin this issue
  • [x] Ensure that all issues/PR targeted for this release are done by checking the Project board with the appropriate filter for this release. Remind main developers to review entries in Waiting on team state.
  • [x] Agree to de-tag unfinished Issues/PRs.
  • [x] Declare a freeze for code and website by updating this Issue and adding a comment. PRs can still be worked on and may get reviewed, but must not be merged unless agreed explicitly.
  • [x] Check the needs documentation label for any outstanding PRs flagged for this release and remove that label if done.
  • [x] Check ./Jamulus -h output against the Wiki Include-Client/Server-Commands pages and man page (distributions/Jamulus.1). Update if necessary.
  • [x] Start Website translations
    • [x] Check for broken links
    • [x] Open a Pull Request from next-release to release, set it as "Draft", sanity check for conflicts and any obvious problems.
    • [x] Declare a full freeze of the next-release and release branch. No changes should be made from now on to ensure translators don't have to work twice.
    • [ ] Check if the list of translators in tools/create-translation-issues.sh. Make sure issue text is up-to-date. Add any URLs that will need localisation into the "New/Changed screenshots" section.
    • [x] Unlock Web translations on Weblate if needed
    • [x] Publish a new Weblate announcement to notify translators of the translation deadline if not already done for the app.
    • [x] Create a translation issue for each language with tools/create-translation-issues.sh using web argument (see notes in script).
    • [ ] If anyone finds critical issues now, all translators must be made aware of them and all languages should be updated.
  • [x] Start App translations
    • [x] Generate .ts files in main via lupdate
    • [ ] Check if the list of translators in tools/create-translation-issues.sh is up-to-date
    • [x] Create a translation issue for each language with tools/create-translation-issues.sh using app argument.
    • [x] Unlock Translations on Weblate if needed
    • [x] Publish a new Weblate announcement to notify translators of the translation deadline if not already done for the Website.
  • [x] Update the Changelog
  • [x] Tag a beta release
    • [x] Inform emlynmac for signing on macOS, and upload signed binary from his repo to ours
    • [x] Announce the beta release on Github Discussions. Pin the thread.
    • [x] Get feedback on the stability and resource usage (memleaks?, crashes?, installation issues?) of the beta release
  • [x] Finish App translations
    • [x] Review translation PRs according to release process checklist
    • [x] Wait for all PRs to be merged (missing translations will revert to English automatically).
    • [ ] Check for conflicting accelerator keys (see tools/checkkeys.pl)
    • [ ] Check for broken links
  • [ ] Check the milestone for mergable stuff again
  • [ ] Update the Changelog
  • [ ] Tag a release candidate (inform emlynmac for signing on macOS and upload signed binary from his repo to ours).
    • [ ] Announce the release candidate on Github Discussions. Pin the thread. Unpin and lock the beta thread.
    • [ ] Draft an announcement, include all contributors via tools/get_release_contributors.py
  • [ ] Update the version number in Jamulus.pro and add the release date to the Changelog header and commit
  • [ ] Update the Changelog
  • [ ] Tag this commit as r3_y_z
    • [ ] Wait for the build to complete
    • [ ] Push tag to ann0see/jamulussign for signing on macOS and upload signed binary from his repo to ours.
    • [ ] Do a smoke test for Windows/Mac/Linux -- Do the binaries start/connect properly? Can earlier Jamulus versions properly connect to a server based on the new release?
    • [ ] Force tag that tag as latest and push.
    • [ ] Upload the artifacts to SourceForge and set defaults.
    • [ ] Update download links on the website by editing _config.yml in next-release
    • [ ] Disable branch protection rule of the release branch by clicking on "Edit" on the Branches page and adding a _ behind release.
    • [ ] Publish Website release by squashing and merging next-release into release
    • [ ] Enable branch protection rule of the release branch after the site and the .po files are published by removing the _ from the branch protection rule you edited on the Branches page.
  • [ ] Announce the new release with a summary of changes (+ link to the changelog for details) and a link to the download page
    • [ ] On Github Discussions in the Announcements section. Lock the announcement thread. Pin the thread. Unpin and lock release candidate thread.
    • [ ] On Facebook in the group "Jamulus (official group)". Turn off replies.
  • [ ] Trigger the update notification by updating both Update Check Servers with the new version (@pljones for update02, email corrados for update01)
  • [ ] [Prepare Jamulus.pro (dev suffix) and ChangeLog (add a header) for the next release
  • [ ] Check that all Issues and PRs tagged for this release are in Done/Closed state.
  • [ ] Close the release milestone in both jamulus and jamuluswebsite repos
  • [ ] Create a milestone for the next minor release in jamulus and jamuluswebsite repos
  • [ ] Update this template in https://jamulus.io/contribute/Release-Process with any improvements if needed.
  • [ ] Unpin and close this issue
  • [ ] Determine if a release retrospective is needed, create on Discussions if required

ann0see avatar Mar 31 '24 18:03 ann0see

https://github.com/jamulussoftware/jamulus/pull/3309 is the last PR for 3.11.0 before a feature freeze. Is this correct or do we want to bump Qt also?

ann0see avatar Jul 11 '24 19:07 ann0see

  • [ ] Start App translations
    • [ ] Generate .ts files in main via lupdate

Is this still needed (the .ts files) or is that what's now being done automatically?

Is this still the correct process?

pljones avatar Jul 22 '24 17:07 pljones

Oh yes -- Code and Documentation freeze has been in place for a while, all remaining changes should be completed ASAP, please.

pljones avatar Jul 22 '24 17:07 pljones

jamulussoftware/jamulus#3309 is the last PR for 3.11.0 before a feature freeze. Is this correct or do we want to bump Qt also?

(Somewhat later...) Code is complete, the only outstanding PRs are website:

pljones avatar Jul 22 '24 17:07 pljones

  • [ ] Check the needs documentation label for any outstanding PRs flagged for this release and remove that label if done.
  • jamulussoftware/jamulus#3159
  • jamulussoftware/jamulus#3260
  • jamulussoftware/jamulus#3305
  • jamulussoftware/jamulus#3299

The above are tagged for needing documentation update (I just added jamulussoftware/jamulus#3305 as it affects jamulussoftware/jamulus#3159 and jamulussoftware/jamulus#3260).

Do any of the dependency updates need website documentation updates?

pljones avatar Jul 22 '24 18:07 pljones

Is this still needed (the .ts files) or is that what's now being done automatically?

I don't think that's done automatically

Is this still the correct process?

In theory yes, but since he's no longer that active, we need to find an alternative. E.g @danryu (?)

ann0see avatar Jul 22 '24 18:07 ann0see

Is this still needed (the .ts files) or is that what's now being done automatically?

I don't think that's done automatically

Correct. The .ts files need to get updated directly on upstream using lupdate, and then the translations need to be checked via weblate.

The part that is now done automatically is the creation of the .qm files from the .ts files. So there is no longer any need to do a manual lrelease, nor to commit .qm files.

I have a pending action to update the Release Process on the website to reflect the above, but got sidetracked by difficulties installing Jekyll (not yet resolved). I had originally created RELEASE-PROCESS.md in the jamulus repo, but it got moved to the website by someone some time ago, unfortunately.

softins avatar Jul 22 '24 18:07 softins

I've just done the lupdate and pushed directly to main, so the .ts files are ready for the final translation pass for each language. For most languages, there are 19 strings that need translating.

softins avatar Jul 23 '24 10:07 softins

I've also just removed the lrelease step from the checklist above, as it's no longer needed. Is there a template somewhere it also needs removing from?

softins avatar Jul 23 '24 10:07 softins

Is there a template somewhere it also needs removing from?

Just found it in the website, https://github.com/jamulussoftware/jamuluswebsite/blob/release/contribute/en/Release-Process.md

softins avatar Jul 23 '24 11:07 softins

I have the feeling that we should take our time to read through some parts of the website before freezing it - especially the install guides.

ann0see avatar Jul 23 '24 20:07 ann0see

jamulussoftware/jamulus#3299 -- @softins I've had a look through COMPILING.md and I can't see anywhere that would require changes or where it would help by adding anything. Can you confirm we can live without mentioning the change anywhere?

(I'm mildly interested in what effect the developer sees from making it... but we don't say much about the build process anyway, anyway...)

pljones avatar Jul 28 '24 08:07 pljones

For

  • https://github.com/jamulussoftware/jamulus/pull/3159
  • https://github.com/jamulussoftware/jamulus/pull/3260
  • https://github.com/jamulussoftware/jamulus/pull/3305

I'm proposing a single new issue be raised in jamulus/jamuluswebsite to get the documentation change done (as all three go together, really). Before I open it, is anyone already working on this?

pljones avatar Jul 28 '24 08:07 pljones

Jamulus -h looks unchanged from r3_10_0:

$ git pull upstream main
$ git show -s
de60e5eb 2024-07-23 (HEAD -> main, upstream/main, origin/main) Update .ts files ready for 3.11.0 translations [Tony Mountifield]
$ make distclean; qmake -nocache && make -j3 && make clean
...
$ ./Jamulus -h > de60e5eb
$ git reset --hard 9de9ad70
$ git show -s
9de9ad70 2023-09-03 (HEAD, tag: r3_10_0, tag: latest) Update version to 3.10.0 for release [ann0see]
$ make distclean; qmake -nocache && make -j3 && make clean
...
$ ./Jamulus -h > r3_10_0
$ diff -du r3_10_0 de60e5eb
$ $ echo $?
0

pljones avatar Jul 28 '24 08:07 pljones

is anyone already working on this?

No. I don't think so.

ann0see avatar Jul 28 '24 09:07 ann0see

I've opened jamulussoftware/jamulus#3316 with a draft change log.

pljones avatar Jul 28 '24 09:07 pljones

@danryu @emlynmac any updates on signing for macOS?

ann0see avatar Jul 28 '24 09:07 ann0see

https://github.com/jamulussoftware/jamuluswebsite/issues/1002 raised for the "delete server" button changes.

pljones avatar Jul 28 '24 09:07 pljones

Just updated the ChangeLog to have 3.11.0 as the next release on jamulus/jamulus/main.

pljones avatar Jul 28 '24 11:07 pljones

jamulussoftware/jamulus#3318 add to 3.12.0 to fix handling of the change log tag other than at the start of a line (e.g. inside quoted blocks).

pljones avatar Jul 28 '24 11:07 pljones

jamulussoftware/jamulus#3319 added to 3.12.0 with some feature requests to improve sorting and grouping in the change log helper.

pljones avatar Jul 28 '24 11:07 pljones

jamulussoftware/jamulus#3320 added to 3.12.0 for a process documentation tweak for something I missed: checking the header of the change log to see the version is what we're planning to release.

pljones avatar Jul 28 '24 11:07 pljones

jamulussoftware/jamulus#3299 -- @softins I've had a look through COMPILING.md and I can't see anywhere that would require changes or where it would help by adding anything. Can you confirm we can live without mentioning the change anywhere?

I've read through it, and I can't see anything that needs to change as a result of jamulussoftware/jamulus#3299. We might want to mention that because of jamulussoftware/jamulus#3288, the minimum supported version of Qt is now 5.12, so it would be tricky to build on an older Linux distro that only provides an earlier version. Also, I noticed that in the Windows section, it recommends Qt 5.15.2, although our CI Windows builds are now using Qt 6.x.

(I'm mildly interested in what effect the developer sees from making it... but we don't say much about the build process anyway, anyway...)

Not much effect. The built binary still ends up in the same place in the project root. It's just that the project root is a lot less cluttered with build files such as moc_*.cpp and *.o, which are now placed in release/ instead of the root.

softins avatar Jul 28 '24 16:07 softins

@danryu @emlynmac any updates on signing for macOS?

Unfortunately the account for Koord is no longer available, and I don't have a personal developer account yet. If nobody else has an Apple developer account, perhaps a new Jamulus developer account needs setting up?

danryu avatar Jul 28 '24 17:07 danryu

perhaps a new Jamulus developer account needs setting up

I believe this would be the way to go. I'm thinking about getting a personal one for myself which we can use to sign Jamulus. An organization wide one needs DUNS numbers and seems to imply a lot of hurdles.

I personally only have access to older intel based devices (2012, 2016) which will work for now but it's certainly not future proof.

ann0see avatar Jul 28 '24 18:07 ann0see

Heads up: @ignotus666 I force pushed to the release branch since updating via github web ui mistakenly merged the next-release branch to release pre release but luckily didn't change the website. I think that everything we need is on next-release.

ann0see avatar Jul 28 '24 18:07 ann0see

@ann0see yes, I saw that - the failing workflows stop it from generating the website.

I think that everything we need is on next-release.

Yep, I think so.

ignotus666 avatar Jul 28 '24 19:07 ignotus666

the failing workflows stop it from generating the website.

luckily...

ann0see avatar Jul 28 '24 19:07 ann0see

jamulussoftware/jamulus#3299 -- @softins I've had a look through COMPILING.md and I can't see anywhere that would require changes or where it would help by adding anything. Can you confirm we can live without mentioning the change anywhere?

I've read through it, and I can't see anything that needs to change as a result of jamulussoftware/jamulus#3299. We might want to mention that because of jamulussoftware/jamulus#3288, the minimum supported version of Qt is now 5.12, so it would be tricky to build on an older Linux distro that only provides an earlier version. Also, I noticed that in the Windows section, it recommends Qt 5.15.2, although our CI Windows builds are now using Qt 6.x.

(I'm mildly interested in what effect the developer sees from making it... but we don't say much about the build process anyway, anyway...)

Not much effect. The built binary still ends up in the same place in the project root. It's just that the project root is a lot less cluttered with build files such as moc_*.cpp and *.o, which are now placed in release/ instead of the root.

Ah, jamulussoftware/jamulus#3288 also wasn't being tracked. jamulussoftware/jamulus#3322 raised.

pljones avatar Jul 31 '24 15:07 pljones

I'll let someone else do the broken link check. Ubuntu 22.04LTS says

$ _po4a-tools/po4a-create-all-targets.sh
Error: po4a v0.66. is installed
po4a v0.68 or higher is required.

after a fresh install of po4a. We need this to kick off the translations and get into beta/RC cycle.

pljones avatar Aug 04 '24 15:08 pljones