Version limits
Here are documented versions of dependencies (systems, tools, libraries, languages…) we can't require a newer version without actually deciding to raise our requirement, with reasons why we currently have such limitations.
It means pull requests should not require something higher than that unless the purpose of the pull request is to raise our requirements (because time have passed and we can raise them, or something like that).
It also helps to know where efforts are required if we actually need to raise such limitations.
Version relations
It is important to make sure the released engine doesn't require something higher than the updater, but it's possible to keep the released engine requirement lower than the updater, because users with old systems may still use the unizip. The same can be said for build dependencies that can be lower than the release dependencies because users may with old systems still build the game themselves.
To sum it up: updater dependency version ≥ engine release dependency version ≥ engine build dependency version
.
Version upper limits
Component | Dependency | Version | Why |
---|---|---|---|
Systems | |||
Engine | Debian | 11 (backports) | Used to build the Linux releases in docker. We need backports for libdecor for Wayland.
|
Engine | Windows | 🚧️ TODO: ?
|
Because Windows users usually stick with the preinstalled Windows. |
Engine | macOS | 10.14 | Current minimal requirement for OpenAL, we better keep it as low as possible. |
Updater | Debian | 11 | Because of the released engine. |
Updater | Windows | 🚧️ TODO: ?
|
Because Windows users usually stick with the preinstalled Windows. |
Updater | macOS | 10.14 | Because of the released engine. |
Compilers | |||
Engine | GCC | 10 | The Linux compiler in Debian 11. |
Engine | MinGW | 14 | The MinGW compiler in Debian 13. |
Engine | AppleClang | 9 | The AppleClang installed with XCode command line tools in the Darling docker. |
Engine | Clang | 9 | Because of AppleClang 9. |
Engine deps | GCC | 10 | The Linux compiler in Debian 11. |
Engine deps | MinGW | 14 | The MinGW compiler in Debian 13. |
Engine deps | AppleClang | any | The requirement is MACOSX_DEPLOYMENT_TARGET=10.14 .
|
Game | Clang | 3.6 | Because of PNaCl 4.2.1. |
Build systems | |||
Any | CMake | 3.28.6 | The highest version of CMake known to be running in the Darling docker. |
Libraries | |||
Engine | WebP | 1.5.0 | The highest version of WebP known to build with GCC 10 (not requiring AVX2 compiler support). |
Engine | Linux glibc | 2.27 | Because of Debian 11. |
Engine | Linux glibc++ | 3.4.26 | Because of Debian 11. |
Languages | |||
Engine | C | 11 | Because of AppleClang 9. |
Engine | C++ | 14 | Because of AppleClang 9. |
Game | C | 99 | Because of Clang 3.6 (PNaCl 4.2.1). |
Game | C++ | 14 | Because of Clang 3.6 (PNaCl 4.2.1). |
Game | Lua | 5.4 | Because of the Lua version we embed. |
Any | Python | 3.9.2 | Because of Debian 11. |
Any | Bash | 3.2.57 | Because of the obsolete macOS bash (Apple will never update it). |