Version limits

From Unvanquished
Jump to: navigation, search

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).