Hi Freddy, Thomas

thanks for the well cautioned notes.

I'm vaguely aware that both, nix and conda, as "meta package managers"
have a effective way of linking correct sets of packages including the
tracing.
however both tools never made it into a consistent set of tools that my
peers, coworkers, co-maintainers and myself use.

as such i want to see the capabilities happen more at the python level.

wrt tracing whats from where, as a starting point i'd only packages
wheels from pypi (or a custom designated index server) as target for the
linking
I am well aware that this constraint precludes certain things that nix
and conda would do, but the initial isolation from binary dependencies
is critical on order to avoid layering that rabbit-hole
in at a greater expense. I'd love to see a followup in tooling that
would allow to map available/required feature sets from build time
dependencies to eventually elevate the issue,
but such process will take quite a while because of lack of available
contributors

One of my initial main goals for a minimal viable solution is to trim
down the massive duplication of available source wheels and manylinux wheels
more nuanced builds should stay on a classical layout/setup on a per
package basis while the details are fleshed out,

i certainly would like to see a path towards linking packages build on
tools like nix and conda more effectively
(in particular removing the need for deep layered and nested symlink
trees which i perceived in nix would be fabulous)

-- Ronny

Am 08.10.18 um 10:20 schrieb Freddy Rietdijk:
> What Conda and Nix do is basically having a store with packages, and
> then indeed linking them to form environments. While this works, it is
> important that one is very careful tracing how the packages are built,
> because not doing so can easily cause trouble in case of modules with
> extension types.
>
> On Mon, Oct 8, 2018 at 10:14 AM, Thomas Kluyver <tho...@kluyver.me.uk
> <mailto:tho...@kluyver.me.uk>> wrote:
>
>     Have you tried using conda envs? Conda avoids duplication by
>     unpacking all packages to a shared directory and then hard-linking
>     them into environments.
>
>     I'm not saying that should preclude doing something similar for
>     virtualenvs, but it's probably worth looking at existing solutions
>     before embarking on a change of this magnitude.
>
>     On Mon, Oct 8, 2018, at 8:42 AM, RonnyPfannschmidt wrote:
>     > hi everyone,
>     >
>     > i just did a little spring cleaning, and while i cleaned up my
>     > ~/Projects folder - the vast amount of that was virtualenvs with
>     roughly
>     > the same packages installed - each about 500 mb for like 2-5 mb
>     of code
>     >
>     > this seems excessively wasteful - my impression is that ~98% of the
>     > files seem to be duplicate.
>     >
>     > since the impending eol of python2 and the multi python version
>     > capabilities of python3 compiled code caches, i'd like to create a
>     > proposal for a shared folder structure
>     >
>     >
>     > $LIB/python/shared-packages/ should be a root folder in which
>     unpacked
>     > wheels would reside
>     >
>     > at a initial iteration this solution would suffer from the expanding
>     > python path issue since each package would have a toplevel
>     sys.path entry.
>     >
>     > on order to later on speed this up a simple api can be provided that
>     > makes python aware of the metatadata locations and the map
>     > toplevel/namespace names directly to import locations
>     >
>     >
>     > for example like
>     >
>     > shared-packages.pth
>     >
>     >     import sys;sys.path.insert(0,
>     > "$LIB/python/shared-packages/shared_packages_support-1.0-py3.whl/");
>     > import
>     >
>     shared_packages_support;sys.path.pop(0);shared_packages_support.enable()
>     >
>     > shared_packages.json
>     >
>     >     {
>     >
>     >       "pytest": "pytest-3.8.8-py2.py3.whl";
>     >
>     >     }
>     >
>     >
>     > in the aftermath, when shared packages support and fast
>     import/metadata
>     > for shared packages where implemented, the sizes of most virtualenvs
>     > would shrink significantly
>     >
>     >
>     > -- Ronny
>     > --
>     > Distutils-SIG mailing list -- distutils-sig@python.org
>     <mailto:distutils-sig@python.org>
>     > To unsubscribe send an email to distutils-sig-le...@python.org
>     <mailto:distutils-sig-le...@python.org>
>     >
>     https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
>     <https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/>
>     > Message archived at
>     >
>     
> https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/JWX7VFJRLWVIIBP4NZ5MEPRVCYTV4ZJT/
>     
> <https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/JWX7VFJRLWVIIBP4NZ5MEPRVCYTV4ZJT/>
>     --
>     Distutils-SIG mailing list -- distutils-sig@python.org
>     <mailto:distutils-sig@python.org>
>     To unsubscribe send an email to distutils-sig-le...@python.org
>     <mailto:distutils-sig-le...@python.org>
>     https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
>     <https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/>
>     Message archived at
>     
> https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/XAZPBTKGEWVDLE3PJITY4JQ3YGK3NL7G/
>     
> <https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/XAZPBTKGEWVDLE3PJITY4JQ3YGK3NL7G/>
>
>
>
> --
> Distutils-SIG mailing list -- distutils-sig@python.org
> To unsubscribe send an email to distutils-sig-le...@python.org
> https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
> Message archived at 
> https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/3L24OT5FOHPBNTQHJYRNKR4HHDQLRD4X/
--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-le...@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/TYUKA44NU3VLS7X4RQOZXRUILU25RZ5Q/

Reply via email to