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

bind recipes to well defined versions #1115

Closed
lufebe16 opened this issue Sep 15, 2017 · 5 comments
Closed

bind recipes to well defined versions #1115

lufebe16 opened this issue Sep 15, 2017 · 5 comments

Comments

@lufebe16
Copy link

Several recipes use version = 'master'. This prevents from reproducible builds, as master is not a well defined package.

lb@lb7520 ~/.local/lib64/python3.4/site-packages/pythonforandroid/recipes/pyjnius $ grep -irn "version = [']master[']" . ./pygame_bootstrap_components/__init__.py:7: version = 'master' ./pyjnius/__init__.py:9: version = 'master' ./jedi/__init__.py:6: # version = 'master' ./vispy/__init__.py:7: version = 'master' ./cymunk/__init__.py:5: version = 'master' ./ffpyplayer/__init__.py:10: version = 'master' ./kivent_core/__init__.py:6: version = 'master' ./pyzmq/__init__.py:13: version = 'master' ./libmysqlclient/__init__.py:10: version = 'master'
It would be better to use the latest release versions instead.

@zwyuan
Copy link

zwyuan commented Sep 23, 2017

Second this issue.

@inclement
Copy link
Member

In most (if not all) of these cases, there's some reason not to use the latest stable release. However, it's a fair point, for most of them we should probably use specific git commits or create new releases as appropriate.

@KeyWeeUsr
Copy link
Contributor

Creating releases for some of them might make no sense at all IMO because for example Kivent modules can have separate fixes and if there was a bug in one of the, I doubt there would be a separate release for the whole Kivent (I might be wrong though).

Then there are packages which have never even had a release (smaller, from Kivy org mostly) so we would need to create some release process for them (hopefully even with tests and CI where applicable). The change to specific commits would make it faster for p4a builds to become more reproducible this way though.

@frmdstryr
Copy link

frmdstryr commented Oct 24, 2017

Is there any reason p4a can't use something like entry_points built into setuptools to allow version specific recipes to be installed independently of p4a?

Using this, each recipe could be in it's own repo and you could install a specific version with pip.

pip install p4a-<recipe>==<version>

Adding this should just be an update to https://github.com/kivy/python-for-android/blob/master/pythonforandroid/recipe.py#L620 , to check for packages installed with a given entry point (for example a fancy p4a_recipe) entry point.

I can submit a PR if this is an acceptable solution.

P.S. An entry_point for custom bootstraps (ex p4a_bootstrap) could be used in the same way.

@inclement
Copy link
Member

Closing as not a priority for these specific recipes, but something that has been addressed in several cases where possible by sticking to a specific commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants