On 7/29/24 2:05 PM, Grant Edwards wrote:
> On 2024-07-29, Eli Schwartz <eschwa...@gentoo.org> wrote:
>>
>>> It turns out dev-python/poetry has nothing to do with poetry, so my AI
>>> paranoia was unjustified (this time), but one wonders what devs are
>>> thinking when the decide they add dozens of new dependencies like
>>> that. Why does pip suddenly need to format (or produce?) both markdown
>>> and RTF when it's been able to get along fine without them for so many
>>> years?
>>
>> For many years, pip has contained bundled libraries. These libraries
>> recently got unbundled, and now you're installing a system copy.
> 
> Yep, I figured that was probably the answer.  I (for one) would
> appreciate some sort of notice when such an unbundling happens so that
> I don't waste time trying to track down why emerge suddenly wants to
> install a bunch of new packages.  I can't really come up with a good
> mechanism for that other than news items.


Well, it is there in the `git log` of the package. And at
https://packages.gentoo.org/packages/dev-python/pip/changelog


 Commits on 2024-06-23

dev-python/pip: Unbundle dependencies


>> pip has always "needed to format (or produce?) both markdown and RTF",
> 
> OK, now I'm genuinely curious: what does pip need to do with markdown
> and RTF? My first guess was that its man pages aren't written in nroff
> any more and somehow markdown was being used. [I already had at least
> one markdown implementation installed, but pip apparently demands a
> different one.] But there is no man page for pip. There are a bunch of
> documents in /usr/share/doc/pip-<ver>, but they're all reStructured Text.
> 
> Oh well, I guess I should be thankful it didn't force LaTeX and pandoc
> installs.


Python software loves to depend on python software and hates to depend
on anything that isn't written in python, so I think you're pretty safe
there. :)

As for why it needs to format markdown -- build dependencies of python
software often do, since they want to render the darned stuff into the
https://pypi.org display page for that software and the one and only way
to do so is to render it into the metadata files which get installed at
runtime -- and which are also directly displayed on https://pypi.org

I don't understand it myself, either.

In this case it's actually a bit worse because pip internally uses, and
usually bundles a code copy, of https://pypi.org/project/rich/

"rich" can do a lot of things, including take markdown and print it with
fancy formatting and colors to your terminal emulator. pip isn't using
most of the features of rich, but it is *using* rich at all, and
therefore markdown ends up as a recursive dependency.


...

aside: there are pip manpages, funny you should mention that.

I could totally add another bdepend on sphinx for this! But I would have
to package some things first. :(


-- 
Eli Schwartz

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to