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

Closed
57 tasks done
ann0see opened this issue Jul 1, 2023 · 97 comments
Closed
57 tasks done

Prepare release 3.10.0 #3094

ann0see opened this issue Jul 1, 2023 · 97 comments

Comments

@ann0see
Copy link
Member

ann0see commented Jul 1, 2023

Target timeline

Scheduled feature freeze / Start of translation process: 2023-07-30
Targeted translation completion date: 2023-08-20
Approximate release date: 2023-09-03
Current state: Released

Checklist

  • Assign this issue to the release shepherd who is in charge of managing this checklist. (skipped)
  • 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.
  • Start App translations (moved in 3.10.0 - template to be updated)
    • Generate .ts files in main via lupdate and merge to main
    • Create issues on Github, assigned to translators, for the new release: (skipped due to overhead - should we simplify this?)
      • Check if the list of translators in tools/create-translation-issues.sh is up-to-date. (skipped?)
      • Make sure issue text is up-to-date.
      • Create a translation issue for each language with tools/create-translation-issues.sh using app argument.
    • Create an announcement on Weblate telling translators about the new release
  • Start Website translations
    • Check ./Jamulus -h output against the Include-Client/Server-Commands.md pages and man page (distributions/Jamulus.1). Update if necessary.
    • 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.
    • Create an announcement on Weblate telling translators about the new release
    • Create issues on Github, assigned to translators, for the new release: (skipped due to overhead - should we simplify this?)
      • Check if the list of translators in tools/create-translation-issues.sh is up-to-date.
      • Make sure issue text is up-to-date.
      • Add any URLs that will need localization into the "New/Changed screenshots" section.
      • 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.
  • 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 and/or Weblate 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)
    • Generate .qm files via lrelease Jamulus.pro
  • Finish Website translations (including new screenshots)
    • Wait for all PRs to be merged (missing translations will revert to English automatically)
    • 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. (Not needed in this 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. (Not needed in this release)
  • 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.10.0 milestone Jul 1, 2023
@ann0see ann0see added this to Tracking Jul 1, 2023
@github-project-automation github-project-automation bot moved this to Triage in Tracking Jul 1, 2023
@ann0see ann0see moved this from Triage to In Progress in Tracking Jul 10, 2023
@ann0see ann0see pinned this issue Jul 10, 2023
@ann0see
Copy link
Member Author

ann0see commented Jul 24, 2023

I think if we get the GPG key sorted out, only documentation is missing.

@ann0see
Copy link
Member Author

ann0see commented Jul 24, 2023

Release announcement should document that < Windows 10 devices will no longer work and macOS legacy is now no longer officially supported.

@pljones
Copy link
Collaborator

pljones commented Jul 29, 2023

Find Merge commits since last release tag (r3_9_1) where no milestone has been set (so they're not set for 3.10.0, although they're in it) - for jamulussoftware/jamulus:
echo '{ "merge_commits": ['; git log --graph --oneline r3_9_1.. | grep '^\*' | grep 'Merge' | sed -e 's/^.* #\([0-9]*\).*$/\1/' | while read pr; do gh pr view --json number,author,assignees,state,milestone $pr | jq -cM 'select(.milestone.title != "Release 3.10.0") | { "number": .number, "author": .author.login, "assignees": .assignees|map(.login), "state": .state, "milestone": .milestone.title}'; done; echo ']'; echo '}'

{ "merge_commits": [
    {"number":3057,"author":"ann0see","assignees":[],"state":"MERGED","milestone":null},
    {"number":3053,"author":"app/dependabot","assignees":[],"state":"MERGED","milestone":null},
    {"number":3051,"author":"app/github-actions","assignees":[],"state":"MERGED","milestone":null},
    {"number":2833,"author":"ann0see","assignees":[],"state":"MERGED","milestone":null},
    {"number":3025,"author":"app/github-actions","assignees":[],"state":"MERGED","milestone":null},
    {"number":3015,"author":"app/github-actions","assignees":[],"state":"MERGED","milestone":null},
    {"number":2964,"author":"app/dependabot","assignees":[],"state":"CLOSED","milestone":null}
]}

I'll get those updated.

@pljones
Copy link
Collaborator

pljones commented Jul 29, 2023

These appear to be the commits to jamulussoftware/jamulus main without a PR:

* / / 4237dcb2 Add JSON- RPC server connection tips (#3101)
* | | | 0fc62759 Update qm files
* | | | e25567a5 Update .ts files
* | | da4fee94 Display server title correctly in dark mode (#3008)
* / / / 07722bfa Update .qm files
* | dd01e008 Maintenance: Remove references to master branch
* 70757086 Set version to 3.9.1dev

4237dcb and da4fee9 had PRs but presumably not merge commits.

07722bf, 0fc6275 and e25567a appear to relate to weblate - not sure why these were merged to main directly?

dd01e00 this looks like the only one without a PR that possibly "should" have had one. I've mentioned it in #2840, which looks like the right issue for it.

7075708 documented in the 3.9.1 preparation guide.

@ann0see
Copy link
Member Author

ann0see commented Jul 29, 2023

Qm and ts file updates are not PR worthy, I'd say. We'll push these directly to main per release process.

The squashes are due to PRs which had too many commits.

@pljones
Copy link
Collaborator

pljones commented Jul 29, 2023

I was going to do a similar review of jamulussoftware/jamuluswebsite but ... it looks like it works differently in general, without merge commits. That means finding the PRs is difficult.

I noticed there are two commits on release called

RELEASE: Update Website for post 3.9.1 release

3c06e15d 2022-10-18 (#853) and 4712042b 2022-11-01 (#866) - but there's no actual release tag.

HEAD of release is at 818929de 2023-06-21.

On next-release, there's a whole load of commits from 10058386 2022-11-02 through to 99637288 2023-06-20 before:

  • 5615c9f8 2023-06-21 Merge release into next-release [github-actions[bot]]

and, of course, some more after.

@ann0see
Copy link
Member Author

ann0see commented Jul 29, 2023

The website doesn't have a tag since the release branch is basically the current state. In the beginning we thought that for each release we'd have a squash.

@ann0see
Copy link
Member Author

ann0see commented Jul 29, 2023

I believe we can declare a freeze for the code after #3106 is merged. The website still needs some investigation (man page check, broken links, macOS change)

@ann0see
Copy link
Member Author

ann0see commented Jul 29, 2023

Updated checklist with Weblate amendments.

https://github.com/jamulussoftware/jamuluswebsite/blob/next-release/wiki/en/Running-a-Server.md#server-mode-related-options is probably the new link to server commands.

@ann0see
Copy link
Member Author

ann0see commented Jul 29, 2023

Findings:
jamulus -h needs an update from directoryserver --> directoryaddress (and the man page)
I think the website is up to date.

The code seems to be correct. Not sure why Jamulus -h outputs the wrong help text. Will compile again.

@ann0see
Copy link
Member Author

ann0see commented Jul 29, 2023

Updated the .ts and .qm files now: 8aa28e9

@pljones
Copy link
Collaborator

pljones commented Jul 30, 2023

The code seems to be correct. Not sure why Jamulus -h outputs the wrong help text. Will compile again.

I get

  -e, --directoryaddress  address of the Directory with which to register
                          (or 'localhost' to run as a Directory)

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

Yes. After a new compile it's ok. Probably I used an outdated version

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

I'd declare the code now as frozen. The website has some smaller PRs.

We can Tag a beta soon. @pljones feel free to do so

@pljones
Copy link
Collaborator

pljones commented Jul 30, 2023

Are we still raising translation issues?

  1. Notify all the translators that translation is required
    Use tools/create-translation-issues.sh to create and assign issues (see usage notes in script). Also post on GH and Discord to notify.

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

Yes. (But only for the app for now as the website is still in progress - macOS is outstanding).

@pljones
Copy link
Collaborator

pljones commented Jul 30, 2023

And does this look okay from the Autobuild?

Run ./.github/autobuild/get_build_vars.py
JAMULUS_PRO_VERSION='3.10.0beta1'
building a version of type "release": 3.10.0beta1
BUILD_VERSION='3.10.0beta1'
PUBLISH_TO_RELEASE='false'

@pljones
Copy link
Collaborator

pljones commented Jul 30, 2023

OK, the translations script has a problem:

$ ./tools/create-translation-issues.sh 3.10.0 2023-08-20 app
Creating app translation issues
Creating Issue to translate de_DE for 3.10.0
Updating Issue to translate de_DE for 3.10.0
Creating Issue to translate es_ES for 3.10.0
Updating Issue to translate es_ES for 3.10.0
Creating Issue to translate fr_FR for 3.10.0
Updating Issue to translate fr_FR for 3.10.0
Creating Issue to translate it_IT for 3.10.0
Updating Issue to translate it_IT for 3.10.0
Creating Issue to translate ko_KR for 3.10.0
GraphQL: Could not resolve to a User with the login of 'bagjunggyu'. (u000)

If the assigned user isn't visible on Github, the script bails out. It would be better if it assigned it to whoever's running the script...

I've applied:

  • 5beaac4 2023-07-30 create-translation-issues: remove "bagjunggyu" and use gh login [Peter L Jones]

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

@pljones I think you need to tag the commit as r3_9_1beta1 (due to our bad naming, I think it's not r3_10_0beta1, however, tagging it as RC is probably best as we're further in the release then last time. So for RCs r3_10_0rc1 would be ok)

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

Also something broke the release checklist... Probably the script overwrote it ;-) (see description of this issue.)

@pljones
Copy link
Collaborator

pljones commented Jul 30, 2023

Also something broke the release checklist... Probably the script overwrote it ;-) (see description of this issue.)

Ugh.... I was wondering where the Korean had gone. How on earth did it manage that!

Better check that commit I made ... :(

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

No problem - the edit history is still there. I've created #3133

@pljones
Copy link
Collaborator

pljones commented Jul 30, 2023

@pljones I think you need to tag the commit as r3_9_1beta1 (due to our bad naming, I think it's not r3_10_0beta1, however, tagging it as RC is probably best as we're further in the release then last time. So for RCs r3_10_0rc1 would be ok)

The Release Process should explain the naming convention clearly... I thought I'd followed it but was a bit suspicious...

@ann0see
Copy link
Member Author

ann0see commented Jul 30, 2023

See edited by pljones:
grafik

@softins
Copy link
Member

softins commented Aug 24, 2023

Check for conflicting accelerator keys (see tools/checkkeys.pl)

I ran tools/checkkeys.pl from the commandline in the root directory and got


Possible duplicate hotkeys:

@softins does that mean that everything is ok?

It was only ever an aid to manual checking, not a fully automated check. I haven't tried it recently, but will have a go on the current main.

The checkkeys.pl script needs to be run in the src/translation directory, where the *.ts files are. Otherwise, it just exits without doing anything. So:

tony@pi:~/jamulus $ cd src/translation
tony@pi:~/jamulus/src/translation $ ../../tools/checkkeys.pl
Language: de_DE
Language: es_ES
Language: fr_FR
......

I have just run it in the current main branch, and the output is at https://gist.github.com/softins/65a46e8aa1582a028ebc9bc97fce667f

Where multiple items are listed for a key, it is necessary manually to check and understand whether those items are conflicting in the same context, or are independent, for example by being in different drop-down menus. I never worked out how to enhance the script to be able to do so intelligently itself.

@ann0see
Copy link
Member Author

ann0see commented Aug 24, 2023

Ok. Thank you very much for the information. I think this should be documented somewhere.

@softins
Copy link
Member

softins commented Aug 25, 2023

I am just going through the manual checking on 3.10.0rc2. Almost all ok, but a small number of conflicts. I will raise a PR for the corrections today or tomorrow.

@softins
Copy link
Member

softins commented Aug 26, 2023

I am just going through the manual checking on 3.10.0rc2. Almost all ok, but a small number of conflicts. I will raise a PR for the corrections today or tomorrow.

See #3156

@pljones
Copy link
Collaborator

pljones commented Aug 28, 2023

Hm. Don't the app translations need completing and builds created so that the new screenshots for the website translations can be done? At the moment, the app translation follows the website - it should really come first.

@ann0see
Copy link
Member Author

ann0see commented Aug 28, 2023

Yes. That would make more sense

@jujudusud
Copy link
Member

jujudusud commented Aug 28, 2023

Hm. Don't the app translations need completing and builds created so that the new screenshots for the website translations can be done? At the moment, the app translation follows the website - it should really come first.

We need to split the translation project on Weblate as it is on github. Then it will be possible. In addition, the issues need to go into the right project on github, the script also needs to be split.

@pljones
Copy link
Collaborator

pljones commented Aug 28, 2023

The script has app and web arguments and should create the issues in the right project already. (Not checked - no reason it shouldn't, though.) The script could (does?) support separate app and web translator lists, too. My main concern is that it can't notify Weblate translators directly yet.

@henkdegroot
Copy link
Contributor

Hm. Don't the app translations need completing and builds created so that the new screenshots for the website translations can be done? At the moment, the app translation follows the website - it should really come first.

The checklist has Finish App Translation (which includes generating .qm files) before Finish Website Translation (or did you already update that?)

@comradekingu
Copy link
Contributor

Localized screenshots would be great, but source strings ones would help in the same manner.
If not fully automated, maybe put off the localized ones till all source strings are in good shape.
It is possible to manually arrange the listing of components on Weblate, by attributing priority.
Not sure that is the issue raised.
There is an API to reach translators via announcements.

@pljones
Copy link
Collaborator

pljones commented Aug 28, 2023

(or did you already update that?)

Yeah, updated this - not the template.

@ann0see
Copy link
Member Author

ann0see commented Aug 29, 2023

@comradekingu @pljones thanks for the information. Could you please put this information into https://github.com/orgs/jamulussoftware/discussions/3140 I hope that we can make the Weblate process a bit more smooth.

@ann0see
Copy link
Member Author

ann0see commented Aug 31, 2023

#3164 needs a change log entry. Also the Weblate PRs need to be documented.

@ann0see
Copy link
Member Author

ann0see commented Sep 3, 2023

@pljones @gilgongo could you please have a look at the release announcement? From first sight, I believe we are almost ready to tag the release.

@ann0see
Copy link
Member Author

ann0see commented Sep 3, 2023

I believe we need a release retrospective here - especially for the weblate stuff raised by @pljones ...

@ann0see
Copy link
Member Author

ann0see commented Sep 3, 2023

Ok. Tagged the release: https://github.com/jamulussoftware/jamulus/releases/tag/r3_10_0 Waiting on the build.

@ann0see
Copy link
Member Author

ann0see commented Sep 3, 2023

Smoke tests:

  • Linux Debian x86_64 build works (also installed via repo)
  • macOS Client (Intel non legacy) works
  • Windows 10 11 - ASIO4ALL doesn't open but JACK Router shows output. Needs an external test Tested working by DonC

@pljones
Copy link
Collaborator

pljones commented Sep 4, 2023

Windows 11 tested for ASIO (via ReaRoute) and JACK (also using ReaRoute... I like Reaper).

@ann0see
Copy link
Member Author

ann0see commented Sep 4, 2023

@corrados I believe we can update the Directories to the new Release?

We're only missing a signed macOS build. @emlynmac is AFK for the moment, so this could take some time.

@corrados
Copy link
Contributor

corrados commented Sep 4, 2023

It's done:
grafik
Thank you for creating the new version :-)

@ann0see
Copy link
Member Author

ann0see commented Sep 5, 2023

Thank you very much @corrados

@pljones
Copy link
Collaborator

pljones commented Sep 5, 2023

Both there now:
image
image

@pljones
Copy link
Collaborator

pljones commented Sep 5, 2023

OK... if we're going to push our Debian/Ubuntu repo, we should change the front page "Download" links so the Debian/Ubuntu one points to the guide on setting up the install repo.
image
So Debian/Ubuntu should be Debian/Ubuntu. (And change Download to Install, too.)

One line version, by the way:

{ curl -s https://raw.githubusercontent.com/jamulussoftware/jamulus/main/linux/setup_repo.sh \
  && echo 'apt install jamulus'; } | sudo bash -e

(or apt install jamulus-headless). Note that I got

E: Could not get lock /var/lib/apt/lists/lock. It is held by process 145119 (apt-get)
E: Unable to lock directory /var/lib/apt/lists/

because apt-daily.service was running (in fact, mine had crashed a couple of days ago, so it was worth me finding out!).

@pljones
Copy link
Collaborator

pljones commented Sep 5, 2023

Facebook announcement posted.

@ann0see
Copy link
Member Author

ann0see commented Sep 10, 2023

@pljones
Copy link
Collaborator

pljones commented Sep 18, 2023

[ ] Update this template in https://jamulus.io/contribute/Release-Process with any improvements if needed.

Moving to release retro, closing here.

@pljones pljones unpinned this issue Sep 18, 2023
@pljones
Copy link
Collaborator

pljones commented Sep 18, 2023

Unpinned and closed.

@pljones pljones closed this as completed Sep 18, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in Tracking Sep 18, 2023
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

9 participants