Rationale

  1. The Minetest engine often introduces incompatibilities (e.g. API changes) in minor releases. This has happened both unintentionally and intentionally.
  2. Minetest core developers assert that avoiding incompatibilities is not possible while maintaining the current pace of development.
  3. As a result, games, mods, and media files that work in one version of Minetest can break in in future versions of Minetest – unless authors constantly check all functionality with new Minetest versions and update their creations accordingly.
  4. Minetest core developers have deprecated some features before introducing incompatibilities. The intention is to give game and mod developers time to update their code. Despite this, popular games that are actively developed (like MineClone2 and MineClone5) have had new bugs with new versions of Minetest.
  5. Minetest core developers have changed undocumented features, even if those features have been unchanged for years and were documented somewhere outside of the official Minetest repository. This too, has lead to games (like Mineclonia) and mods (like mcl_maps) having bugs in newer versions of Minetest.
  6. Some game and mod authors think it is unreasonable to have to constantly update their code or pester Minetest core developers about incompatibilities, as other platforms do not put this burden on content creators.

Proposal

  1. The Minetest long-term support version is based on Minetest 5.4.1.
  2. This version gets security/reliability, performance and rendering improvements, in that order – i.e. an insecure or unreliable performance improvement will be rejected, as would be a rendering improvement that negatively affects performance.
  3. Existing Lua API features will not be changed from Minetest 5.4.1, except for security reasons. Previously undocumented API details should be documented.
  4. When applying bugfixes or refactoring code, developers must ensure that previuosly-working features remain working in cases where the bug being being fixed is not triggered.
  5. Bugfixes ported from later versions of Minetest may be modified or replaced with a different solution, in cases where this has the same or a better outcome (e.g. introducing new integer overflow checks, doing bounds checking in Lua instead of C++).
  6. Hardware and operating system support must be no less than Minetest 5.4.1.
  7. This version of Minetest will not introduce new dependencies, but it may require new versions of dependencies. It will, for example, continue to depend on Irrlicht. Bugs are ideally to be fixed upstream.
  8. Media file support will be no less than Minetest 5.4.1 in the default configuration, except for security reasons. Options may be introduced to toggle media format support to reduce attack surface.
  9. Lua code in devtest or builtin may be modified or added to, to help with development.
  10. Lua and C++ test code may be added, even if a test exposes an unfixed bug.
  11. Build system changes are allowed if they lead to better platform support, smaller binaries, more reliable builds or faster builds that are at least as reliable as previous builds.
  12. If a game or mod developer, player or server admin complain that something used to work in Minetest 5.4.1 and does not work in the LTS version, they are to be taken seriously by default.

Frequently Questioned Answers

  1. But users/developers will not get new features! — that's kinda, like, the whole point of it. Some users dislike change in the form of stuff breaking. Some developers wish their games to be done and do not touch them again. Games as big as the MCL games can not easily test for API breakage whenever a new Minetest release comes out.
  2. But this will not fix the API breakage! — it will not and it is not intended to. The intent of an LTS version is to have a stable target for users and game developers that will never break, but is more secure and reliable than just running the old version.
  3. This will make users even more unlikely to upgrade. — this is intended for users who otherwise would not want to upgrade, e.g. because the games and mods they like to play are not compatible with Minetest 5.5+. Those users already do not upgrade. Also it is for GNU/Linux distributions like Debian that would never upgrade from 5.4.1 to 5.5.0, but would upgrade from 5.4.1 to 5.4.3.
  4. There is a lack of manpower. — among the Minetest core developers, yes. But servers already run slightly patched versions of Minetest and single developers have been known to maintain alternative clients like Dragonfire or Waspsaliva quite well (noone has managed to maintain waspsaliva well lol – cora).