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

Enhancement request: recipe regression and cache #2823

Open
RobertFlatt opened this issue May 30, 2023 · 0 comments
Open

Enhancement request: recipe regression and cache #2823

RobertFlatt opened this issue May 30, 2023 · 0 comments

Comments

@RobertFlatt
Copy link
Contributor

Description

Add regression testing for recipes (I'm guessing this does not currently happen!).

And there is an almost (!) free lunch, faster builds for most users using the cached build result:

  1. Save the regression results of each recipe in a recipe cache on a server. The cache is indexed by 'p4a release version', 'android.api' , 'recipe name and version', and 'architecture'. Android.api might be the two versions supported by the Store, recipe versions would be default. The cumulative effect of pre-built recipes means the build is computationally inexpensive (one pass is a few hours on my 3 year old NUC).

  2. If 'cache is enabled' (see next item) and cache file exists, p4a downloads the built version from the cache instead of building from the recipe.

  3. 'cache is enabled' is defined by Buildozer, default true for each requirement with a recipe. This option is false if any of the p4a.xxx are not default, or any of android.min_api android.ndk android.ndk_api or android.ndk are not default. 'Cache is enabled' is implemented on a per recipe basis, and it does not enable local recipes.

There is no gain for p4a developers who are almost certainly using the p4a develop version.

The general user will see a gain in build times (except if they version pin to not default), and perhaps only hostpython need be built locally?.

A future enhancement might be local (no internet) builds. These would be enabled by copying a subset of the cache to ~/.buildozer , from which p4a could alternatively copy. Locally built hostpython would also be in this cache, as well as any pure Python wheels.

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

No branches or pull requests

2 participants