Developer documentation¶
Patches¶
Images¶
Solving conflicts¶
Renovate is a tool which keeps dependencies automatically updated in Atmosphere. When it proposes an update, it’s possible that one of the patches pushed upstream has merged or it does no longer apply cleanly. You may see a message like this:
ERROR: process "/bin/sh -c git -C /src/ovn-bgp-agent apply --verbose /patches/ovn-bgp-agent/*" did not complete successfully: exit code: 1
In this case, you will need to re-base the patch on top of the latest upstream
commit. You can start by cloning the repository and checking out the branch
which you can find in the Dockerfile
of the image. This example uses the
ovn-bgp-agent
image, but the same applies to all other images.
pushd $(mktemp -d)
git clone https://opendev.org/openstack/ovn-bgp-agent.git .
git switch master
Now, you can apply the patches to the repository. You can find the command used
to apply patches in the Dockerfile
of the image. In this case, it’s:
git am -3 ~/src/github.com/vexxhost/atmosphere/images/ovn-bgp-agent/patches/ovn-bgp-agent/*.patch
At this point, you’ll likely see a conflict, you can proceed to solve it. Once you have solved it, you can run git add <file> to mark the file as resolved. Once there are no longer any conflicts to solve, you can run:
git am --continue
Once you’re complete, you can delete all the old patches and create a new patch series. You can do this by running:
rm ~/src/github.com/vexxhost/atmosphere/images/ovn-bgp-agent/patches/ovn-bgp-agent/*.patch
git format-patch -o ~/src/github.com/vexxhost/atmosphere/images/ovn-bgp-agent/patches/ovn-bgp-agent origin/master
Also, you’ll need to update the Dockerfile
to point to the new base
commit which will usually be an ARG
ending with _GIT_REF
. You can find
the commit to use by running:
git rev-parse origin/master
You can then copy the commit hash and replace the ARG
in the Dockerfile
and push the changes to your branch and create a pull request.
Backports¶
To backport a change, you can simply add the appropriate label to the
pull request, the pattern is backport <branch>
. For example, if you want to
backport a change to the stable/2023.1
branch, you would add the label
backport stable/2023.1
. GitHub Actions will generate a pull request
automatically once the pull request merges.
If you need to run a backport after a pull request has merged, you can do so
by adding the labels and then adding a comment with the text /backport
.