jamulus icon indicating copy to clipboard operation
jamulus copied to clipboard

Prepare release 3.12.0

Open pljones opened this issue 1 year ago • 54 comments

Target timeline

Phase Date
Scheduled feature freeze / Start of translation process 06.07.2025
Targeted translation completion date: Early 2025
Approximate release date: Early 2025
Current state: Code freeze (rc)

Release aims

We're currently looking forwards to Jamulus 4, which will make some larger scale changes to parts of Jamulus than previous releases have. So we're aiming to fix as many known issues as we can in this coming release, so there's a stable version of Jamulus available whilst work progresses on the changes.

Checklist

  • [ ] Assign this issue to the release shepherd who is in charge of managing this checklist.
  • [x] Make sure ChangeLog has the agreed next release version number.
  • [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 Include-Client/Server-Commands.md pages and [man page (distributions/Jamulus.1)[(https://github.com/jamulussoftware/jamulus/blob/main/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] Create a translation issue for each language with tools/create-translation-issues.sh using web argument (see notes in script).
    • [x] 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] Update the Changelog
  • [x] Tag a beta release
    • [ ] 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
    • [ ] Wait for all PRs to be merged (missing translations will revert to English automatically).
    • [x] Check for conflicting accelerator keys (see tools/checkkeys.pl)
  • [x] Finish Website translations
    • [x] Wait for all PRs to be merged (missing translations will revert to English automatically)
    • [x] 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
    • [ ] Contact emlynmac 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

pljones avatar Dec 18 '24 11:12 pljones

@pljones Could you please verify you sent a mail about discord a few minutes ago?

ann0see avatar Mar 22 '25 18:03 ann0see

Yes. I've got to check a gew other places too see where else I did it, too.

pljones avatar Mar 22 '25 18:03 pljones

Ok. Verified. @gilgongo should be able to help you.

ann0see avatar Mar 22 '25 19:03 ann0see

I'd say the goal here is to have a stable 3.12.0 (@pljones already said something like that somewhere). Afterwards for 4.0 we start potential larger restructurings.

ann0see avatar Mar 22 '25 20:03 ann0see

I would like to declare a feature freeze this weekend: 05.07.25.

ann0see avatar Jun 30 '25 16:06 ann0see

Ho,

What you mean this. Jamulus down?

   

Sent: Monday, June 30, 2025 at 6:31 PM From: "ann0see" @.> To: "jamulussoftware/jamulus" @.> Cc: "anprdev" @.>, "Comment" @.> Subject: Re: [jamulussoftware/jamulus] Prepare release 3.12.0 (Issue #3443)

ann0see left a comment (jamulussoftware/jamulus#3443)

I would like to declare a feature freeze this weekend: 05.07.25.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

anprdev avatar Jun 30 '25 23:06 anprdev

@anprdev No. This means that from this date no new features for the upcoming version should be worked on. Every new feature worked on would need to be in a later version.

ann0see avatar Jul 01 '25 05:07 ann0see

 

Thanks for answering. Cheers Roland  

Sent: Tuesday, July 01, 2025 at 7:27 AM From: "ann0see" @.> To: "jamulussoftware/jamulus" @.> Cc: "anprdev" @.>, "Mention" @.> Subject: Re: [jamulussoftware/jamulus] Prepare release 3.12.0 (Issue #3443)

ann0see left a comment (jamulussoftware/jamulus#3443)

@anprdev No. This means that from this date no new features for the upcoming version should be worked on. Every new feature worked on would need to be in a later version.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

anprdev avatar Jul 01 '25 22:07 anprdev

I am declaring a tag freeze now. No new Issues should be tagged unless explicitly agreed. Everything that is tagged for the upcoming release now should be worked on with priority.

ann0see avatar Jul 06 '25 08:07 ann0see

Top good to do that. Can we also do something about to tell the server to go private with RPC? Maybe wrong place to ask.

anprdev avatar Jul 06 '25 09:07 anprdev

Maybe wrong place to ask.

Unfortunately yes. This issue is only for handling the release process. Any issues/feature requests should go through the Discussions or issues.

Have a look at this document about contributing: https://github.com/jamulussoftware/jamulus/blob/main/CONTRIBUTING.md

ann0see avatar Jul 06 '25 09:07 ann0see

Concerning signing on macOS, I will probably need to renew my certificate - but before doing that, I would like to have an unsigned beta.

ann0see avatar Aug 10 '25 08:08 ann0see

Concerning signing on macOS, I will probably need to renew my certificate - but before doing that, I would like to have an unsigned beta.

If you like I can help with testing have macOS on a virtual Machine

anprdev avatar Aug 10 '25 11:08 anprdev

@jamulussoftware/maindevelopers

I am planning to push the release forward and soon start the translation process.

The only important outstanding issue is about accessibility: https://github.com/jamulussoftware/jamulus/issues/490

IMO we need to build a modified version for this, so it's not strictly speaking a blocker but needs to be done soon.

ann0see avatar Aug 30 '25 14:08 ann0see

Nice step by step.

anprdev avatar Aug 30 '25 18:08 anprdev

@softins I don't think that the lupdate step is needed? For me, it seems as if there is nothing changing if I run it.

ann0see avatar Aug 31 '25 20:08 ann0see

TODO: Add step for checklist to set note for translation process on weblate.

ann0see avatar Aug 31 '25 20:08 ann0see

Can't wait for this. Good job

anprdev avatar Sep 02 '25 13:09 anprdev

Some items to pick up when reviewing the release process:

  • [x] Check ./Jamulus -h output against the Include-Client/Server-Commands.md pages and [man page (distributions/Jamulus.1)[(https://github.com/jamulussoftware/jamulus/blob/main/distributions/Jamulus.1). Update if necessary.

"https://github.com/jamulussoftware/jamuluswebsite/blob/next-release/wiki/en/Include-Server-Commands.md" -- this does not exist, unfortunately. There's some more detailed, scattered, information on what the options mean in the "Running a Server" document but not just the list of options. I've marked it done on the basis of my attempt to check that everything matched but ... well, I couldn't say for certain.

https://github.com/jamulussoftware/jamulus/issues/3537

I got as far as bundle exec jekyll serve but linkcheck --no-warnings http://localhost:4000 > linkcheck.log fails -- there doesn't appear to be a --no-warnings option. I tried using the docker version and that didn't work, so I gave up at that point.

https://github.com/jamulussoftware/jamulus/issues/3538

pljones avatar Sep 14 '25 13:09 pljones

Another change request for the changelog-helper:

$ grep SKIP ./tools/changelog-helper.sh
        if [[ "${title_suggestion_in_pr}" == "SKIP" ]]; then

Could do with this issuing a message. I got

Checking if all PR references in git log since r3_11_0 are included for 3.12.0 based on ref origin/main...
-> Ignoring PR #3512, which was mentioned in 'git log r3_11_0..HEAD', but already has milestone 'Release 3.11.0'

on the first pass. I checked #3512 and it was mis-tagged, so I fixed it. When I reran, I didn't see it mentioned. That caused me to restore the updated ChangeLog and start again. It still didn't appear -- so then I checked the PR and it was tagged "SKIP". Having

-> Skipping PR #3512 (...title...)

would have been more reassuring.

https://github.com/jamulussoftware/jamulus/issues/3536

pljones avatar Sep 14 '25 13:09 pljones

@jamulussoftware/translators please recheck your translations. I plan to merge translations this evening.

ann0see avatar Sep 14 '25 13:09 ann0see

Translations are now merged. Website needs to be updated with screenshots. Maybe we tag a new beta tomorrow?

ann0see avatar Sep 14 '25 16:09 ann0see

  • [ ] 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)
  • [ ] Finish Website translations
    • [ ] Wait for all PRs to be merged (missing translations will revert to English automatically)
    • [ ] Check for broken links

OK, so another thing we need to fix in the release process template is cutting another beta between Finish App translations and Finish Website translations so that the beta can be used for the screenshots.

https://github.com/jamulussoftware/jamulus/issues/3535

pljones avatar Sep 15 '25 17:09 pljones

@pljones Good Job.

anprdev avatar Sep 15 '25 19:09 anprdev

beta3, with the update translations, is building and will be available from https://github.com/jamulussoftware/jamulus/releases/tag/r3_12_0beta3

pljones avatar Sep 16 '25 17:09 pljones

I think there is a small issue with setDirectory.

When I set the server to None on the server itself. So Directory ComboBox value is None. I set the Directory with RPC to Any Genre 1 all is working perfect. But when I reboot the Server PI5 and Start the Jamulus Server the directory is back to None and Directory is not registered even I have set the Directory to Any Genre 1.

It is not a big deal if you know that.

anprdev avatar Sep 18 '25 21:09 anprdev

How are you starting the server? If you're not using the GUI, the persisted settings will not be loaded.

pljones avatar Sep 20 '25 09:09 pljones

I always start the Server with GUI. Always like to see what is happening on the screen. Its not a issue for me. Only like to report this.

anprdev avatar Sep 20 '25 09:09 anprdev

OK, the problem, then, is likely that the RPC setting doesn't get to the UI and then when the system shuts down, the UI setting gets sent to the main program and then on to be stored. So all part of the same issue with the RPC/<->/core/<->/UI interfaces.

(Persistence only happens at shutdown and it's only read at start up.)

pljones avatar Sep 20 '25 09:09 pljones

Again no issue for me when you know it.

anprdev avatar Sep 20 '25 09:09 anprdev