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

[python] set abi to 3.0.0 #17188

Merged
merged 1 commit into from
Mar 1, 2020
Merged

[python] set abi to 3.0.0 #17188

merged 1 commit into from
Mar 1, 2020

Conversation

ronie
Copy link
Member

@ronie ronie commented Jan 14, 2020

since the switch to python 3 we are no longer backward compatible to the kodi python 2.1.0 api.

  • this change will make sure all installed py2 addons will get disabled when a user upgrades to kodi v19.
  • this change will prevent a user from installing (repo and/or zip) py2 addons in kodi.

TODO:
we have been accepting py2/py3 compatible addons in the leia and lower repos, but we do not have a way to handle that. all those addons will be disabled by this change as well!
two years ago, several solutions were suggested and consensus was reached on this: https://forum.kodi.tv/showthread.php?tid=323369&pid=2688320#pid2688320 (internal link)

so far no-one has stepped-up to actually implement it... and this is becoming a blocking issue when it comes to the release of v19.

i would appreciate any/all comments, thoughts & ideas on how we can get us out of this situation.

@CastagnaIT
Copy link
Collaborator

the link is limited to kodi team? it say not have permissions
netflix addon is py2/py3 compatible I'd like to understand how get it accepted by both versions 18/19
might be an idea to add a new property on a tag in addon.xml? example:
<addon id ..... python-backward-compatibility="true"

@fuzzard
Copy link
Contributor

fuzzard commented Jan 14, 2020

The proposal was the following

So when we switch to python3 we bump xbmc.python range to 3.0.0-3.0.0

Old addons defined as this:
<import addon="xbmc.python" version="2.14.0"/>

are interpreted as minimum 2.14.0, target 2.14.0 and will therefore be incompatible.

Compatible with both:
<import addon="xbmc.python" version="2.1.0" target="3.0.0"/>

Compatible with py3 only:
<import addon="xbmc.python" version="3.0.0" target="3.0.0"/>

We should probably rename 'version' to 'min' as well to avoid confusion. Next time we do api change we do the same. E.g. 3.1.0-3.0.0 (for non-breaking), 3.1.0-3.1.0 (for breaking

@CastagnaIT
Copy link
Collaborator

thank you i will check the next evolutions

@ronie
Copy link
Member Author

ronie commented Jan 31, 2020

Proposal - Plan B

ask addon devs who have submitted a py3 compatible addon to bump xbmc.python to 3.0.0 and re-submit it to the matrix repo.

this would not require any core changes on our end.

@CastagnaIT
Copy link
Collaborator

Proposal - Plan B

it seems to me that in this way it is not possible to make a retrocompatible addon, so to be compatible with Leia-Matrix at same time.

I think that add the new "target" tag only for Matrix build is the best solution,
in this way it is not necessary to make changes on Leia, it is managed only on Matrix

I also propose that the "target" tag is not mandatory
so, when it is not present it means that "version" is equal to the missing "target" value
in this way in the future it can be used as always.

in my opinion if you want also rename the tag "version" to "min",
it would be appropriate, in this version of Matrix, to allow the use of both tags ("version" and "min")
in this way the add-ons retro-compatible would not break,
and in the future Kodi version (Matrix successor) you can permanently delete the "version" tag without causing problems with addons, also because the "version" tag will no longer be necessary because Leia will be discontinued

@ronie ronie added this to the Matrix 19.0-alpha 1 milestone Mar 1, 2020
@ronie ronie merged commit 3c2bc0b into xbmc:master Mar 1, 2020
@ronie ronie deleted the py-abi-bump branch July 29, 2020 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants