-
Notifications
You must be signed in to change notification settings - Fork 53
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
Upgrade base system to Ubuntu 24.04 #1076
Open
gouttegd
wants to merge
11
commits into
master
Choose a base branch
from
update-base-system
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This should have been done right after the 1.5 release, so let's do it now.
The NodeJs package manager (NPM) is no longer automatically installed when we install NodeJS, so we ask for it explicitly. We need it to install Obographviz. Ideally it should be possible to install both NPM and Obographviz in the builder image and then to transfer only Obographviz to the final ODKFull image, thereby reducing the clutter in ODKFull, but this will need further investigation.
This is a runtime dependency of Konclude (even the statically compiled one that we use on x86_64). It was probably automatically pulled by another package on Ubuntu 22.04, but it is not on 22.04, so we need to ask for it explicitly.
Pip is now by default refusing to install anything in the system-wide Python library path, which is considered the "private garden" of the underlying operating system (e.g., on Ubuntu, only APT tools should add Python packages to the system-wide path). This may be fine in general, in a user-facing scenario, but not for the ODK which is in effect a "read-only" system overall. The OBO Dashboard is part of the tools/libraries we provide with the ODK and there is no reason for us to package it separately inside a virtual environment (the recommended way of installing non-system Python packages) -- the entire ODK is already a "virtual environment". Ultimately the right thing to do here would be for the OBO Dashboard upstream to make proper releases, which we could then install at the same time as any other Python packages.
The odk.py script has some issues when we run it under Python 3.12, we fix them here.
Installing virtualenv in the builder image has nafarious consequences when we try to later install Python packages. That's because the Ubuntu package for virtualenv automatically installs platformdirs version 2.5.1, which then prevents us from installing the platformdirs 4.x that we need as a dependency for some of our packages. The only reason we had virtualenv in the builder image was that we use it to run the update-constraints workflow (in which we try to install all our Python packages in a virtualenv). So here, we 1) remove virtualenv from the builder image; 2) amend the update-constraints.sh script to make it install virtualenv itself.
PIP emits a warning when we attempt to install executable scripts in a location that is not in the system PATH. In this instance the warning is not warranted. The scripts are installed in a staging location ON PURPOSE -- they are later copied over to the final ODK images, where the scripts will end up in the system PATH. So we shut that warning down.
Get freshly frozen Python constraints for the newer version of Python provided in Ubuntu 24.04.
(For those keeping track, this the same PR as #1067 modulo the wording of some commit messages and freshly updated Python constraints.) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the base system of all our images to the latest LTR version of Ubuntu, 24.04.
libpcre3
, needed for Konclude, ornpm
, needed to install Obographviz).--break-system-packages
, otherwisepip
will by default refuse to install it system-wide (the idea is that only APT tools are allowed to install anything system-wide).virtualenv
in the builder image, as it messes with the installation of our Python packages.odk.py
script has some issues with Python 3.12 that need fixing.closes #1008