godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.12k stars 69 forks source link

Add a version tag on AssetLibs, to show the godot versions that the asset have support. #10507

Open edson-dev opened 3 weeks ago

edson-dev commented 3 weeks ago

Describe the project you are working on

on working on a migration of godot 3 to 4

Describe the problem or limitation you are having in your project

i dont have information on the tab of asset libs of the minimal support of the libs.

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

add a tag on the asset description with support versions, set by the creator so we have an insight about version support description

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

when you click on the asset or in the list assets have a support-[3.0,4.2,4.3] tag that can be set at the plugin.cfg by the creators. Its a start to map support for plugins and versions

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

i dont see any rason why dont let creator map supported versions. It can help get info and help.

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

need change the package descriptions and base config parameters.

Calinou commented 3 weeks ago

There is already a per-asset version property you can see on the web frontend: https://godotengine.org/asset-library/asset

It defines the minimum supported Godot version, with newer minor releases being considered as supported (they will be able to see the asset in the editor). This matches Godot's release policy where backwards compatibility is preserved as much as possible within a given major release.

As the Submit Asset page says:

image

GDExtensions (which have more strict compatibility criteria) can already define a more strict range of supported versions in their .gdextension file.

i dont see any rason why dont let creator map supported versions. It can help get info and help.

If we add a version field to plugins that would prevent enabling the plugin on unsupported versions, there's the risk that plugin authors make the version requirement unnecessarily restrictive. A majority of add-ons don't break when upgrading from a minor version to another, so being unable to use those add-ons without having the plugin author change a field in plugin.cfg would be a shame.

timothyqiu commented 1 week ago

It defines the minimum supported Godot version, with newer minor releases being considered as supported (they will be able to see the asset in the editor).

Can an asset with the same name (probably also the same author) and a higher minimum version override an older version?

For example, Asset Foo v1.0 supports Godot 4.1. But some changes in 4.3 break Asset Foo's code. So it has to release a v2.0 that supports Godot 4.3. Ideally, this should make v1.0 only support [4.1, 4.3), and make v2.0 support [4.3, 5.0)

Calinou commented 1 week ago

Can an asset with the same name (probably also the same author) and a higher minimum version override an older version?

No, as the current asset library website can only define a single literal version string, not a semver string (which would allow for this to be defined with a single string).

This could be implemented purely on the asset library side without needing changes in the editor still.