Skip to content

Commit

Permalink
ci: githubactions update to ubuntu 23.10
Browse files Browse the repository at this point in the history
  • Loading branch information
Nic30 committed Jan 13, 2024
1 parent 13fce3c commit 15d8224
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/build_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ permissions:
jobs:
# Create a Debug build and test it.
build_and_test:
runs-on: ubuntu-20.04
runs-on: ubuntu-23.10
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"

# Don't need to install Python / Create venv, as you are running in a container.
# You don't even need to install g++/cmake as it comes with the docker image.
Expand Down Expand Up @@ -63,8 +63,8 @@ jobs:

strategy:
matrix:
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12" ]
runs-on: ubuntu-20.04
python-version: [ "3.9", "3.10", "3.11", "3.12" ]
runs-on: ubuntu-23.10
steps:
- uses: actions/checkout@v3
with:
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
# Developer can still build on their machine with the source bundle
# (i.e. the original `pip install` flow if the platform is not included by above steps)
build_sdist:
runs-on: ubuntu-20.04
runs-on: ubuntu-23.10
if: ${{ success() }}

needs:
Expand All @@ -117,7 +117,7 @@ jobs:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: "3.9"
python-version: "3.11"
- name: Install Dependencies
run: |
sudo apt update -y
Expand Down

4 comments on commit 15d8224

@khwong-c
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Ubuntu version is intended to use 20.04
Or you might fail the line auditwheel repair --plat manylinux_2_31_x86_64 dist/*.whl

We have targeted 20.04 so end-developers can use the library with an older version of glibc (2.31). Not everyone is running on Ubuntu 23.10.

@Nic30
Copy link
Owner Author

@Nic30 Nic30 commented on 15d8224 Jan 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for notifying, I reverted this commit. Do you know some way how we can automatically build for several latest versions of glibc and python?
It would be best if we do not have to always update version lists.

@khwong-c
Copy link
Contributor

@khwong-c khwong-c commented on 15d8224 Jan 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, we won't update the "dependencies", which means the library we depend on, automatically.

Think of the case: we are designing a system that will automatically update a fundamental library.
The update on the fundamental library may introduce breaking changes, which means the latest version is not compatible with previous versions.

End-users of our system will need to update the fundamental library every time we change the version, automatically.
i.e. User needs to update their Linux version whenever we change the Linux version, automatically.
And that's the reason I mentioned "Not everyone is running on Ubuntu 23.10."


In practice, we will pin some fundamental library to a certain version, unless they have a critical bug / we can't solve our problem without upgrading it.
In this particular case, I pinned that to glibc 2.31, which means the Linux version around Ubuntu 20.04 is good. (which was released on 2020, 5 years of coverage)

When to move to a higher version of dependency is always an engineering decision, with trade-offs.
IMO, it is better to do it manually in this case. Especially we are distributing Pre-Compiled Library.

@Nic30
Copy link
Owner Author

@Nic30 Nic30 commented on 15d8224 Jan 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@khwong-c , you I right in all points.
I was thinking that we can do something like "for all versions newer than X" and keep releasing manually only on tag.

Do you know about any tool which we can use to query python and and glibc versions so we at least know that we are missing some versions?
I would like to get the list from this table https://www.python.org/downloads/ and then somehow compare it with the matrix definition in CI config. CI config is yaml so it is easy.
For mentioned link there has to be also some restapi to get it but I can not find it.
For glibc i did not find anything as well.

Please sign in to comment.