-
Notifications
You must be signed in to change notification settings - Fork 0
Home
To manage the ruby debian package build, you must be working on an Ubuntu system or in an Ubuntu VM (https://multipass.run/ is a nice option for relatively lightweight VMs)
-
Checkout https://github.com/instructure/deb-ruby into the VM
-
Install
git-buildpackage
from apt
Warning
TODO the next time ruby releases a major version (Basically the same as below, but with debian/newruby instead of gbp import-orig and more troubleshooting fun)
-
Checkout the
master-X.Y
branch -
Run
gbp import-orig --pristine-tar --uscan --no-sign-tags --debian-branch=master-X.Y
, which will put the latest version of ruby on the tip of the branch -
Checkout the
.github
directory from the previous version on the branch, and commit it (Sadly there doesn’t seem to be a way to teachgbp
to keep that directory) -
Run
gbp dch --debian-branch=master-X.Y --git-author -D focal --dch-opt='--vendor=ppa'
to generate a changelog entry, and edit the version number to be of the form-Nppa1
instead of `-N -
Push to github, and watch the github action that is triggered on push
-
Watch the builds here: https://launchpad.net/~instructure/+archive/ubuntu/ruby-testing/+packages
-
As needed, address any build issues
a. In some cases you may see a handful of test failures that seem timing related. In that case just retry the build and hope it gets assigned to a faster build runner; I have seen it take a few tries sometimes.
b. You may see issues with
debian/librubyX.Y.symbols
; just apply the diff from the error to that file and the push up a new changec. Before pushing, always run
gbp dch --debian-branch=master-X.Y --git-author -D focal --dch-opt='--vendor=ppa'
to generate a new changelog entry -
Once the build is passing and published, create a docker container, add the PPA, and install the new version of ruby to make sure all is sane (more important for new major revisions, but doesn’t hurt for minor ones)
-
Go to this page https://launchpad.net/~instructure/+archive/ubuntu/ruby-testing/+copy-packages, select the new package, select “ruby” as the “Destination PPA”, leave “rebuild the copied sources” selected, and select “Copy Packages”
-
Again, watch the builds for success and retry as necessary