Replies: 1 comment 1 reply
|
#481 proposes to remove pypdfium2's conda packaging and dedicated setup code. It would be a relief to get rid of. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This is a re-posting of mindee/doctr#2127 for the broader pypdfium2 users community to note. Feedback welcome!
Hi,
pypdfium2 maintainer here again.
I came to ask if we could re-evaluate the conda packaging situation together, seeing as it was you / the doctr project that had originally wished for conda packages of pypdfium2 (cf. #77, mindee/doctr#113, CC @frgfm).
I've been pondering for a while what might be the best way forward:
I'll try to explain in due course why we're making these considerations.
First, there have been a number of changes (improvements) that I'd like to acknowledge, which prompted me to revisit pypdfium2's conda packaging:
python_version_independentsetting. (The corresponding conda-build PR Add an option to create arch specific, python version independent pkgs conda/conda-build#5456 got merged by the end of Feb 2025.)Conda finally seems to be gaining better integration with the PyPI world via the (official)conda-pypibridge beta.Now, our current approach to conda packaging has some limitations that I've been uneasy about for a while:
pypdfium2_helpers, which depends onpypdfium2_raw(pypdfium2-teamchannel), which depends onpdfium-binaries(bblanchon's channel). (cf. Conda package bblanchon/pdfium-binaries#119)pdfium-binaries. They are cut off from the other build strategies.anaconda.org(officially) have a tight per package storage limit of 3 GB for user repos. This is generally a problem with binary packages, so I had to askbblanchonto go for a slower release schedule, and we even agreed to reduce the number of platforms uploaded to conda. (cf. Reduce conda release frequency? bblanchon/pdfium-binaries#146)Now, shifting packaging to our side would allow us to do things like occasionally making full releases with more platforms, or making an out-of-order release if necessary, while not producing builds at times we don't actually need to. This is not really an option with upstream packaging, and I do not want to annoy the upstream author with these things any more than I already did.
I recently learned that one can, apparently, overrun the (official) 3 GB limit until an (unofficial) hard limit of 10 GB, but if that will remain, and whether an increase would be granted or not, we do not know.
conda build.bblanchonresolved to do this due to (understandable) dissatisfaction with conda package tooling and platform issues we ran into. As a result, however, the packages might be slightly different than whatconda buildproduces.For instance, the package names are like
pdfium-binaries: 153.0.7988.0- bblanchon– the version comes without the usual hash/id as inpip: 26.1.2-pyh0d26453_0 defaults, orpypdfium2_helpers: 5.13.0-py_0 pypdfium2-team.While technically specification conforming, it might be the only package using that scheme.
This is just to point out there are subtle differences, and we can only hope those differences won't cause issues at some point.
Apart from that, some more fundamental problems remain, regardless of how we arranged our builds:
doctrpackaged at conda-forge, our builds in a custom channel would not be much use, since conda-forge is hermetic (think of it like a Linux distribution's repository).Finally, I'd like to echo that it has always been possible to
pip install pypdfium2in a conda env, and given that pypdfium2 has no mandatory runtime dependencies, there is not really any question of breaking the conda env (cf. our readme section).That would not have allowed for depending on pypdfium2 in a conda package recipe, but with the complications around custom channels, I'm not sure it makes much of a difference whether you ask users to manage custom channels, or make pypdfium2 optional at install time and ask them to add it with pip instead.
Or you might use an environment file, which (I think) can include pip packages.
That all said, I wanted to ask if you're still interested in conda packages of pypdfium2 at all?
I see now that mentions of conda seem to have disappeared from this repository – commit mindee/doctr@a054bda removed doctr's conda packaging I think? Or has it been shifted somewhere else?
In general, download count of pypdfium2 from conda seems to be low compared to PyPI.
Given that, I'm not even sure this is the right place to post, but I still wanted to record these thoughts, and ask for your opinion, given that you're the project that initially requested it.
I think I'll also re-post this at pypdfium2's own discussions tracker to receive user feedback if conda packaging is still desired, and what route we should take. (-> #480)
Thanks!
Disclaimer: This post is entirely human-written – apologies it got so long. Anyway, I never use gen AI to write comments, let alone code, and AI content is banned from the pypdfium2 organization altogether.
All reactions