Files
SCM-Manager/docs/en/release-process.md
René Pfeuffer 8d9b6a5f5d Simplify commands
2020-06-04 20:10:19 +02:00

2.7 KiB

How to release SCM-Manager v2 core

To release a new version of SCM-Manager v2 you have to do the following steps (replace placeholders <version> accordingly, eg. with 2.1.0):

Check out default branch

Make sure you have no changes you want to keep!

git fetch && git checkout -f origin/develop && git clean -fd && git checkout -B develop

Modify Changelog

Change "Unreleased" header in CHANGELOG.md to <version> - <current date>

Create release branch

git checkout -b release/<version>

Commit version changes

git add CHANGELOG.md
git commit -m "Adjust changelog for release <version>"

Push release branch

git push origin release/<version>

Wait for Jenkins build

Jenkins will

  • update pom.xml and package.json
  • merge with master branch
  • build and deploy everything
  • set the new development version for the develop branch
  • delete the release branch

Make a party

How to release SCM-Manager v2 plugins

To release a new version of a Plugin for SCM-Manager v2 you have to do the following steps (replace placeholder <version> accordingly, eg. with 2.1.0):

Check out default branch

Make sure you have no changes you want to keep!

git fetch && git checkout -f origin/develop && git clean -fd && git checkout -B develop

Update SCM parent if necessary

If you need to update the parent of the plugin to a new release of SCM-Manager, change it now:

  • pom.xml: parent.version
  • package.json: dependencies.ui-plugins
rm -rf node_modules yarn.lock && mvn clean install \
&& git add yarn.lock pom.xml package.json \
&& git commit -m "Update to new version of SCM-Manager" \
&& git push origin develop

Plugin dependencies

Check if all plugin dependencies are proper versions and not SNAPSHOT!

Wait for Jenkins to be green.

Modify Changelog

Change "Unreleased" header in CHANGELOG.md to <version> - <current date>

Create, commit and push release branch

export VERSION=<version> \
&& git checkout -b release/$VERSION \
&& echo git commit -am "Prepare release of $VERSION" \
&& echo git push origin release/$VERSION

Wait for Jenkins build

Jenkins will

  • update versions in pom.xml and package.json
  • merge with master branch
  • build and deploy everything
  • set the new development version for the develop branch
  • delete the release branch

Attention: Creating new plugins

If you are creating a new plugin which doesn't exist in the SCM-Manager Plugin-Center yet, your plugin will not be shown after the release. First you have to create a index.md in the Plugin-Center Repository.

Example: https://github.com/scm-manager/plugin-center/blob/master/src/plugins/scm-teamscale-plugin/index.md