Skip to content
Jacob Burroughs edited this page Jun 24, 2024 · 4 revisions

Environment Setup

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)

New Major Version

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)

New Minor Version

  1. Checkout the master-X.Y branch

  2. 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

  3. Checkout the .github directory from the previous version on the branch, and commit it (Sadly there doesn’t seem to be a way to teach gbp to keep that directory)

  4. 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

  5. Push to github, and watch the github action that is triggered on push

  6. Watch the builds here: https://launchpad.net/~instructure/+archive/ubuntu/ruby-testing/+packages

  7. 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 change

    c. 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

  8. 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)

  9. 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”

  10. Again, watch the builds for success and retry as necessary

Clone this wiki locally