Skip to content

Maintainer Documentation

konradkonrad edited this page Nov 20, 2019 · 8 revisions

About this repository

  • This repository contains circleCI build automation and a docker-compose.yml environment to run the raiden-service-bundle stack.
  • The images for build/* reside at https://hub.docker.com/r/raidennetwork/raiden-services-bundle
  • The docker-compose.yml recipe exclusively uses the image: keyword instead of doing a build: from local files.
  • Building the docker images happens on CircleCI

Versioning Scheme

Releases of this repository ("RELEASE_GIT_TAG") follow the form YYYY.MM.N, where

  • YYYY is the year
  • MM is the two-digit month
  • N is a zero-indexed version digit

The versioning for docker build tags the images as:

  • raidennetwork/raiden-services-bundle:{$TAG}, where
  • ${TAG} is of the form ${RELEASE_GIT_TAG}_${SERVICE_NAME} for proper tagged releases
  • or nightly_${SERVICE_NAME} for builds from develop.

Releases must be properly tagged, so that tagged images can be built on CI.

Version maintenance

Version maintenance happens in two places:

  • The file BUILD_VERSIONS controls the software versions for the docker images that are built by CircleCI. Upgrading e.g. the SYNAPSE_VERSION should happen through a change to this file and a consecutive PR/release.
  • The image versions for running the compose stack are defined inside the x-versions section of docker-compose.yml. When creating a new release, the image tags inside there should be adjusted to match the expected image tags, e.g. for a 2020.01.0 release:
# versions: change these in order to pin versions for a certain releases
x-versions:
  services: &IMAGE_RAIDEN_SERVICES_VERSION
    image: raidennetwork/raiden-services:stable
  db: &IMAGE_DB_VERSION
-    image: raidennetwork/raiden-services-bundle:nightly-db
+    image: raidennetwork/raiden-services-bundle:2020.01.0-db
  synapse: &IMAGE_SYNAPSE_VERSION
-    image: raidennetwork/raiden-services-bundle:nightly-synapse
+    image: raidennetwork/raiden-services-bundle:2020.01.0-synapse
  well-known-server: &IMAGE_WELL_KNOWN_VERSION
-    image: raidennetwork/raiden-services-bundle:nightly-well_known_server
+    image: raidennetwork/raiden-services-bundle:2020.01.0-well_known_server
  traefik: &IMAGE_TRAEFIK_VERSION
    image: traefik:1.7
  purger: &IMAGE_PURGER_VERSION
    image: python:3
# /versions

Creating releases

  1. Prior to releasing, create a branch for the release PR.
  2. In this branch, adjust all image tags to the expected version.
  3. Run bump2version <part> bumpversion --no-tag <part>.
  4. git push <yourremote> && git push --tags <yourremote>.
  5. Create a PR for review.
  6. After review, when merging, make sure to use a merge commit back into master (otherwise the release tag will not appear in the upstream repository). At the time of writing, this process does not seem to work. Instead you should use the github dialog releases -> Draft a Release and point to the bumpversion commit.
Clone this wiki locally