Skip to content

Add engine version number to project.godot file #4355

@Listwon

Description

@Listwon

Describe the project you are working on

Any project I'm opening with Godot.

Describe the problem or limitation you are having in your project

I'm unable to tell which minor version of Godot was used to create the project. Most often than not I'm encountering smaller or larger incompatibilities between the Godot version which was originally used and the version I'm opening the project with now. It's not a problem if I can ask the developer which version he's using (for example in cases I'm helping someone), but that's not always the case.

Editor version is so important that it's already stored in every exported pck package so I'm not sure why it's not stored in project.godot file yet.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add info about the current editor version in autogenerated section of project.godot file.

Where and why does it help;

  • MRPs - project contains editor version, so you know exactly in which version the problem occured
  • open source sample projects or even full games - if you encounter some bugs opening the project with the latest release, you can check if they are present in the original minor version too (developers usually add the info about the major version, like Godot 3, in the README.md, but it's not always sufficient). I remember encountering strange physics bugs in one project, which was originally created in Godot 3.2.3 and I tried to open it in 3.3.x
  • your own projects - the same as above, you store the info about the editor version on your repository, so in case of bumping the editor version, you know exactly when you did this, from which version and you are able to look through release notes to see what could break your project (I do this very often with Godot and Unity projects; Unity already stores the editor version in separate file inside ProjectSettings folder; Unreal Engine stores editor version in ProjectName.uproject file).
  • migration tools like this PR from qarmin Godot 3.x -> Godot 4.0 project converter godot#51950

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

project_settings.cpp

obraz

Output (not the actual output from the code above, because it would be without hash at the end):

obraz

The actual format is up for discussion. We can store editor version data as separate fields and not the whole string, like this:

editor_version_major = 3
editor_version_minor = 4
editor_version_patch = 4
editor_version_hash = "419e713a2"
editor_version_status = "stable"
editor_version_module_config = "mono"

If this enhancement will not be used often, can it be worked around with a few lines of script?

This enhancement will be used very often.

Is there a reason why this should be core and not an add-on in the asset library?

This enhancement will be used very often and possibly in the future will be used to show project version on the project list and maybe even showing a warning about the possible incompatibilities.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Implemented

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions