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 work may be required if we actually need to raise such limitations.
Dependency 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
.
Dependencies
Component | Dependency | Version | Why |
---|---|---|---|
Systems | |||
Engine | Debian | 11 | Used to build the Linux releases in docker. |
Engine | Windows | 🚧️ TODO: ?
|
Because Windows users usually stick with the preinstalled Windows. |
Engine | macOS | 10.15 | 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.15 | Because of the released engine. |
Compilers | |||
Engine | GCC | 10 | The Linux compiler in Debian 11. |
Engine | MinGW | 10 | The MinGW compiler in Debian 11 (the same docker image is used to build Linux and Windows binaries). |
Engine | AppleClang | 9 | The XCode compiler used to build the macOS release in the Darling docker provides AppleClang 9. |
Engine | Clang | 9 | Because of AppleClang 9. |
Engine deps | GCC | 10 | The Linux compiler in Debian 11 (the Linux engine deps are built with the engine in docker). |
Game | Clang | 3.6 | Because of PNaCl 4.2.1. |
Build systems | |||
Any | CMake | 3.28.6 | The highest known version of CMake to be running in the Darling docker. |
Libraries | |||
Engine | WebP | 1.5.0 | The latest known version of WebP 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 | 🚧️ TODO: ?
|
Because of GCC 10 or AppleClang 9. 🚧️ TODO: ? |
Engine | C++ | 🚧️ TODO: ?
|
Because of GCC 10 or AppleClang 9. 🚧️ TODO: ? |
Game | C | 🚧️ TODO: ?
|
Because of Clang 3.6 (PNaCl 4.2.1). |
Game | C++ | 🚧️ TODO: ?
|
Because of PNaCl Clang 3.6 (PNaCl 4.2.1). |
Game | Lua | 🚧️ TODO: ?
|
Because of the Lua version we embed. |
Any | Python | 🚧️ TODO: ?
|
Because of Debian 11 (the same docker image is used to build Linux and NaCl binaries). |
Any | Bash | 3.2.57 | Because of the obsolete macOS bash (Apple will never update it). |