Skip to content
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

CI: Update Linux runners to Ubuntu 24.04 #98898

Merged
merged 1 commit into from
Nov 11, 2024

Conversation

Repiteo
Copy link
Contributor

@Repiteo Repiteo commented Nov 6, 2024

Updates Linux runners from 20.04/22.04 to 24.04. The only exception is linux_builds, going from 20.04 to 22.04, for the sake of artifact portability

@Repiteo Repiteo added this to the 4.4 milestone Nov 6, 2024
@Repiteo Repiteo requested a review from akien-mga November 6, 2024 15:45
@Repiteo Repiteo requested a review from a team as a code owner November 6, 2024 15:45
@Repiteo Repiteo added cherrypick:4.1 cherrypick:4.2 Considered for cherry-picking into a future 4.2.x release cherrypick:4.3 Considered for cherry-picking into a future 4.3.x release labels Nov 6, 2024
@Repiteo
Copy link
Contributor Author

Repiteo commented Nov 6, 2024

Hmm, so the minimum Python version that 22.04 supports is 3.7. I'll add a conditional to use 20.04 for the legacy check, but we might want to update our Python minimum soon

@Repiteo Repiteo force-pushed the ci/ubuntu-version-bump branch from 5d7e989 to 23a4fa4 Compare November 6, 2024 15:58
@akien-mga
Copy link
Member

Yeah Python 3.6 has been EOL for 3 years now, we can likely drop support for it too.

Python 3.8 just went EOL, we could probably use it as our new min version and not cut off too many users on legacy distros or Python setups.

@Repiteo Repiteo force-pushed the ci/ubuntu-version-bump branch from 23a4fa4 to 02d57e9 Compare November 6, 2024 16:19
@Repiteo Repiteo requested a review from a team as a code owner November 6, 2024 16:19
@akien-mga
Copy link
Member

Testing locally, I also need to do this fix, like in my 3.x PR:

diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index ddb0635f6b..1bfd1fed5a 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -75,7 +75,8 @@ void TileMap::_set_tile_map_data_using_compatibility_format(int p_layer, TileMap
 	for (int i = 0; i < c; i += offset) {
 		const uint8_t *ptr = (const uint8_t *)&r[i];
 		uint8_t local[12];
-		for (int j = 0; j < ((p_format >= TileMapDataFormat::TILE_MAP_DATA_FORMAT_2) ? 12 : 8); j++) {
+		const int buffer_size = (p_format >= TileMapDataFormat::TILE_MAP_DATA_FORMAT_2) ? 12 : 8;
+		for (int j = 0; j < buffer_size; j++) {
 			local[j] = ptr[j];
 		}
 

For the PacketPeerUDP / RingBuffer stringop-overflow, I don't reproduce it locally with GCC 14 for some reason.
But I wondered if this would solve it?

diff --git a/core/io/packet_peer_udp.h b/core/io/packet_peer_udp.h
index c69a138c53..724a902960 100644
--- a/core/io/packet_peer_udp.h
+++ b/core/io/packet_peer_udp.h
@@ -49,7 +49,7 @@ protected:
 	uint8_t recv_buffer[PACKET_BUFFER_SIZE];
 	uint8_t packet_buffer[PACKET_BUFFER_SIZE];
 	IPAddress packet_ip;
-	int packet_port = 0;
+	uint32_t packet_port = 0;
 	int queue_count = 0;
 
 	IPAddress peer_addr;

@fire
Copy link
Member

fire commented Nov 6, 2024

Seems to be a requirement for #89660 because of GCC versions?

@akien-mga
Copy link
Member

You might be able to remove this, if Ubuntu 22.04 has a recent enough version of Mesa.

      # Need newer mesa for lavapipe to work properly.
      - name: Linux dependencies for tests
        if: matrix.proj-test
        run: |
          sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
          sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB8B81E14DA65431D7504EA8F63F0F2B90935439
          sudo add-apt-repository "deb https://ppa.launchpadcontent.net/kisak/turtle/ubuntu focal main"
          sudo apt-get install -qq mesa-vulkan-drivers

If not, the focal part needs to be updated to jammy (Ubuntu version codename).

akien-mga added a commit to akien-mga/godot that referenced this pull request Nov 6, 2024
@Repiteo
Copy link
Contributor Author

Repiteo commented Nov 6, 2024

I'll keep this a draft until your implementation is merged, so I'll know what to reference

In the meantime, I'll cook up a PR making 3.8 the minimum Python version

Edit: badabing:

@Repiteo Repiteo marked this pull request as draft November 6, 2024 17:25
@Calinou
Copy link
Member

Calinou commented Nov 6, 2024

Python 3.8 just went EOL, we could probably use it as our new min version and not cut off too many users on legacy distros or Python setups.

Note that raising the requirement above Python 3.8 will break Pyston though, which I still rely upon as it allows for faster rebuilds.

CPython 3.13 onwards is starting to focus on performance, but it's not at the level of Pyston yet. (There is also an experimental JIT, but it doesn't work with SCons.)

Unfortunately, Pyston is unmaintained these days, so it won't see any support newer than Python 3.8. Sphinx has already dropped Python 3.8 support, but SCons still supports it for now.

@Repiteo Repiteo force-pushed the ci/ubuntu-version-bump branch from 02d57e9 to ddb8e8a Compare November 10, 2024 16:48
@Repiteo Repiteo marked this pull request as ready for review November 10, 2024 16:48
@Repiteo Repiteo requested a review from a team as a code owner November 10, 2024 16:48
@Repiteo Repiteo requested review from akien-mga and removed request for a team November 10, 2024 17:05
@Repiteo Repiteo force-pushed the ci/ubuntu-version-bump branch from ddb8e8a to 57326df Compare November 10, 2024 19:18
@Repiteo Repiteo force-pushed the ci/ubuntu-version-bump branch from 57326df to 8d1462c Compare November 10, 2024 20:05
@akien-mga akien-mga merged commit 8197e7a into godotengine:master Nov 11, 2024
20 checks passed
@akien-mga
Copy link
Member

Thanks!

@clayjohn
Copy link
Member

This caused a regression for tilemaps. This is how the Isometric demo looks now:

image

akien-mga added a commit that referenced this pull request Nov 15, 2024
Fix setting TileMap data compatibility format broken by #98898.
@dustdfg
Copy link
Contributor

dustdfg commented Nov 21, 2024

Python 3.8 just went EOL, we could probably use it as our new min version and not cut off too many users on legacy distros or Python setups.

Note that raising the requirement above Python 3.8 will break Pyston though, which I still rely upon as it allows for faster rebuilds.

CPython 3.13 onwards is starting to focus on performance, but it's not at the level of Pyston yet. (There is also an experimental JIT, but it doesn't work with SCons.)

Unfortunately, Pyston is unmaintained these days, so it won't see any support newer than Python 3.8. Sphinx has already dropped Python 3.8 support, but SCons still supports it for now.

Today I've tested speed of Pyston in comparison to CPython and it is not so astonishing now. I've run builds on already built repo so it just needed to execute python:

Pyston 2.3.5: ~17.5s
CPython 3.12.6: ~20.2s

And these are results of my low-end i3 which makes clean build 1.5 hours. I think you even won't notice any difference on your hardware. I even didn't try CPython 3.13 with enabled JIT...

tGautot pushed a commit to tGautot/godot that referenced this pull request Feb 5, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 11, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 13, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 14, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 15, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 15, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 15, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 16, 2025
@akien-mga akien-mga removed the cherrypick:4.2 Considered for cherry-picking into a future 4.2.x release label Mar 19, 2025
WhalesState pushed a commit to WhalesState/blazium that referenced this pull request Mar 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cherrypick:4.3 Considered for cherry-picking into a future 4.3.x release enhancement topic:buildsystem
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants