You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to consider some possible improvements to PIP_RUN_MODE to make it more configurable and responsive:
consistent voice
Instead of "ephemeral", use "destroy" to match the active voice of "persist". Or maybe prefer "persistent" and "ephemeral" to describe the environment and not the behavior.
Consider allowing for parameters to the strategy. For example, allow specifying a max age for any enviroment:
mode=persist; max-age=NNNN
(similar to cookie syntax).
new mode - persist resolved dependencies
A new mode "persist resolved" would use PyPI to resolve all dependencies and only then calculate the cache key. This mode could re-use environments when no dependencies change, but be responsive when they do. It too could use parameters to cache the resolution with a TTL.
mode=persist resolved; max-age=NNNN
And maybe then, the default mode should be persist resolved; max-age=86400. This approach would resolve dependencies once a day (for any given spec) and re-use the resolved set when unchanged.
new mode - in-memory install
Imagine - instead of having to assemble expanded installs of packages into some folder on a file system, instead resolving dependencies to wheels and importing modules from those wheels directly from zip files in memory, similar to how a web browser can load javascript dependencies from a URL. This ambitious approach would require developing custom loaders/finders/resource providers and developing facilities for handling non-pure wheels.
I'd like to consider some possible improvements to PIP_RUN_MODE to make it more configurable and responsive:
consistent voice
Instead of "ephemeral", use "destroy" to match the active voice of "persist". Or maybe prefer "persistent" and "ephemeral" to describe the environment and not the behavior.Done in #86.
mode parameters
Consider allowing for parameters to the strategy. For example, allow specifying a max age for any enviroment:
mode=persist; max-age=NNNN
(similar to cookie syntax).
new mode - persist resolved dependencies
A new mode "persist resolved" would use PyPI to resolve all dependencies and only then calculate the cache key. This mode could re-use environments when no dependencies change, but be responsive when they do. It too could use parameters to cache the resolution with a TTL.
mode=persist resolved; max-age=NNNN
And maybe then, the default mode should be
persist resolved; max-age=86400
. This approach would resolve dependencies once a day (for any given spec) and re-use the resolved set when unchanged.new mode - in-memory install
Imagine - instead of having to assemble expanded installs of packages into some folder on a file system, instead resolving dependencies to wheels and importing modules from those wheels directly from zip files in memory, similar to how a web browser can load javascript dependencies from a URL. This ambitious approach would require developing custom loaders/finders/resource providers and developing facilities for handling non-pure wheels.Tracked in #89.
The text was updated successfully, but these errors were encountered: