diff --git a/core/SCsub b/core/SCsub index 3570f0dc15b..1c01bbbef6d 100644 --- a/core/SCsub +++ b/core/SCsub @@ -186,6 +186,7 @@ def version_info_builder(target, source, env): #define VERSION_MINOR {minor} #define VERSION_PATCH {patch} #define VERSION_STATUS "{status}" +#define VERSION_STATUS_VERSION {status_version} #define VERSION_BUILD "{build}" #define VERSION_MODULE_CONFIG "{module_config}" #define VERSION_WEBSITE "{website}" diff --git a/core/config/engine.cpp b/core/config/engine.cpp index c0d7389715b..0ad659629a7 100644 --- a/core/config/engine.cpp +++ b/core/config/engine.cpp @@ -126,6 +126,8 @@ Dictionary Engine::get_version_info() const { dict["status"] = VERSION_STATUS; dict["build"] = VERSION_BUILD; + dict["status_version"] = dict["status"] != "stable" ? VERSION_STATUS_VERSION : 0; + String hash = String(VERSION_HASH); dict["hash"] = hash.is_empty() ? String("unknown") : hash; @@ -135,7 +137,13 @@ Dictionary Engine::get_version_info() const { if ((int)dict["patch"] != 0) { stringver += "." + String(dict["patch"]); } - stringver += "-" + String(dict["status"]) + " (" + String(dict["build"]) + ")"; + stringver += "-" + String(dict["status"]); + + if ((int)dict["status_version"] != 0) { + stringver += "." + String(dict["status_version"]); + } + + stringver += " (" + String(dict["build"]) + ")"; dict["string"] = stringver; return dict; diff --git a/doc/classes/Engine.xml b/doc/classes/Engine.xml index 68a6f2fddb7..55b644cf752 100644 --- a/doc/classes/Engine.xml +++ b/doc/classes/Engine.xml @@ -91,15 +91,15 @@ [b]Note:[/b] The [code]hex[/code] value is still an [int] internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for quick version comparisons from code: [codeblocks] [gdscript] - if Engine.get_version_info().hex >= 0x040100: - pass # Do things specific to version 4.1 or later. + if Engine.get_godot_compatible_version_info().hex >= 0x040100: + pass # Do things specifically based on Godot version 4.1 compatibility or later. else: pass # Do things specific to versions before 4.1. [/gdscript] [csharp] - if ((int)Engine.GetVersionInfo()["hex"] >= 0x040100) + if ((int)Engine.GetGodotCompatibleVersionInfo()["hex"] >= 0x040100) { - // Do things specific to version 4.1 or later. + // Do things specifically based on Godot version 4.1 compatibility or later. } else { @@ -228,7 +228,8 @@ - [code]minor[/code] - Minor version number as an int; - [code]patch[/code] - Patch version number as an int; - [code]hex[/code] - Full version encoded as a hexadecimal int with one byte (2 hex digits) per number (see example below); - - [code]status[/code] - Status (such as "beta", "rc1", "rc2", "stable", etc.) as a String; + - [code]status[/code] - Status (such as "beta", "rc", "stable", etc.) as a String; + - [code]status_version[/code] - Status version number as an int, [code]0[/code] if status is [code]"stable"[/code]; - [code]build[/code] - Build name (e.g. "custom_build") as a String; - [code]hash[/code] - Full Git commit hash as a String; - [code]timestamp[/code] - Holds the Git commit date UNIX timestamp in seconds as an int, or [code]0[/code] if unavailable; diff --git a/methods.py b/methods.py index 17bf95d119d..472c048aa32 100644 --- a/methods.py +++ b/methods.py @@ -210,6 +210,7 @@ def get_version_info(module_version_string="", silent=False): "minor": int(version.minor), "patch": int(version.patch), "status": str(version.status), + "status_version": int(version.status_version), "build": str(build_name), "module_config": str(version.module_config) + module_version_string, "website": str(version.website), diff --git a/version.py b/version.py index 9b940c05dc2..8e1935aca1e 100644 --- a/version.py +++ b/version.py @@ -3,7 +3,8 @@ major = 4 minor = 4 patch = 0 -status = "dev" +status = "alpha" +status_version = 2 module_config = "" website = "https://redotengine.org" docs = "latest"