Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Displaying versions of projects in Project Manager #25497

Closed
kkmzero opened this issue Jan 30, 2019 · 8 comments
Closed

Displaying versions of projects in Project Manager #25497

kkmzero opened this issue Jan 30, 2019 · 8 comments

Comments

@kkmzero
Copy link

kkmzero commented Jan 30, 2019

Feature Request for Project Manager - Project Manager could display version information about projects. If you have many projects created on different versions of Godot, sometimes you might lose compatibility of some features, so you optimally want to finish the project (or create patches/updates) on version of Godot which is suitable for your project and/or newer if you re-import it and you know it will work. Project could have some version information line displayed next to it, just for keeping better order of your projects before you open them.

godotpp

@syskrank
Copy link
Contributor

syskrank commented Jan 31, 2019

I've made a first-approach attempt to add this little feature.

However, I faced the fact that project.godot file contains the property 'config_version' as a single int number ( 3 for 3.0.*, 4 for 3.1 ). Which is a bit counter-intuitive for user to see in the GUI part.

I don't want to make a PR yet. What are the options here besides some kind of hash table to match config_version against actual engine version?

We can create simple colored compatibility indicators out of common sense:

  • red ones for incompatible projects from newer engine versions;
  • yellowish for projects from older versions;
  • greenish for OK projects.

And/or also add a config version info to the current build hash label at the top-right.

@kkmzero
Copy link
Author

kkmzero commented Jan 31, 2019

I could imagine in worst case scenario new "standard" in project.godot files where developers would basically agree to start from certain version including full version number and/or separate numbers for major/minor/patch values:

config_version = 3
config_version_minor = 0
config_version_patch = 6
(3.0.6)

It wouldn't solve issue with old Godot releases but it could be something for the future releases. I don't know for what purposes is config_version value used and that's why I wouldn't propose changing its current state as simple integer to f.e. string. It's something for consideration, since I'm aware adding two new values isn't really pretty solution.

There is also one option. Vulkan uses something like VK_MAKE_VERSION(MAJOR, MINOR, PATCH) which generates integer type of number. Godot can have something similar (in config file would be stored the result integer). Then we could check if this result integer corresponds with some values for known engine release via Project Manager and if it does, the version number can be displayed in form of string in Project Manager.

https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_MAKE_VERSION.html

@syskrank
Copy link
Contributor

As far as I understand, config_version deals with the project.godot file format, not with the engine version itself.
So it would be a harsh move to change that to a full-fledged engine version string or hash.

Although, Godot has similar mechanism for minor/major/patch numbers: one could locate it within version.h and version_generated.gen.h

@Zylann
Copy link
Contributor

Zylann commented Feb 1, 2019

In Unity that information is available in a separate ProjectVersion.txt, which allows their project manager to show and check versions. Even if the project.godot format does not change, it may matter for users due to features they rely on or bugs in other versions.
If a TXT file is too messy, maybe we can put this in a header section of the project.godot file (so we don't need to parse it entirely), and if it's not present then we infer the version from config_version?

@syskrank
Copy link
Contributor

syskrank commented Feb 3, 2019

I wonder if it's okay to add this functionality/version field right now.
On the other hand, we have much of backward-incompatible features in 3.1 vs 3.0.*, so maybe it's time :)
Having a separate text file seems okay, though.

@aaronfranke
Copy link
Member

aaronfranke commented May 29, 2019

Related: #25899 Displaying exact Godot versions from the Project Manager would indeed be very useful and would go hand-in-hand with the proposed coloring of red/yellow for incompatible/old versions.

@twoco
Copy link

twoco commented Sep 19, 2021

It's a gamble to open a project with unknown Godot version. In best case I wish the latest Godot version will convert the project or tell me: Sorry, this project comes from older unsupported Godot version (x.y.z). Just want to know that. Currently the only thing I get is when I try to open a scene: Unexpected end of file. -.-

For the very first step it would be helpful to just store the Godot version in the project file and inform the dev.

@Calinou
Copy link
Member

Calinou commented Sep 19, 2021

Closing in favor of godotengine/godot-proposals#237, as feature proposals are now tracked on the Godot proposals repository.

@twoco Consider using self-contained mode for Godot 4.0 development builds to use separate editor settings (which also means having a separate project list). Godot already uses different editor_settings.tres files per major version, but self-contained mode allows for greater granularity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants