Open podraco opened 3 years ago
Could you be a bit more specific about how you want this to work? Maybe give an example?
Let's see... If you're working in a team in charge of the main app and a second team works with a specific lib that your app needs to use to work on the android app, in this scenario, here's a bug on your app, but after hours of looking through the code you identify that the bug is not part of your team code, but from the dependency from the second team, if you want to update the lib, you would need to clean the whole cached libs, the idea is that you onlye have to update the second team lib.
I second this.
As it stands triggering a submodule rebuild re-runs many triggers of already built packages, and re-runs many global steps (such as .pyc generation, moving files around, etc) that potentially could be all cached per-module, and only the final archive should be re-generated.
As an example on where this 'just works', take a look at bitbake
. bitbake also has to support cross-compiling python, and building python packages/dependencies, not any different from what p4a does, but its core emphasis is on dependency generation,caching and build-time optimization.
bitbake
is maybe too mature/complex for p4a purposes, but its ideas can be used as an 'inspiration' for p4a. Things such as advanced dependency generation (if you rebuild module a, which is a downstream dependency of module b, then rebuild module b also), runtime vs build time dependencies, etc.
https://www.yoctoproject.org/docs/latest/bitbake-user-manual/bitbake-user-manual.html#dependencies
Allow to arbitrary update for included libs this is a simple idea, allow the developer to request an environment update for a specific library, something like:
p4a upgrade # to cast an update for every lib
p4a upgrade lib1# to cast an update for lib1
This would save time for people who's working with a specialized or private dependencies that need to be updated to fix an issue on the final app that it's not caused by the app's implementation, instead of having to download everything again.