On Fri, Dec 2, 2016 at 4:33 PM, Robert T. McGibbon <rmcgi...@gmail.com> wrote:
> Isn't this issue already solved by (and the raison d'ĂȘtre of) the multiple > third-party Python redistributors, like the various OS package maintainers, > Continuum's Anaconda, Enthought Canopy, ActiveState Python, WinPython, etc? > My intention is not creating yet another distribution. Instead, I want to see if there is interest in the different distributions on sharing some of the burden of curating by bringing up this discussion and seeing what is needed. These distributions have their recipes that allow them to build their packages using their tooling. What I propose is having some of that data community managed so the distributions can use that along with their tooling to build the eventual packages. On Fri, Dec 2, 2016 at 5:23 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > On 3 December 2016 at 01:33, Robert T. McGibbon <rmcgi...@gmail.com> > wrote: > >> Isn't this issue already solved by (and the raison d'ĂȘtre of) the >> multiple third-party Python redistributors, like the various OS package >> maintainers, Continuum's Anaconda, Enthought Canopy, ActiveState Python, >> WinPython, etc? >> > > Yep. Once you start talking content curation, you're in a situation where: > > - you're providing an ongoing service that will always be needed (the > specific packages will change, but the task won't) > - you need to commit to a certain level of responsiveness for security > issues > - you'll generally need to span multiple language ecosystems, not just > Python > - exactly which packages are interesting will depend on the user audience > you're targeting > - the tolerance for API breakage will also vary based on the audience > you're targeting > - you'll often want to be able to carry patches that aren't present in the > upstream components > - you'll need to decide which target platforms you want to support > These are interesting issues you bring up here. What I seek is having a set that has per package a version, source, Python dependencies and build system. Other dependencies would be for now left out, unless someone has a good idea how to include those. Distributions can take this curated set and extend the data with their distribution specific things. For example, in Nix we could load such a set, map a function that builds the packages in the set, and override what is passed to the function when necessary (e.g. to add system dependencies, our patches, or how tests are invoked, and so on). Responsiveness is indeed an interesting issue. If there's enough backing, then I imagine security issues will be resolved as fast as they are nowadays by the distributions backing the initiative. > If a curation community *isn't* doing any of those things, then it isn't > adding a lot of value beyond folks just doing DIY integration in their CI > system by pinning their dependencies to particular versions. > > I would imagine that distributions that would support this idea would have a CI tracking packages built using the curated set and the distribution-specific changes. When there's an issue they could fix it at their side, or if it is something that might belong in the curated set, they would report the issue. At some point, when they would freeze, they would pin to a certain YYYY.MM and API breakage should not occur. > As far as the comments about determining dependencies goes, the way pip > does it generally works fine, you just need a sandboxed environment to do > the execution, and both redistributors and open source information > providers like libraries.io are actively working on automating that > process (coping with packages as they exist on PyPI today, rather than > relying on the upstream community to change anything about the way Python > packaging works). > > libraries.io is a very interesting initiative. It seems they scan the contents of the archives and extract dependencies based on what is in the requirements files, which is often more than is actually needed for building and running the package. They would benefit from having a declarative style for the dependencies and build system, but that is another issue (PEP 517 e.g.) than what I bring up here. We also have a tool that runs pip in a sandbox to determine the dependencies, and then provide us with an expression. It works, but it shouldn't be necessary. Freddy
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig