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

Prepare release 3.11.0 #3255

Closed
53 of 60 tasks
ann0see opened this issue Mar 31, 2024 · 86 comments
Closed
53 of 60 tasks

Prepare release 3.11.0 #3255

ann0see opened this issue Mar 31, 2024 · 86 comments

Comments

@ann0see
Copy link
Member

ann0see commented Mar 31, 2024

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-221
Current state: Released

Checklist

  • Assign this issue to the release shepherd who is in charge of managing this checklist.
  • Pin this issue
  • 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.
  • Agree to de-tag unfinished Issues/PRs.
  • 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.
  • Check the needs documentation label for any outstanding PRs flagged for this release and remove that label if done.
  • Check ./Jamulus -h output against the Wiki Include-Client/Server-Commands pages and man page (distributions/Jamulus.1). Update if necessary.
  • Start Website translations
    • Check for broken links
    • Open a Pull Request from next-release to release, set it as "Draft", sanity check for conflicts and any obvious problems.
    • 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.
    • Unlock Web translations on Weblate if needed
    • Publish a new Weblate announcement to notify translators of the translation deadline if not already done for the app.
    • 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.
  • Start App translations
    • Generate .ts files in main via lupdate
    • Check if the list of translators in tools/create-translation-issues.sh is up-to-date
    • Create a translation issue for each language with tools/create-translation-issues.sh using app argument.
    • Unlock Translations on Weblate if needed
    • Publish a new Weblate announcement to notify translators of the translation deadline if not already done for the Website.
  • Update the Changelog
  • Tag a beta release
    • Inform emlynmac for signing on macOS, and upload signed binary from his repo to ours
    • Announce the beta release on Github Discussions. Pin the thread.
    • Get feedback on the stability and resource usage (memleaks?, crashes?, installation issues?) of the beta release
  • Finish App translations
    • Review translation PRs according to release process checklist
    • 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 MOVE BEFORE PREVIOUS STEP
  • 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 ann0see added this to the Release 3.11.0 milestone Mar 31, 2024
@ann0see ann0see pinned this issue Mar 31, 2024
@ann0see
Copy link
Member Author

ann0see commented Jul 11, 2024

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

@pljones
Copy link
Collaborator

pljones commented Jul 22, 2024

  • 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
Copy link
Collaborator

pljones commented Jul 22, 2024

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

@pljones
Copy link
Collaborator

pljones commented Jul 22, 2024

#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
Copy link
Collaborator

pljones commented Jul 22, 2024

  • Check the needs documentation label for any outstanding PRs flagged for this release and remove that label if done.

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

Do any of the dependency updates need website documentation updates?

@ann0see
Copy link
Member Author

ann0see commented Jul 22, 2024

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 (?)

@softins
Copy link
Member

softins commented Jul 22, 2024

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
Copy link
Member

softins commented Jul 23, 2024

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
Copy link
Member

softins commented Jul 23, 2024

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
Copy link
Member

softins commented Jul 23, 2024

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

@ann0see
Copy link
Member Author

ann0see commented Jul 23, 2024

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.

@pljones
Copy link
Collaborator

pljones commented Jul 28, 2024

#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
Copy link
Collaborator

pljones commented Jul 28, 2024

For

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
Copy link
Collaborator

pljones commented Jul 28, 2024

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

@ann0see
Copy link
Member Author

ann0see commented Jul 28, 2024

is anyone already working on this?

No. I don't think so.

@pljones
Copy link
Collaborator

pljones commented Jul 28, 2024

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

@ann0see
Copy link
Member Author

ann0see commented Jul 28, 2024

@danryu @emlynmac any updates on signing for macOS?

@pljones
Copy link
Collaborator

pljones commented Jul 28, 2024

jamulussoftware/jamuluswebsite#1002 raised for the "delete server" button changes.

@pljones
Copy link
Collaborator

pljones commented Jul 28, 2024

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

@pljones
Copy link
Collaborator

pljones commented Jul 28, 2024

#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
Copy link
Collaborator

pljones commented Jul 28, 2024

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

@pljones
Copy link
Collaborator

pljones commented Jul 28, 2024

#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.

@softins
Copy link
Member

softins commented Jul 28, 2024

#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 #3299. We might want to mention that because of #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.

@danryu
Copy link
Contributor

danryu commented Jul 28, 2024

@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?

@ann0see
Copy link
Member Author

ann0see commented Jul 28, 2024

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
Copy link
Member Author

ann0see commented Jul 28, 2024

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.

@ignotus666
Copy link
Contributor

@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.

@ann0see
Copy link
Member Author

ann0see commented Aug 23, 2024

Since the translation deadline has been over for some days, I'd suggest to review and merge the website and app PRs tomorrow, then tag a beta or even RC1.

@ann0see
Copy link
Member Author

ann0see commented Aug 23, 2024

Due to the signing + bundle ID changes on macOS, we may want to have a beta2, not a rc.

@pljones
Copy link
Collaborator

pljones commented Aug 24, 2024

I was also going to suggest a beta2 in the light of the PNG changes, just in case something went wrong with that.

@pljones
Copy link
Collaborator

pljones commented Aug 24, 2024

@ann0see I've attached the signed mac builds to the beta1 release... I've left the unsigned ones there for now, too.

@ann0see
Copy link
Member Author

ann0see commented Aug 24, 2024

Ok. They aren't officially speaking the "real" beta1 builds since they have another version identifier. They are built on the same code base nevertheless.

@pljones
Copy link
Collaborator

pljones commented Aug 25, 2024

Ok. They aren't officially speaking the "real" beta1 builds since they have another version identifier. They are built on the same code base nevertheless.

So long as it was against the tag, that's what matters - i.e. ./Jamulus --version and "Help->About Jamulus" say the right thing, i.e.

Jamulus, Version 3.11.0beta

@ann0see
Copy link
Member Author

ann0see commented Aug 25, 2024

No. It does not. But I think it doesn't matter too much as we should get out beta2 asap

@ann0see
Copy link
Member Author

ann0see commented Aug 26, 2024

Tagged https://github.com/jamulussoftware/jamulus/actions/runs/10565063718 beta2

@pljones
Copy link
Collaborator

pljones commented Aug 26, 2024

Rock, Jazz, Classical/Folk, Choral/Barbershop Directories cut over to beta2.

My "2", "6" and "8" Directories, and my public Server are on main (as is my private server, currently, as it's code is frozen, too).

@gilgongo gilgongo modified the milestone: Release 3.11.0 Aug 27, 2024
@ann0see
Copy link
Member Author

ann0see commented Aug 28, 2024

I think it makes sense to tag a RC in a week or so?

@pljones
Copy link
Collaborator

pljones commented Aug 29, 2024

I'd like to get the RC by no later than 8th September, then bump to release on 15th, assuming it's all clear.

@pljones
Copy link
Collaborator

pljones commented Aug 30, 2024

  • Finish App translations
    • Review translation PRs according to release process checklist
    • 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 for broken links" is a website check -- needs removing from the "Finish App translations".

(I could be wrong about what it means, of course... Do we link from the app to the website anywhere?)

@ann0see
Copy link
Member Author

ann0see commented Sep 10, 2024

Accelerator keys and some change log cleanup needs to happen still.

@softins
Copy link
Member

softins commented Sep 10, 2024

I have been intending to check through the accelerator keys this week. Hopefully tomorrow.

@softins
Copy link
Member

softins commented Sep 11, 2024

I've checked the accelerator keys in all languages, and there were no conflicts to resolve. I'll mark the task as done in the checklist.

@pljones
Copy link
Collaborator

pljones commented Sep 11, 2024

Anything else before the RC? Just the ChangeLog (which needs to include the translators and be trimmed down so it's not flooded with entries for version bumps)?

@ann0see
Copy link
Member Author

ann0see commented Sep 11, 2024

@pljones Yes, I think so

@ann0see
Copy link
Member Author

ann0see commented Sep 13, 2024

@pljones there seems to be an issue with building the RC: https://github.com/jamulussoftware/jamulus/actions/runs/10854740671/job/30125832570

@pljones
Copy link
Collaborator

pljones commented Sep 13, 2024

 ./.github/autobuild/extractVersionChangelog.pl ChangeLog 3.10.0rc1

Why does it do that?

71a7cbc6 2024-09-13 (HEAD -> main, tag: r3_11_0rc1, origin/main) Update Jamulus.pro for 3.11.0rc1 [Peter L Jones]
748384dd 2024-08-26 (tag: r3_11_0beta2) Update version to 3.11.0beta2 [ann0see]
3593ba56 2024-08-07 (tag: r3_11_0beta1) Update version to 3.11.0beta1 [Peter L Jones]
9de9ad70 2023-09-03 (tag: r3_10_0, tag: latest) Update version to 3.10.0 for release [ann0see]
f0fe064d 2023-08-24 (tag: r3_10_0rc2) Update version to 3.10.0rc2 for release candidate [ann0see]
b22da6dc 2023-07-30 (tag: r3_10_0rc1) Update version to 3.10.0rc1 for first release candidate [Peter L Jones]

Hm...

.github/workflows/autobuild.yml:        run:                        ./.github/autobuild/extractVersionChangelog.pl ChangeLog ${{ steps.get-build-vars.outputs.JAMULUS_PRO_VERSION }} > ${{ env.release_changelog_path }}

@pljones
Copy link
Collaborator

pljones commented Sep 13, 2024

Argh, typo.

@pljones
Copy link
Collaborator

pljones commented Sep 13, 2024

Better
https://github.com/jamulussoftware/jamulus/actions/runs/10855006639

@pljones
Copy link
Collaborator

pljones commented Sep 13, 2024

Announcement posted: https://github.com/orgs/jamulussoftware/discussions/3371
@ann0see please edit once you've got the notarised build in place.
-EDIT- ^ done.

@pljones
Copy link
Collaborator

pljones commented Sep 21, 2024

  • Update the Changelog
  • Tag a beta release
  • Update the Changelog
  • Tag a release candidate
  • 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

Why for the final release is the build broken up into three steps, with the "Update the Changelog" after actually pushing the release build and tagging it and then before trying to tag it again? This needs updating.

jamulussoftware/jamuluswebsite#1042 raised.

@pljones
Copy link
Collaborator

pljones commented Sep 21, 2024

Release 3.11.0 is out now. I've deployed to the update02 server, SourceForge default downloads are up to date and notices are up on Facebook and GitHub. Summarising the release check list points outstanding:

  • Assign this issue to the release shepherd who is in charge of managing this checklist.

Looks like we're able to live without this formally being assigned and I guess we may as well remove it from the check list.

  • 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.

I think this needs looking into. We don't seem to know how to find out who is still involved other than by hoping they are.

  • How do we keep the translators engaged during the development process? Is this another point in favour of small frequent releases (so small amounts of work more often to retain engagement)?
  • Check for broken links

Hopefully this should now work but I never went back and checked...

  • Trigger the update notification by updating both Update Check Servers with the new version (@pljones for update02, email corrados for update01)

I was very late getting in touch with Volker, most because we'd not been particularly firm on a release date. We do always have the option of repointing the update01 DNS name until Volker deploys a release, anyway.

I've raised at least one issue for changing things and tagged it for 3.12.0. If anyone else has anything, please raise it as an issue. (I just moved one of mine to jamuluswebsite, which is where it should be raised.)

  • Determine if a release retrospective is needed, create on Discussions if required

Anything else anyone wants? Please raise it on Discussions, if so.

Thank you, all!

@pljones pljones closed this as completed Sep 21, 2024
@pljones pljones unpinned this issue Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

8 participants