Skip to content

πŸš€ Release todo 25.0.1Β #19535

Description

@Antreesy

πŸ’Ί Preparation

`GH_TOKEN=$(gh auth token) npm run release:validate-release -- stable35`

node ./scripts/validate-release.mjs stable35

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Nextcloud Spreed Release Preparation Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
βœ” All required tools available
Target branches: stable35
Current branch: chore/release/scripting
Fetching remote info...

β†’ Pending Backports
! 3 pending backport(s):
...

β†’ Milestones Status
...

β†’ Open Pull Requests
β€’ stable35: no open PRs

β†’ Dependabot Coverage
βœ” stable35: patch updates configured

β†’ Repository Status
βœ” Working directory is clean

  • Check there are no pending backports:
  • Check all milestones don't have priority issues still open
  • Check there are no important PRs open against the branch
`GH_TOKEN=$(gh auth token) npm run release:prepare-changelog -- stable35`

node ./scripts/prepare-changelog.mjs stable35

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Nextcloud Spreed Changelog Preparation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
βœ” All required tools available
Target branches: stable35
Current branch: chore/release/scripting
Fetching remote info...

β†’ Changelog
β€’ stable35: v25.0.0 β†’ v25.0.1 ← β›… Next Patch (35) (10 open issues)

β†’ Preparing Changelog Commits
branch 'chore/release/changelog-20260924' set up to track 'origin/main'.
Switched to a new branch 'chore/release/changelog-20260924'
[chore/release/changelog-20260924 94ec47cd7c] chore(release): Changelog for v25.0.1
1 file changed, 39 insertions(+)
βœ” Committed docs/changelogs/changelog-25.md

βœ” Branch 'chore/release/changelog-20260924' ready β€” review and adjust the changelog, then:
git push -u origin chore/release/changelog-20260924
gh pr create --title "chore(release): Changelog for v25.0.1" --base main --assignee @me --milestone "β˜ƒοΈ Next Major (36)" --body "$(git diff HEAD~1..HEAD -- docs/changelogs/ | grep '^+[^+]' | sed 's/^+//')" --repo nextcloud/spreed

πŸš€ v25.0.1

Start with the oldest version here, so the appstore and github releases show the newest version as "Last release"

  • Backport the changelog
    • [stable35] chore(release): Changelog for v25.0.1Β #19536
    • Remove changelog entries in CHANGELOG.md of higher versions
    • Bump the version in appinfo/info.xml
    • Bump the version in package.json. The following command will return a new version name, make sure it matches what you expect:
      # Make sure the printed version matches the info.xml version
      npm version --no-git-tag-version $(xmllint --xpath '/info/version/text()' appinfo/info.xml)
  • Merge the backport
  • Make sure you pull the latest stable branch:
    git checkout stableX.Y
    git pull origin stableX.Y
  • Clean the dev instance and update all dependencies with the lock file versions and build the production javascript:
    make production-setup
    # On 24 and older versions run:
    # make dev-setup build-js-production
  • Do a quick smoke test by starting a call with:
    • Chrome
    • Edge
    • Firefox
    • Safari
    • Desktop client (Talk 16+)
    • Android app
    • iOS app
  • Create tag (note that the leading v in vX.Y.Z will be automatically added to the tag)
    make create-tag version=$(xmllint --xpath '/info/version/text()' appinfo/info.xml)
  • Push the git tag to https://github.com/nextcloud-releases/spreed
    git push releases v$(xmllint --xpath '/info/version/text()' appinfo/info.xml)
    Make sure you have access rights to the remote repository, and it is set up on your machine:
    git remote add releases git@github.com:nextcloud-releases/spreed.git
  • Prepare a (pre-)release in https://github.com/nextcloud/spreed/releases/new?tag=vX.Y.Z
    • Make sure that chosen tag is vX.Y.Z, target is stableX.Y, and previous tag is vX.Y.[Z-1]
    • Add the respective CHANGELOG.md section from merged PR
    • Use the Generate release notes button and wrap the output result into
      ## What's Changed
      
      <details>
      	<!-- insert the output here -->
      </details>
      
    • Set as a pre-release / as the latest release
    • Publish release
  • Prepare a (pre-)release in https://github.com/nextcloud-releases/spreed/releases/new?tag=vX.Y.Z
    • Copy the full content from the release description of the previous step
    • Set as a pre-release / as the latest release
    • Publish release
  • Check that the GitHub Action started: https://github.com/nextcloud-releases/spreed/actions
  • Rename milestone πŸ’š Next Patch (X) to vX.Y.Z in https://github.com/nextcloud/spreed/milestones
    gh api repos/nextcloud/spreed/milestones --paginate --jq \
        '.[] | select(.title == "πŸ’š Next Patch (X)") | .number' \
        | xargs -I{} gh api --method PATCH repos/nextcloud/spreed/milestones/{} -f title="vX.Y.Z"
    Unless last release of the stable branch:
    • Create a follow-up milestone for πŸ’š Next Patch (X) (Due date in ~4 weeks, ~1 week for beta/RC)
      # Adjust the due date (UTC) before running
      gh api --method POST repos/nextcloud/spreed/milestones \
          -f title="πŸ’š Next Patch (X)" -f due_on="YYYY-MM-DDT00:00:00Z"
    • Move all open issues from milestone vX.Y.Z to πŸ’š Next Patch (X): https://github.com/nextcloud/spreed/issues?q=is%3Aissue%20state%3Aopen%20milestone%3AvX.Y.Z
      for n in $(gh issue list --repo nextcloud/spreed --state open --limit 500 \
          --milestone "vX.Y.Z" --json number --jq '.[].number'); do
          gh issue edit "$n" --repo nextcloud/spreed --milestone "πŸ’š Next Patch (X)"
      done
    • Move all open PRs from milestone vX.Y.Z to πŸ’š Next Patch (X): https://github.com/nextcloud/spreed/pulls?q=is%3Apr%20state%3Aopen%20milestone%3AvX.Y.Z
      for n in $(gh pr list --repo nextcloud/spreed --state open --limit 500 \
          --search 'milestone:"vX.Y.Z"' --json number --jq '.[].number'); do
          gh pr edit "$n" --repo nextcloud/spreed --milestone "πŸ’š Next Patch (X)"
      done
  • Close the vX.Y.Z milestone
    gh api repos/nextcloud/spreed/milestones --paginate --jq \
        '.[] | select(.title == "vX.Y.Z") | .number' \
        | xargs -I{} gh api --method PATCH repos/nextcloud/spreed/milestones/{} -f state=closed
  • Ensure that the GitHub Action finished successfully: https://github.com/nextcloud-releases/spreed/actions

πŸ›£οΈ Conclude

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions