Prepare Release 3.9.0
Target timeline
| Phase | Target date | Original | Actual |
|---|---|---|---|
| Scheduled feature freeze / Start of translation process | 2022-07-08 | 2022-07-01 | 2022-07-03 |
| Targeted translation completion date | 2022-07-22 | 2022-07-08 | 2022-07-08[^*] |
| Approximate release date | 2022-07-29 | 2022-07-21 | 2022-07-29 |
[^*]: Some web site translations are to be completed after release: * jamulussoftware/jamuluswebsite#779 * jamulussoftware/jamuluswebsite#777 * jamulussoftware/jamuluswebsite#774
Reminder: see jamulussoftware/jamuluswebsite#711
Current state: Released
Checklist
- [x] 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 documentationlabel for any outstanding PRs flagged for this release and remove that label if done. - [x] Check if the list of translators in
tools/create-translation-issues.sh. Make sure the details are up-to-date. Check against https://github.com/orgs/jamulussoftware/teams/translators and confirm that is up-to-date. - [x] Update the Changelog
- [x] Tag a beta release
- [x] Start App translations
- [x] Generate
.tsfiles in master vialupdate - [x] Check if the list of translators in
tools/create-translation-issues.shis up-to-date - [x] Create a translation issue for each language with
tools/create-translation-issues.shusingappargument. - [x] !! Notify translators about the new location of the translation files (
.ts): They are now insrc/translation. (https://github.com/jamulussoftware/jamulus/pull/2576)
- [x] Generate
- [x] Check ./Jamulus -h output against the Include-Client/Server-Commands.md pages (wiki/en) 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-releaseto release, set it as "Draft", sanity check for conflicts and any obvious problems. - [x] Declare a full freeze of the
next-releaseandreleasebranch. No changes should be made from now on to ensure translators don't have to work twice. - [x] Check if the issue text in in
tools/create-translation-issues.shis 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.shusingwebargument (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] Finish App translations
- [x] Review translation PRs according to release process checklist
- (NOTE: This check produces output that does not assist with the release proces) Check for conflicting accelerator keys (see
tools/checkkeys.pl)
- (NOTE: This check produces output that does not assist with the release proces) Check for conflicting accelerator keys (see
- [x] Wait for all PRs to be merged (missing translations will revert to English automatically).
- [x] BR: https://github.com/jamulussoftware/jamulus/pull/2728
- [x] CN: https://github.com/jamulussoftware/jamulus/pull/2719
- [x] DE: https://github.com/jamulussoftware/jamulus/pull/2748
- [x] ES: https://github.com/jamulussoftware/jamulus/pull/2706
- [x] FR: https://github.com/jamulussoftware/jamulus/pull/2729
- [x] additional: https://github.com/jamulussoftware/jamulus/pull/2729
- [x] KR: https://github.com/jamulussoftware/jamulus/pull/2685 (outside releases process)
- [x] NL: https://github.com/jamulussoftware/jamulus/pull/2708
- [x] PL: https://github.com/jamulussoftware/jamulus/pull/2735
- merged with outstanding comments
- [x] PT: https://github.com/jamulussoftware/jamulus/pull/2747
- merged with outstanding comments
- [x] SK: https://github.com/jamulussoftware/jamulus/pull/2732
- No Swedish translation
- [x] Generate
.qmfiles vialrelease Jamulus.pro
- [x] Review translation PRs according to release process checklist
- [x] Check the milestone for mergable stuff again
- [x] Update the Changelog
- [x] Tag a release candidate
- [x] Update the version number in
Jamulus.proand add the release date to the Changelog header and commit - [x] Update the Changelog
- [x] Finish Website translations
- [x] Wait for all PRs to be merged (missing translations (DE, IT, PT) will revert to English automatically)
- [x] NL: https://github.com/jamulussoftware/jamuluswebsite/pull/784
- [x] FR: https://github.com/jamulussoftware/jamuluswebsite/pull/780
- [x] ES: https://github.com/jamulussoftware/jamuluswebsite/pull/785
- [x] Check for broken links
- [x] Wait for all PRs to be merged (missing translations (DE, IT, PT) will revert to English automatically)
- [x] Tag this commit as
r3_y_z- [x] Wait for the build to complete
- [x] Contact emlynmac for signing on macOS and upload signed binary from his repo to ours.
- [x] 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?
- [x] Force tag that tag as
latestand push. - [x] Upload the artifacts to SourceForge and set defaults.
- [x] Update download links on the website by editing
_config.ymlinnext-release - [x] Publish Website release by merging
next-releaseintorelease
- [x] Announce the new release with a summary of changes (+ link to the changelog for details) and a link to the download page
- [x] Candidates for extra mentions: Changed Mac compatibility (<= 10.14 needs legacy now)
- [ ] ~~Windows Qt6 preview build (if done)~~
- [x] On Github Discussions in the Announcements section. Lock the announcement thread. Pin the thread. Unpin and lock release candidate thread.
- [x] On Facebook in the group "Jamulus (official group)". Turn off replies.
- [x] Trigger the update notification by updating both Update Check Servers with the new version (@pljones for update02, email corrados for update01)
- [x] Prepare
Jamulus.pro(devsuffix) and ChangeLog (add a header) for the next release - [x] Check that all Issues and PRs tagged for this release are in Done/Closed state.
- [x] Close the release milestone in both jamulus and jamuluswebsite repos
- [x] 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
- [x] Determine if a release retrospective is needed, create on Discussions if required (https://github.com/jamulussoftware/jamulus/discussions/2766)
Opened as requested by @hoffie
Todo:
- [x] Announce the iOS and arm .deb files too.
- [x] Document ARM release in Checklist
We seem to be a bit far from a release at the moment, unless we de-tag a lot of stuff? There are 24 things in the backlog apparently not even being worked on, for example: https://github.com/orgs/jamulussoftware/projects/2?card_filter_query=milestone%3A%22release+3.9.0%22
Of course, if some of those are being worked on, please will those responsible update the project status, since without that we can't really shepherd the release.
Probably it's worth doing a radical de-tag for stuff we don't think are ready or doable.
@jamulussoftware/maindevelopers I'd like to move the release forward. Can we decide to de-tag some of the things in the milestone?
@dtinth @Rob-NY There are still some JSON-RPC related open issues. Can you take care of them?
Linked jamulussoftware/jamuluswebsite#711 and removed 3.9.0 from that issue.
I've added target dates now. Hopefully the state of the code should be pretty stable by the end of the week and we won't hit too many bumps getting the translations in.
OK, I'm declaring the code freeze now for any changes requiring translation.
- [ ] Could someone (@gilgongo? if you're not available for this, please shout) check the "needs documentation" state on the marked tickets, please: milestone:"Release 3.9.0" label:"needs documentation"
If the documentation is complete, please remove the label. Thanks!
- [ ] Same with
Check ./Jamulus -h output against the Include-Client/Server-Commands.md pages (wiki/en) and man page (distributions/Jamulus.1). Update if necessary.-- could someone who knows the documentation repo take that, please.
We need to tell macOS users about the possibility they need to use the legacy build from now on on Mojave or earlier.
- [ ] Check if the list of translators in tools/create-translation-issues.sh is up-to-date
Oops, I missed that. Do we have somewhere to check against?
Oops, I missed that. Do we have somewhere to check against?
Maybe cross-check with the Github org. In some way, that list is the authoritative one I guess. This is mainly a reminder to think about adding anyone who has joined recently (Korean?).
Maybe cross-check with the Github org.
Which opens the question of whether this can be automated by the script itself :).
Adding here, as it was quite a journey around github to find it: https://github.com/orgs/jamulussoftware/teams/translators/members
Reviewers: https://github.com/orgs/jamulussoftware/teams/trreviewers/members
("Wouldn't it be nice if..." the members list could have a comment saying what language(s) they did...)
On the Korean... is that merged now..? If so, yeah, we need to update. Would a re-run of the tool be idempotent enough to spot the change in the list?
Which opens the question of whether this can be automated by the script itself :).
At some point the cost and effort for automation might not be worth it anymore. ;)
On the Korean... is that merged now..?
I'ts being worked on at least. I haven't been following closely, but will try to catch up.
Would a re-run of the tool be idempotent enough to spot the change in the list?
It should be. If unsure, edit the script and replace the modifying gh invocation by echo gh to be sure... :)
@pljones asked to open an issue for all the things we want/need to highlight for the next release. I think we usually drafted a release announcement as Pull Request?
OK I've done the PR for next-release on the website. Freezing all content on release and next-release branches.
https://github.com/jamulussoftware/jamuluswebsite/pull/773
@pljones since your PR was merged, I think we should soon push out another beta?
I was thinking to see if I could get the New Client Level fixed but that looks like something someone who'd changed that part of the client would need to look at, to get it done fast. The code simply looks "wrong" to me...
So yeah, I'll do another beta.
Done.
Except I forgot updating ChangeLog content. I updated the .ts files... wasn't sure whether I should or not for the beta2...
@jamulussoftware/translators First of all thank you for all your translation work in the last few weeks and sorry for the various changes after the translation freeze. Today is the translation deadline, so if you still have an open Pull Request, please add the last changes as soon as possible. We'll merge open pull requests in a few hours.
DRAFT
We're excited to announce the availability of Jamulus 3.9.0!
Some highlights include:
- A new JSON-RPC interface to control client and server (see docs/JSON-RPC.md for details). This remains experimental at this stage. Thanks to @dtinth for the heavy lifting and to @Rob-NY for additional input.
- A new, optional audio alert when a new client joins a session or when a chat message is received, intended for improved accessibility. Thanks to @chigkim.
- ARM compatibility for macOS (Apple Silicon) and Linux (Raspberry Pi). Thanks to @hoffie.
- A new Korean translation. Jamulus continues to spread music around the globe. Thanks to @bagjunggyu.
A huge amount of effort has also been spent improving Jamulus - the UI, the client and the server. Please find all the details in the Changelog. Thanks to everyone who did their part to make this release happen:
- Code contributors: @ann0see @bagjunggyu @BLumia @chigkim @corrados @dcorson-ticino-com @dtinth @emlynmac @gilgongo @henkdegroot @hoffie @jujudusud @ngocdh @pgScorpio @pljones @Rob-NY @softins
- Application translators: @ann0see @bagjunggyu @BLumia @dzpex @henkdegroot @ignotus666 @jose1711 @jujudusud @melcon @pljones @SeeLook
- Website contributors/translators: @henkdegroot @ignotus666 @jujudusud
- ... and lots of people who brought new ideas or suggestions, guided their local colleagues or helped in various other ways!
This Discussion thread will be locked in order to keep things organized.
Feedback, questions or suspected bug reports are appreciated nevertheless -- please start a new Discussion on Github for them.
And please get involved - your ideas and suggestions, along with helping get others enjoying playing music together online using Jamulus, are what keeps things moving forwards.
Downloads
Windows
Windows users: Please note that in the first days after release, SmartScreen will probably display warnings about this release being unknown upon download and/or execution of the installer. Let us know when you do not see this warning any more and we will update this announcement accordingly.
macOS
TODO: Point the links to the signed versions
- ↓ Intel for Catalina (10.15) and higher
- ↓ Intel legacy build (unsigned) for macOS Mojave (10.14) down to Yosemite (10.10).
- ↓ Apple Silicon for Big Sur (11.0) or later (needs ARM chip)
Linux (Debian/Ubuntu)
Ubuntu Linux client users: note that installation requires you have the "universe" repository enabled. Instructions for this are on the website.
- ↓ amd64 full build
- ↓ amd64 headless server-only version
- ↓ armhf full build
- ↓ armhf headless server-only version
Experimental
- ↓ Android
- ↓ iOS (Unsigned: Needs to be signed before installation on device. Please see the iOS install page)
Compile it yourself
Jamulus is free software and you're encouraged to participate in its development - not only by using the software and suggesting ways to keep it simple whilst improving it - but also to contribute those changes yourself. You can either download the source code or fork the Github repository.
- Source code ZIP Guide to Compiling Jamulus (including updated dependency information).
@pljones I wouldn't include the stuff about universe in Linux because it affects so few people, or maybe just say:
Ubuntu Linux client users: note that this release requires you have the "universe" repository enabled. Instructions for this are on the website.
@pljones I'd also include the ARM compatibility for macOS and Linux as highlight. Probably more end users would like to know that. Otherwise, I think it's good (also the new layout)
https://jamulus.io/contribute/Release-Process#steps-for-a-specific-release
for a proper release, change it as follows, removing the NOTE and including the release date:
### 3.7.0 (2021-03-17) ###
The above should highlight the trailing ### being required for the script.
TODO: Android cache needs clearing, I think, to get the build to work. I've not yet done that. Once it's built, it needs copying to SourceForge, too, and tagging as Android default. I've untagged 3.8.2 there.
https://github.com/jamulussoftware/jamulus/commit/6c0f9641e6068d3409b7484d7f9bf065f01c9af8 Should be named similar to the previous releases (r3_9_0) or something short. @pljones
You need to pull
* cf9eb7f6 2022-07-29 (HEAD -> master, origin/master, origin/HEAD) Set version to 3.9.0dev [Peter L Jones]
* c3d3cf61 2022-07-29 (tag: r3_9_0, tag: latest) Commit 3.9.0 ChangeLog (take 2) [Peter L Jones]
* 6c0f9641 2022-07-29 Update ChangeLog and Jamulus.pro for 3.9.0 [Peter L Jones]
That’s how the last release has looked like (and what I‘d like to have seen. Maybe we can agree on a release commit message like: RELEASE: 3.9.0 - Update …

config.yml is actually _config.yml (with a leading underscore)...
That’s how the last release has looked like (and what I‘d like to have seen. Maybe we can agree on a release commit message like: RELEASE: 3.9.0 - Update …
Not really important. So long as the message clearly states the change, that's all that's needed.