nextcloud / office

Meta repo for the office team

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Standardize release process

juliushaertl opened this issue · comments

  • Ask for
    • Office team on the releases org
    • Admin permissions on the office team repos
    • Add nextcloud_release_service as app store co-maintainer
  • Setup github actions for automated releases
    • Deck
      • Add GitHub action to all supported branches
      • Add release key to Nextcloud-releases
      • Publish a first release as a test run
    • Nextcloud Office
      • Add GitHub action to all supported branches
      • Add release key to Nextcloud-releases
      • Publish a first release as a test run
    • Office Online
      • Add GitHub action to all supported branches
      • Add release key to Nextcloud-releases
      • Publish a first release as a test run
    • Text Not needed as released as part of the server release bundles
  • Guided release to go through the release process once together
  • Standardise a way to generate the changelog
    • Github action with workflow trigger to bump version and generate changelog

Prepare first release of a new app

  • Make sure you have the necessary workflow on your https://github.com/nextcloud source repository
  • Make sure your tagged commit also have the workflow
  • Make sure this repository have the proper APP_PRIVATE_KEY secret set
  • Make the nextcloud_release_service user is a co-maintainer of your app on https://apps.nextcloud.com/
  • Make sure you have admin rights to this repository

Pending documentation

  • Prepare your local git checkout to add the release remote
    git remote add release git@github.com:nextcloud-releases/richdocuments.git

Checklist for the pull request

<!-- Example checklist for richdocuments, repo urls and stable branch names might need adjustments -->

## Release pull request
- [ ] Pull latest stable branch `git checkout stableX`
- [ ] Branch off a release branch `git checkout -b release/X.X.X`
- [ ] Bump versions
  - [ ] appinfo/info.xml
  - [ ] package.json
  - [ ] package-lock.json
- [ ] Update changelog (Get list of merged PRs `git log vX.X.Y..HEAD --oneline | grep Merge | grep -v dependabot` where X.X.Y is the previous release version)
- [ ] Commit the version bump and push to origin 
- [ ] Merge release pull request

## Release the app

- [ ] Once merged, checkout the stable branch again `git checkout stableX` and `git pull`
- [ ] Tag a new release `git tag vx.x.x`
- [ ] Push tag
  - [ ] to the main repo: `git push origin vx.x.x`
  - [ ] to the release repo: `git push release vx.x.x`
- [ ] Go to https://github.com/nextcloud-releases/richdocuments/tags
  - [ ] Select the tag that you want to create a release of and click "Create release from tag"
  - [ ] Add the version number to the title and the changelog
  - [ ] Publish the release
  - [ ] Wait for the automation to build the app and to be published to the App Store
    - The status can be checked at https://github.com/nextcloud-releases/richdocuments/actions/workflows/appstore-build-publish.yml
  - [ ] Check that the App Store shows the release https://apps.nextcloud.com/apps/richdocuments

Useful commands for generating a changelog

for pr in $(git log v1.5.7..HEAD --oneline | grep Merge | grep -v dependabot | cut -d " " -f 5 | sed 's/#//g'); do printf " - "; gh pr view $pr | head -n1 | cut -d " " -f 2- | tr -d '\n'; echo " #$pr" ; done