On Feb 11, 2016 1:23 PM, "Robert Collins" <robe...@robertcollins.net> wrote:
>
> I'm a little over this particular subthread of the topic - we did it
> to death late last year. So apologies in advance if I get a little
> terse.
>
> On 12 February 2016 at 05:08, M.-A. Lemburg <m...@egenix.com> wrote:
> > On 10.02.2016 19:46, Robert Collins wrote:
> >> On 11 February 2016 at 02:36, M.-A. Lemburg <m...@egenix.com> wrote:
> >>
> >>>> Currently what pip does is to
> >>>> invoke
> >>>>
> >>>>     $ python setup.py egg_info --egg-base $TEMPDIR
> >>>>
> >>>> to get the metadata. It is not possible to get the metadata without
> >>>> executing the setup.py which is problematic for many applications.
> >>>> Providing a static pypa.json file is much better: tools can read a
> >>>> static file to get the metadata.
> >>>
> >>> Depends on which kind of meta data you're after. sdist packages
> >>> do include the static PKG-INFO file which has the version 1.0
> >>> meta data. This doesn't include dependencies or namespace
> >>> details, but it does have important data such as version,
> >>> package name, description, etc.
> >>
> >> For pip to use it, it needs to include - reliably - version, name, and
> >> dependencies; for it to be in any way better, we also need
> >> setup-requires or a functional equivalent.
> >>
> >> Today, we can't rely on the PKG-INFO being complete, so we assume they
> >> are all wrong and start over. One of the things we'll get by being
> >> strict in subsequent iterations is the ability to rely on things.
> >
> > Then why not fix distutils' sdist command to add the needed
> > information to PKG-INFO and rely on it ?
>
> How can we tell it is reliable? There's some 100K's of sdists that
> aren't reliable on PyPI already. We don't want to break installing
> those.
>
> > Or perhaps add a new distutils command which outputs the needed
> > information as JSON file and fix the sdist command to call this
> > by default ?
>
> We already have a command which outputs the needed info (as egg info)
> - and my draft PEP has a similar one, using PEP427 wheel METADATA
> format.

with JSON-LD.org, warehouse can be built with RDFJS.org for the UI; and
anything could index the catalog metadata (e.g. pip, as it does things)

>
> > There are many ways to address such issues, but defining a new
> > standard for every issue we have instead of fixing the existing
> > distutils implementation is not the best way to approach this.
>
> I think you need to make a much stronger case for this, given how
> consistent the disagreement in this forum with that position has been.
> I understand you consider it to be not-the-best way, but so far, noone
> else seems to agree.
>
> Specifics that Donald raised with any 'fix distutils' approach:
>  - how do we fix people running pip install on Python 2.7, 3.4, 3.5,
> for the next 5 years?
>  - how do we address the needs of folk who are using bento or flit
>  - and how do we address the needs of the *authors* of bento or flit?
>
> Plus the one I've already mentioned
>
>  - how do we fix the bootstrap issue setup.py has ?

https://bootstrap.pypa.io/get-pip.py

>
> >>> In the end, you'll just be defining a different standard
> >>> to express the same thing in different ways.

is this a tagged build of a source revision for a given platform (or
manylinux)

> >>>
> >>> The setup.py interface was never designed with integration in mind
> >>> (only with the idea to provide an extensible interface; and I'm not
> >>> going get into the merits of setuptools additions such as
> >>> --single-version-externally-managed :-)) but it's still
> >>> quite usable for the intended purpose.
> >>
> >> However we *are defining an integration point*, which is yet another
> >> reason not to use the setup.py interface.

.register_callback and name.spaced event points with a context object would
probably just about do it.

> >
> > https://xkcd.com/927/ :-)
> >
> > setup.py is the current standard and even though it's not
> > necessarily nice, it works well and it does support adding
> > different build systems (among many other things).
>
> I don't think 'well' is a useful adjective here. setup.py has some
> very sharp limits as an interface:
>  - bootstrap dependencies are broken in non-standard networking
environments
>  - bootstrap dependencies are very slow due to multiple builds
>  - setup.py is very complex for both implementors and package authors

- a way to specify distro system package dependencies by pkgname and
extraname (platform consts, logic, YAML-LD, URNs, URIs)
- a way to specify the source URI
- a way to specify the source URI of a given tagged version of a package
  ('git', 'https://bitbucket.org/pypa/.')
   doap:GitRepository
  - because I want to see what it does from source

>
> Folk that want/need/like setup.py can keep using it! The draft we're
> discussing can obviously thunk back through to setup.py for setuptools
> projects, and no harm occurs to them. For other projects, they gain
> choice and the ecosystem can expand.
>
> > mxSetup.py, for example, includes a build system for C libraries
> > completely outside the distutils system, based on the standard
> > Unix configure/make dance. It simply hooks into distutils, takes
> > a few parameters and goes off to build things, feeding the
> > results back into the distutils machinery.
>
> Thats great; and mxSetup.py can keep doing that, while adding compat
> for pypa.json very easily.
>
> Can I ask - why the push-back on a new, clean, crisp, separate
> interface here? All the drafts had this in common, perhaps we're just
> too close to it!
>
> What harm is it going to cause?
>
> -Rob
>
>
>
> --
> Robert Collins <rbtcoll...@hpe.com>
> Distinguished Technologist
> HP Converged Cloud
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to