πΊ 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
`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"
π£οΈ Conclude
πΊ Preparation
`GH_TOKEN=$(gh auth token) npm run release:validate-release -- 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
`GH_TOKEN=$(gh auth token) npm run release:prepare-changelog -- 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
CHANGELOG.mdwith the changelog of all milestones that are subject to the releaseπ v25.0.1
Start with the oldest version here, so the appstore and github releases show the newest version as "Last release"
CHANGELOG.mdof higher versionsappinfo/info.xmlpackage.json. The following command will return a new version name, make sure it matches what you expect:vinvX.Y.Zwill be automatically added to the tag)make create-tag version=$(xmllint --xpath '/info/version/text()' appinfo/info.xml)git push releases v$(xmllint --xpath '/info/version/text()' appinfo/info.xml)CHANGELOG.mdsection from merged PRπ Next Patch (X)tovX.Y.Zin https://github.com/nextcloud/spreed/milestonesgh 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"π Next Patch (X)(Due date in ~4 weeks, ~1 week for beta/RC)vX.Y.Ztoπ Next Patch (X): https://github.com/nextcloud/spreed/issues?q=is%3Aissue%20state%3Aopen%20milestone%3AvX.Y.ZvX.Y.Ztoπ Next Patch (X): https://github.com/nextcloud/spreed/pulls?q=is%3Apr%20state%3Aopen%20milestone%3AvX.Y.ZvX.Y.Zmilestonegh 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π£οΈ Conclude