Module Package versioning: Best-practice?

I’m trying to make up my mind about version numbers for 3rd-party module packages.

Official Tryton modules have their version numbers aligned with the version of trytond. This makes sense since they belong to the same “product”.

For 3d-party modules I’ve seen quite some using the same scheme. Just a few weeks ago I learned that some are not following this schema but give versions to their modules as it suites. them.

I’d like to hear your opinion/ and thought: For 3rd-party modules:

  1. Does is make sense to align the module version with the supported Tryton version?
  2. Does it make sense to require specific (supported) version of trytond and modules?
  3. Does it make sense to list the supported Python versions in the PyPI classifiers?
  4. Would it be useful to have PyPI classifiers for Tryton versions (like Django and Odoo)?

I’m looking forward reading your thoughts.

For me: yes. A module should declare in some way the used API. If you don’t follow the trytond versioning you have to declare in some way a mapping with which trytond API (=version) you are compatible (e.g. gnuhealth modules), which is always an additional maintenance load.

At least that is the easiest way. If you are deploying from source it may be sufficient to read API compatibility via the branches of the VCS, if they are maintained in one.

If your module depends on a specific trytond version (=API), then ist should be declared.

Of course it is nice to know explicitly about supported Python versions. OTOH those classifiers tend more easily to get out of sync. More important is the declaration of the minimal required Python version in your packaging.

Could you point me to an example? I didn’t find such a classifier for django.

When you lookup the Classifiers · PyPI for Django you can find the versions. E.g. Framework :: Django :: 1.11

And where are they used?

They are used (only) as categories when searching packages in PyPI WebUI. pip does not care about them.

Yes, but the main project seems to not care about which makes them questionable IMHO.