On 15 Feb 2017, at 15:11, Nathaniel Smith <njs@pobox.com> wrote:


In the vast majority of publication-to-PyPi cases people won't need
the "integrates" field, since what they're publishing on PyPI will
just be their abstract dependencies, and any warning against using
"==" will recommend using "~=" or ">=" instead. But there *are*
legitimate uses of pinning-for-publication (like the PyObjC
metapackage bundling all its subcomponents, or when building for
private deployment infastructure), so there needs to be a way to
represent "Yes, I'm pinning this dependency for publication, and I'm
aware of the significance of doing so"

Why can't PyObjC just use regular dependencies? That's what distro
metapackages have done for decades, right?

PyObjC is conceptually a single project that is split in multiple PyPI distributions to make
it easier to install only the parts you need (and can install, PyObjC wraps macOS frameworks
including some that may not be available on the OS version that you’re running). 

The project is managed as a single entity and updates will always release new versions of 
all PyPI packages for the project.

“pip install pyobjc==3.1” should install that version, and should not result in a mix of versions
if you use this to downgrade (which could happen if the metapackage used “>=“ to specify the
version of the concrete packages).

BTW. I’m not sure if my choice to split PyObjC in a large collection of PyPI packages is still
the right choice with current state of the packaging landscape.

Ronald  
(the PyObjC maintainer)


-n

-- 
Nathaniel J. Smith -- https://vorpus.org
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig