-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump underlying ubuntu
to 22.04
LTS
#5030
Conversation
@jeffwidman I just merged #5356, which should unblock us from upgrading to LTS. Can you rebase and try again with this PR? |
Thanks @mattt, just saw your comment. Rebased! |
We've been running on `20.04` since #4394, I just didn't realize this actions workflow also pinned the version. So this bumps to our current base image. Unfortunately, this will likely be outdated in the future again, once #5030 lands... and likely to be an ongoing issue. I wish there was an easy way to extract this value from the Dockerfile, but everything I come up with seems quite hacky/brittle.
CI failures are because Ubuntu 22.04 uses OpenSSL 3.0, which requires Ruby >= 3.1... see ruby/setup-ruby#333 (comment). The workaround is to manually compile |
So at this point, due to the problems with Ruby < 3.1 requiring an older OpenSSL than Ubuntu 22.04 ships, we have several options:
Everything I've read so far makes it seem very brittle/painful to manage old OpenSSL versions, so I vote for working towards option 3 which will implicitly result in also picking option 5. Thoughts? |
I'm all for bumping the ruby version, @mattt's work on using ruby-install unblocks us, I think that's the main reason that we haven't done it yet, it should be a doable upgrade from my experience. |
Sounds good to me, I opened #5447 to bump to 3.1. I think my main concern was that something internal within GitHub tooling that we may use now or in the near future may not be ready to support Ruby 3.1... but I suppose we can always try it and if we run into problems we can revert or push those teams to start providing support for 3.1... Anyway, we'll see how that PR goes. |
Most internal things are on the latest or even pre-release versions of ruby and rails, dependabot, a bot that updates your dependencies, being on older versions is a cruel paradox |
6fb060e
to
f6887d3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome job!
@@ -90,14 +90,14 @@ WORKDIR $DEPENDABOT_HOME/dependabot-updater | |||
|
|||
# Install Ruby from official Docker image | |||
# When bumping Ruby minor, need to also add the previous version to `bundler/helpers/v{1,2}/monkey_patches/definition_ruby_version_patch.rb` | |||
COPY --from=ruby:3.1.4-bullseye --chown=dependabot:dependabot /usr/local /usr/local | |||
COPY --from=ruby:3.1.4-bookworm --chown=dependabot:dependabot /usr/local /usr/local |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could base the image off of the ruby image and delete this line, and then get Dependabot bumps for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's an interesting idea for sure, but I'd rather do it after this PR lands. I considered switching to --from=ruby:3.1.4
since today it's the same as ruby:3.1.4-bookworm
but we used to do that and ran into problems when it switched its base debian image under our feet to one that conflicted with our version of Ubuntu used elsewhere... it'd probably be okay if it were the base image, but still let's postpone looking at that to a later PR and here just catch us up to a newer Ubuntu.
Should we update the Swift Dockerfile to install the 22.04 version? |
|
||
# When bumping Bundler, need to also regenerate `updater/Gemfile.lock` via `bundle update --lock --bundler` | ||
# Generally simplest to match the bundler version to the one that comes by default with whatever Ruby version we install. | ||
# This way other projects that import this library don't have to futz around with installing new / unexpected bundler versions. | ||
ARG BUNDLER_V2_VERSION=2.4.17 | ||
|
||
# We had to explicitly bump this as the bundled version `0.2.2` in ubuntu 20.04 has a bug. | ||
# We had to explicitly bump this as the bundled version `0.2.2` in ubuntu 22.04 has a bug. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the new version of Ubuntu handle the yaml parsing now? And can we therefore undo this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not yet, unfortunately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wish we could, but we'll need Ubuntu 23.04
before we get a new enough version:
We have a PR to bump to 23.04
, but probably should land this PR first, and then also have a conversation about do we even want to bump to non-LTS versions:
@@ -25,7 +25,7 @@ USER dependabot | |||
|
|||
# https://www.swift.org/download/ | |||
ARG SWIFT_VERSION=5.8.1 | |||
ARG SWIFT_UBUNTU_VERSION=ubuntu20.04 | |||
ARG SWIFT_UBUNTU_VERSION=ubuntu22.04 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great catch @jakecoffman , this crept in the last few months, and I completely forgot to re-grep for any new 20.04
references.
No, this is just testing a docker tag. In fact better if it test for a tag that isn't our image just to ensure there's no coupling. Same as above, this is just a spec of a user's manifest... so their Ubuntu version shouldn't matter relative to our Ubuntu version. That said, I really appreciate you and Jake for grep'ing for other references and double-checking this. I completely forgot to look for any others that crept in over the past year. |
`22.04` LTS dropped yesterday: https://ubuntu.com/blog/ubuntu-22-04-lts-released
Install Erlang from Ubuntu Universe rather than Erlang Solutions. Unfortunately that means we will probably lag on Erlang versions in the future. While this isn't ideal from an Erlang perspective, this unblocks the `22.04` upgrade, which is a bigger deal for the other ecosystems. I'm hopeful this is only a temporary state of affairs and someone from the community steps up to provide a PR switching to installing from either the Erlang Solutions PPA or the RabbitMQ PPA. See also: * esl/packages#15 * dependabot#7865 * https://erlangforums.com/t/erlang-solutions-apt-package-for-otp-25/1552/1 * https://erlangforums.com/t/the-eef-is-looking-for-volunteers-to-take-over-esls-build-packages/2238/1
And a year and a half later I can finally hit the 🟢 button! 😁 |
22.04
LTS dropped yesterday: https://ubuntu.com/blog/ubuntu-22-04-lts-releasedI'm not sure of the GitHub internal infra, there may be security/infra reasons blocking
this upgrade that are not visible to external contributors, but thought I'd at least open
this PR to see what CI thinks.
For the Erlang issue, I had to install Erlang from Ubuntu Universe rather than Erlang Solutions.
Unfortunately that means we will probably lag on Erlang versions in the future.
While this isn't ideal from an Erlang perspective, this unblocks the
22.04
upgrade, which is a bigger deal for the other ecosystems.I'm hopeful this is only a temporary state of affairs and someone from
the community steps up to provide a PR switching to installing from
either the Erlang Solutions PPA or the RabbitMQ PPA.
Related: