Skip to content

Latest commit

 

History

History
72 lines (55 loc) · 3.59 KB

RELEASE.md

File metadata and controls

72 lines (55 loc) · 3.59 KB

Release process

Automated

  1. Go to Gitlab's Pipelines in the repository.
  2. Click on the grey job with an arrow in it (development branch).
  3. Click on 'Create Release' manually job of the pipeline, not on the play button!
  4. Enter the following key-value variable:
    • Key: RELEASE_TAG_NAME
    • Value: The git tag you want, for example: 1.2.3
  5. Press 'Run job'

All release steps are automatically executed including syncing the master branch, git tags, Maven, Docker, etc. Once the job completes, make manually a GitHub Release from the tag your created on GitHub.

Manually

Release branch and tags

  1. Make a new release branch (named release/X.Y.Z)
  2. Bump version number in pom.xml
  3. Update the changelog with the release name, use ChangeFrog to avoid mistakes.
  4. Run mvn clean install -DskipTests=True to generate a fat jar.
  5. Create a merge request from the release/X.Y.Z branch to the development branch and merge it if all tests pass.
  6. Repeat this for development to master.
  7. Create a git tag: git tag $TAG on master.
  8. Push tag: git push --tags

Docker image

  1. Run docker build -t rmlio/rmlmapper-java:$TAG . to generate a Docker image for your $TAG.
  2. Repeat this for the latest tag: docker build -t rmlio/rmlmapper-java:latest
  3. Push Docker images to Docker Hub: docker push rmlio/rmlmapper-java:$TAG and docker push rmlio/rmlmapper-java:latest.

Deploy on Central Repository

The following steps deploy a new version to the Central Repository, based on this tutorial.

  1. Check if ~/.m2/settings.xml exists.
  2. If so, add the content of settings.example.xml to it, else copy settings.example.xml to ~/.m2/settings.xml.
  3. Fill in your JIRA user name and password in settings.xml.
  4. Fill in your GPG passphrase. Find more information about setting up your key here.
  5. Make sure JAVA_HOME is properly set for your setup. Example: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  6. Deploy the latest release via mvn clean deploy -P release -DskipTests=true.

Create a release on Github

  1. Update the master and development branches on Github.
  2. Go to the Github repo and make a new release.
  3. Select the tag you created earlier.
  4. Add the content of CHANGELOG.md in the release notes
  5. Append the fat jar you generated earlier as release binaries

Create a Merge Request to Alpine Linux's aports

  1. Make sure you have pmbootstrap installed and ran pmbootstrap init, see https://wiki.postmarketos.org/wiki/Installing_pmbootstrap#Installing_automatically
  2. Fork and clone aports: https://gitlab.alpinelinux.org/alpine/aports
  3. Copy APKBUILD file of the rmlmapper in testing/rmlmapper to ~/.local/var/pmbootstrap/cache_git/pmaports/temp/rmlmapper/. You might need to create the rmlmapper directory.
  4. Update the version number in the APKBUILD file.
  5. Run pmbootstrap checksum rmlmapper. This will update the SHA512 checksums.
  6. Check if everything builds: pmbootstrap build rmlmapper
  7. If it passes, copy the APKBUILD file back to aports/testing/rmlmapper
  8. Create a new commit in the aports git repo with title: testing/rmlmapper: update to $TAG
  9. Push to your fork and create a Merge Request in Alpine Linux's Gitlab.
  10. If the CI properly passes, maintainers will merge it in the next few hours or days.

Re-run the R2RML implementation report test cases

  1. Re-run them for this $TAG
  2. Make a merge request to the rmlio website