[QGIS-Developer] Interpretation of qgisMaximumVersion in metadata.txt

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[QGIS-Developer] Interpretation of qgisMaximumVersion in metadata.txt

Sebastian M. Ernst-2
Hi all,

(hopefully) simple question: Is the version of QGIS indicated by
`qgisMaximumVersion` in plugins' metadata assumed to be compatible? Or
is it (under certain circumstances perhaps) an excluded upper boundary
as in `[qgisMinimumVersion,qgisMaximumVersion)` in mathematical terms?

For further context information, see below.

Best regards,
Sebastian


---

`qgisMaximumVersion` values reported for plugins compatible to QGIS 3.X:

- QGIS 3.0: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.1: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.2: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.3: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.4: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.5: 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.6: 3.12.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.7: 3.12.0, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.8: 3.12.0, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.9: 3.12.0, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.10: 3.12.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.11: 3.12.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.12: 3.12.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.13: 3.98.0, 3.99.0, 4.0.0, 9.99.0
- QGIS 3.14: 3.98.0, 3.99.0, 4.0.0, 9.99.0

"3.99.0" is what QGIS-Django assumes by default (if no value is provided
by a plugin). Applies to about 94% of all contemporary plugins.

Based on QGIS' current implementation, "3.99.*" is assumed to be a
precursor to "4.0.0" at some point in distant future, i.e. not part of
the "3.X" branch. QGIS itself actually translates "3.99.*" to "4.0.0"
internally.

6 plugins set the value to "4.0.0" directly (1%).

"3.98.0" appears to be a value for indicating that the plugin is only
compatible with QGIS 3.X (and not 4.0 or any of its precursors). It is
used by exactly 31 plugins (4%).

The "WKTBulkLoader" plugin assumes to be compatible almost indefinitely
by setting the value to "9.99.0" :)

The "anomalies" from the above are:

- tiles_xyz==0.8.1 -> QGIS 3.6.99
- geopec==1.0 -> QGIS 3.9.0
- shoguneditor==0.2 -> QGIS 3.4.0
- qgisnetworklogger==0.3.0 -> QGIS 3.12.0

Values like "3.12.0" as found in qgisnetworklogger==0.3.0 for instance
appear to indicate that it is an included upper boundary.

On the other hand side, values like "3.99.0" or "4.0.0" indicate that
the value is interpreted as an excluded upper boundary. It's much more
unlikely that current plugins will actually run with QGIS 4.0 (but not
with 4.2).
_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: Interpretation of qgisMaximumVersion in metadata.txt

Borys Jurgiel-4
Hi!

Actually it was never properly synchronized between the installer and the
repo.

For the installer, both lower and upper boudary are included, so it makes more
sense to set it to 3.98 rather than 3.99. By the way - putting 0 to the third
position makes yet less sense ;) If you put just 3.98, it will be
automatically extended to 3.98.99 [1].

The key thing is even setting the maximum to 3.99 will work, because the
current "pyQgisVersion" of QGIS 3.99 is recognized as 4.0! See [2].

[1] https://github.com/qgis/QGIS/blob/master/python/pyplugin_installer/
version_compare.py#L196

[2] https://github.com/qgis/QGIS/blob/master/python/pyplugin_installer/
version_compare.py#L206

Regards,
Borys



Dnia piÄ…tek, 31 lipca 2020 16:01:03 CEST Sebastian M. Ernst pisze:

> Hi all,
>
> (hopefully) simple question: Is the version of QGIS indicated by
> `qgisMaximumVersion` in plugins' metadata assumed to be compatible? Or
> is it (under certain circumstances perhaps) an excluded upper boundary
> as in `[qgisMinimumVersion,qgisMaximumVersion)` in mathematical terms?
>
> For further context information, see below.
>
> Best regards,
> Sebastian
>
>
> ---
>
> `qgisMaximumVersion` values reported for plugins compatible to QGIS 3.X:
>
> - QGIS 3.0: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.1: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.2: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.3: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.4: 3.4.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.5: 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.6: 3.12.0, 3.6.99, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.7: 3.12.0, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.8: 3.12.0, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.9: 3.12.0, 3.9.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.10: 3.12.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.11: 3.12.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.12: 3.12.0, 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.13: 3.98.0, 3.99.0, 4.0.0, 9.99.0
> - QGIS 3.14: 3.98.0, 3.99.0, 4.0.0, 9.99.0
>
> "3.99.0" is what QGIS-Django assumes by default (if no value is provided
> by a plugin). Applies to about 94% of all contemporary plugins.
>
> Based on QGIS' current implementation, "3.99.*" is assumed to be a
> precursor to "4.0.0" at some point in distant future, i.e. not part of
> the "3.X" branch. QGIS itself actually translates "3.99.*" to "4.0.0"
> internally.
>
> 6 plugins set the value to "4.0.0" directly (1%).
>
> "3.98.0" appears to be a value for indicating that the plugin is only
> compatible with QGIS 3.X (and not 4.0 or any of its precursors). It is
> used by exactly 31 plugins (4%).
>
> The "WKTBulkLoader" plugin assumes to be compatible almost indefinitely
> by setting the value to "9.99.0" :)
>
> The "anomalies" from the above are:
>
> - tiles_xyz==0.8.1 -> QGIS 3.6.99
> - geopec==1.0 -> QGIS 3.9.0
> - shoguneditor==0.2 -> QGIS 3.4.0
> - qgisnetworklogger==0.3.0 -> QGIS 3.12.0
>
> Values like "3.12.0" as found in qgisnetworklogger==0.3.0 for instance
> appear to indicate that it is an included upper boundary.
>
> On the other hand side, values like "3.99.0" or "4.0.0" indicate that
> the value is interpreted as an excluded upper boundary. It's much more
> unlikely that current plugins will actually run with QGIS 4.0 (but not
> with 4.2).
> _______________________________________________
> QGIS-Developer mailing list
> [hidden email]
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer




_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: Interpretation of qgisMaximumVersion in metadata.txt

Sebastian M. Ernst-2
Hi Borys, all,

> Actually it was never properly synchronized between the installer and
> the repo.

which adds another question ... how is the repo (i.e. QGIS-Django?)
handling it?

> For the installer, both lower and upper boudary are included, so it makes
> more sense to set it to 3.98 rather than 3.99.

Ok, thanks.

> By the way - putting 0 to the third
> position makes yet less sense ;) If you put just 3.98, it will be
> automatically extended to 3.98.99 [1].

It's my parser that fills in the zeros. I need to refine this logic.

> The key thing is even setting the maximum to 3.99 will work, because the
> current "pyQgisVersion" of QGIS 3.99 is recognized as 4.0! See [2].

This was raising my initial question in the first place.

Best regards,
Sebastian
_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: Interpretation of qgisMaximumVersion in metadata.txt

Borys Jurgiel-4
Dnia sobota, 1 sierpnia 2020 16:56:18 CEST Sebastian M. Ernst pisze:
> Hi Borys, all,
>
> > Actually it was never properly synchronized between the installer and
> > the repo.
>
> which adds another question ... how is the repo (i.e. QGIS-Django?)
> handling it?

It's the problem I never had time to contribute to the repo (yes, the django
app), so I'm not familiar with it. Alessandro knows best.

> > The key thing is even setting the maximum to 3.99 will work, because the
> > current "pyQgisVersion" of QGIS 3.99 is recognized as 4.0! See [2].
>
> This was raising my initial question in the first place.

It looks messy, indeed, but I believe we can say QGIS 3.99 has API of 4.0.

Regards,
Borys




_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer