ome / ome-model

OME model (specification, code generator, implementation)
Other
13 stars 26 forks source link

Python3 cleanup and add Python 3.8 support #105

Closed rleigh-codelibre closed 4 years ago

rleigh-codelibre commented 4 years ago

This PR is a followup for #65, containing the followup work I mentioned there.

This PR contains previous work from:

In this comment, @sbesson mentioned retaining Python 2.7 support. Unfortunately, it seems to be the case that Python 2.7 and Python 3.8 are mutually exclusive when it comes to Genshi. It looks like in the interim that Genshi 0.7.3 is now pip installable, which might mitigate that. However, I don't have time to dedicate to Python 2, and Genshi has historically broken repeatedly when installed via pip for various reasons, which is why it's under version control in the first place. Python2 is not supported since the 1st of January, by the way. Since it's a build-time dependency only, it should not be at all onerous to drop it for this module.

Testing: Generated source code should be identical to current master

rleigh-codelibre commented 4 years ago

Looks like Travis MAVEN_OPTS handling is broken, and has been for some time. This only showed up when strictly requiring Python 3, because Travis seems to have been silently testing both the Python 2 and Python 3 variants with python2 only.

See here and here for further information. I've not yet found a clean workaround to pass options to maven, but I'll continue looking.

dgault commented 4 years ago

Thanks @rleigh-codelibre for the continued effort, its a great help.

Testing the new generated sources and they remain the same as previous which is as expected. The updates to Genshi look good and everything is building and running as expected so I see no issue with the upgrade.

The cleanup to xsd-fu likewise has no negative impact on anything we are currently using and seems safe to remove.

The Travis workaround at least has Travis back up and running with the last commit. Overall Im happy to get this work merged and any improvements to it can be handled in a follow up PR.