beyond-all-reason / beyond-all-reason/RecoilEngine
Rethink `Script.IsEngineMinVersion` API?
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
The current version is `2025.03.9` but if you do `Script.IsEngineMinVersion(2025, 3, 9)` you don't actually get a check against patchset 9, you get a check for 9 _commits_ after whatever was the last commit reset and I'm not sure whether that counts from last stable (2025.01.6, probably not since that was made from a different branch?), from the first 2025.03 pre-release (i.e. from 2025.03.1) or maybe even from current prerelease (i.e. 9 commits after 2025.03.9 which probably would return false).
The first task would be to clarify how to use it under the new pre-release scheme (in particular how to translate the patchset like .9 into commits that the function would accept).
The second would be to rethink whether this should use commits after all (in addition to the above, the same commit will be under a different number when cherry-picked onto different branches). Keep existing 105 checks in mind though (at worst could always do something like this though
```
if major <= 105 {
third arg is commits
} elseif major >= 2025 {
third arg is patchset
}
```
Contributor guide
Research direction
Start by locating the implementation and existing call sites of Script.IsEngineMinVersion, including the 105 checks mentioned in the issue. Clarify how 2025.03.9 maps to the current commit-based arguments, then document or design a compatible versioning approach that handles prereleases, patchsets, and cherry-picked commits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- api
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100