Skip to content

Document release procedure #1049

Open
Open
@php-coder

Description

@php-coder

The process of creating a new release should be documented.

Here is the list of the steps to be executed (within master branch):

  • create a new commit
    • bump version in NEWS.txt
    • bump version in pom.xml (remove -SNAPSHOT: ./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion=x.y.z)
    • bump version in ResourceUrl.RESOURCES_VERSION
    • bump version in src/main/frontend/package.json and src/main/frontend/package-lock.json
    • set version in infra/docker/docker-compose.yml
    • set version in infra/kubernetes/deployment.yml
    • git commit -a -m 'chore: release of x.y.z version'
  • create and publish a new git tag (git tag -a x.y.z -m x.y.z && git push --follow-tags)
  • push changes to the prod branch and deploy to production (git checkout prod; git merge master; git push; git checkout -)
  • close the corresponding milestone on GitHub
  • create a new release on GitHub for a just added tag from the following template:
🚀 New Features
- none

:star: Improvements
- none

🐞 Bugs Fixed
- none

💥 Breaking Changes
- none

📖 Documentation Updates
- none

🔨 Internal Changes
- none

:page_facing_up: Other Changes
- none

Empty sections should be removed and every item should have a link to a related issue.
Use git log --oneline x.y.z..x.y.z+1 for getting a list of the changes.

  • publish Docker image to DockerHub (and check on https://hub.docker.com/r/phpcoder/mystamps/tags):
    ./mvnw clean
    ./mvnw package dockerfile:build dockerfile:tag -Ddockerfile.tag=x.y.z
    docker login -u phpcoder
    vim ~/.docker/config.json # empty "auths" object
    ./mvnw dockerfile:push
    docker tag phpcoder/mystamps:x.y.z phpcoder/mystamps:latest
    ./mvnw dockerfile:push -Ddockerfile.tag=latest
    docker rmi phpcoder/mystamps:x.y.${z-1}
    
  • pom.xml: set version to x.y.{$z+1}-SNAPSHOT: ./mvnw versions:set -DgenerateBackupPoms=false -DnextSnapshot=true
  • create an empty migration file for new version (to avoid regression like we had in Don't put migrations for the new version into a directory for a released version #1265)
  • git commit -a with a message chore: update version for development\n[skip ci]
  • git push

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions