On Fri, Aug 21, 2015 at 2:34 PM, Wes Turner <wes.tur...@gmail.com> wrote:
> Something like this for packages that work with a default install would be > helpful: > > From metadata: > > * https://python3wos.appspot.com/ > * http://djangowos.com/ > * http://pythonwheels.com/ > > Additional package build scripts (and managed e.g. BLAS, numpy ABI > compatibility): > > * http://docs.continuum.io/anaconda/pkg-docs > * https://www.enthought.com/products/canopy/package-index/ > > > Additional attributes that would be useful in setup.py and JSON: > > * [ ] Add conda and canopy as pkgmgrstrs: { "apt": [...], ..., "conda": [ > ], "canopy": [ ] } > * [ ] Add ``packages`` and ``namespace_packages`` attributes from setup.py to pydist.json / metadata.json * [ ] BUG,UBY: detect collisions between installed packages ((n)) * how is this relevant to [BLAS] package metadata? * this is relevant to a broader PEP for Python package metadata ("3.0?"), apologies > > > On Fri, Aug 21, 2015 at 2:27 PM, Wes Turner <wes.tur...@gmail.com> wrote: > >> >> >> On Fri, Aug 21, 2015 at 1:30 PM, Wes Turner <wes.tur...@gmail.com> wrote: >> >>> >>> On Aug 21, 2015 12:41 PM, "Brett Cannon" <br...@python.org> wrote: >>> > >>> > >>> > >>> > On Thu, 20 Aug 2015 at 10:16 Wes Turner <wes.tur...@gmail.com> wrote: >>> >> >>> >> >>> >> On Aug 20, 2015 5:05 AM, "Nick Coghlan" <ncogh...@gmail.com> wrote: >>> >> > >>> >> > [Catching up on distutils-sig after travel] >>> >> > >>> >> > On 13 August 2015 at 16:08, Nathaniel Smith <n...@pobox.com> wrote: >>> >> > > It seems like a reasonable effort at solving this problem, and I >>> guess >>> >> > > there are probably some people somewhere that have this problem, >>> but >>> >> > > my concern is that I don't actually know any of those people. The >>> >> > > developers I know instead have the problem of, they want to be >>> able to >>> >> > > provide a small finite number of binaries (ideally six binaries >>> per >>> >> > > Python version: {32 bit, 64 bit} * {windows, osx, linux}) that >>> >> > > together will Just Work on 99% of end-user systems. And that's the >>> >> > > problem that Enthought, Continuum, etc., have been solving for >>> years, >>> >> > > and which wheels already mostly solve on windows and osx, so it >>> seems >>> >> > > like a reasonable goal to aim for. But I don't see how this PEP >>> gets >>> >> > > us any closer to that. >>> >> > >>> >> > The key benefit from my perspective is that tools like pyp2rpm, >>> conda >>> >> > skeleton, the Debian Python packaging tools, etc, will be able to >>> >> > automatically generate full dependency sets automatically from >>> >> > upstream Python metadata. >>> >> > >>> >> > At the moment that's manual work which needs to be handled >>> >> > independently for each binary ecosystem, but there's no reason it >>> has >>> >> > to be that way - we can do a better job of defining the source >>> >> > dependencies, and then hook into release-monitoring.org to >>> >> > automatically rebuild the downstream binaries (including adding new >>> >> > external dependencies if needed) whenever new upstream releases are >>> >> > published. >>> >> >>> >> JSON (JSON-LD) would likely be most platform compatible (and designed >>> for interoperable graph nodes and edges with attributes). >>> >> >>> >> JSON-LD does not require a specific library iff the @context is not >>> necessary. >>> >> >>> >> Notes about JSON-LD and interoperable software package metadata: >>> https://mail.python.org/pipermail/distutils-sig/2015-April/026108.html >>> > >>> > What does JSON-LD have to do with this conversation, Wes? No >>> discussion of implementation has even begun, let alone worrying about data >>> formats. This is purely a discussion of problem space and what needs to be >>> solved and is not grounded in concrete design yet. >>> >>> Really? >>> Why would a language designed for graphs be appropriate for expressing >>> graphs and constraints? >>> >>> The problem is: setuptools packages cannot declare dependency edges to >>> things that are not Python packages; and, basically portage ebuild USE >>> flags for attributes. >>> >>> Now, as ever, would be a good time to learn to write a JSONLD @context >>> (for the existing fragmented packaging system standards (that often require >>> code execution to read/generate JSON metadata (because this is decidable))). >>> >> >> I guess what I'm trying to say is: >> >> * "why is this packaging metadata split?" >> * shouldn't this all be in setup.py >> >> * couldn't we generate a proper RDF graph >> from each of the latest JSONLD serializations >> (e.g. https://pypi.python.org/pypi/<pkg>/jsonld) >> >> * what is missing? >> * install_requires_pkgs_apt >> install_requires_pkgs = { "apt": [...], "yum": [...], "dnf": >> [...], "aur": [....] } >> * extras_require_pkgs = { >> "extraname": { { "apt": [...], "yum": [...], "dnf": [...], >> "aur": [....] }, >> "otherextraname": { "apt": [...], "yum": [...], "dnf": [...], >> "aur": [....] } >> * build flag schema >> buildflags_schema={"numpy17":"bool"} >> buildflags=[{"numpy17"}] >> >> Because, from a maintainer/reproducibility standpoint, >> how do I know that all of these packages (1) do (2) could exist? >> >> * (3) SHOULD exist: tox, Docker builds >> >> >> So, is JSON-LD necessary to add extra attributes to setup.py? Nope. >> >> Would it be a good time to norm with a JSON-LD @context and determine how >> to specify package groupings like [salt grains] without salt, in >> setuptools? Or just be declarative (e.g. with Portage and Conda (and >> Pip/Peep, inevitably)). >> > >
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig