2025-40: A week in conda-forge
·This week was the week of PyData Paris and a public holiday in Germany. At the same time, my usual day-to-day work had to continue, so my conda-forge interactions were limited to simple (but many) reviews, fixes and merges. Larger changes have to wait for the next week(s).
As there was no maintainer response for a week, I merged grep-feedstock#17 and lxml-feedstock#105. As r-base-feedstock#386 was merged, we could trigger a re-run (and merge) on r-rjava-feedstock#50. After the latest merge, the nodejs
build on osx-arm64
no longer fit into the six-hour timeframe on Azure Pipelines, so I started to look into a workaround in nodejs-feedstock#416. As the initial ideas didn’t lead to a good result, this will need to be reviewed again later. In the nodejs
landscape, parceljs-feedstock#54 was not automerged because an outdated os_version
broke the build. I cleaned up the feedstock and converted it to a v1 recipe. scorecard-feedstock#5 failed to build with invalid license issues. Here, we needed to manually download the license of a third-party dependency instead of automatically fetching it via go-licenses
. On the positive side, conda-forge-pinning-feedstock#7822 was a straightforward merge.
The work on jaxlib 0.7.2
continued with the problem that the GCC headers can be different between build_platform
and target_platform
; thus, we needed bazel-toolchain-feedstock#26 to handle this.
Python 3.14
For the Python 3.14 migration, it was also quantity-over-quality this week as I wanted to ping some maintainers to merge PRs or at least get the clock started on PRs where I could use my conda-forge/core
powers to merge after a week of no response.
During PyData Paris, the biggest currently blocker pandas-feedstock#233 was merged after upstream released a Python 3.14-compatible version. I pinged the maintainer on fastparquet-feedstock#78 directly, as this was the next one to get more nodes in the rebuild graph going.
Sadly, not everything is fixable. For example, vowpalwabbit-feedstock#92 failed because it doesn’t build as it is not compatible with fmt>=11
. However, moving the pin manually to fmt=10
only leads to the following error. Luckily, some easy ones can be directly merged, like tabmat-feedstock#56.
On pytorch-feedstock#420, I commented with a link to the upstream issue that we will need to wait for PyTorch 2.10. Still, it might also be possible here that we can backport some patches to the 2.9 release, as this might be simpler/faster than getting the whole of 2.10 building on conda-forge infrastructure.
In the list of larger nodes in the Python 3.14 graph, we also had pywinpty
. As the PR was failing on the current version, I first tried to upgrade to the latest one in pywinpty-feedstock#64. Still, once I found out that this would require nuget and Windows Terminal to be build from source, I moved on an fixed pywinpty-feedstock#65 by setting PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
so that maturin
builds for the new Python version.
numcodecs-feedstock#119 initially failed because of a missing Python 3.14 build for coverage
. After a rerender of the feedstock, the build now passes, and thus I requested a review from the maintainers. This was also the case for pyfftw-feedstock#70. Similarly, I also asked a rerender for framel-feedstock#44. Sadly, in this case, Windows kept failing with MinGW compiler issues. These were solved by removing some old workarounds from conda_build_config.yaml
. The build then passed, but framel’s unit tests failed, and I moved on for now. In srsly-feedstock#56 , the rerender revealed an upper pin in the package for python<=3.13
. We concluded here to wait for a new release. As the thrift-feedstock
looked a bit abandoned, I revived the version update in thrift-feedstock#42 and converted this to a v1 recipe to tackle the Python 3.14 migration afterwards.
There were several more small fixes I did, that I’m only summarising as bullets here:
- Rebased numexpr-feedstock#75 and bottleneck-feedstock#61 as both had new releases. In both cases, the build then passed.
- Requested a rerender on argon2-cffi-bindings-feedstock#12; the builds then passed.
- After the rerender on mariadb-feedstock#19, the builds sadly failed on Windows. This required linking to
zlib
to get them to pass. - Created sip-feedstock#100 to build
sip
for Python 3.14 for this (older) release to move pyqt-feedstock#159 forward - Updated
onnx
to 1.19.0 first before attempting the Python 3.14 migration in onnx-feedstock#135. This also needed an older protobuf version rebuild in protobuf-feedstock#255 - Similarly to
onnx
grpc-cpp-feedstock#414, it also needed the olderprotobuf
version to be rebuilt first before it could move on. At the same time, we had to exclude some more end2end tests from CI as the runtime exceed our Azure timelimit. -
kornia-rs-feedstock#22 passed, but it had an explicit skip for
py>=313
. After removing this, we needed to setmaturin
into ABI3 compatability mode to produce a wheel for Python 3.14 -
conda-feedstock#274 needed a rebase after a PR to main was merged, but is still running into a cyclic dependency with
conda-libmamba-solver
- Requested rerender for python-rapidjon-feedstock#70 as build were failing but logs were no longer visible. Sadly the Python 3.14 builds here fail for Python 3.14 in relation to some refcount changes (similar to what was required to be fixed in
pyarrow
) -
pyreadline-feedstock#17 required the addition of
setuptools
tohost
to become green - In contrast to most
jaxlib
work, jaxlib-feedstock#325 passed directly and we merged only building for Python 3.14 and reverted that with a[ci skip]
onmain
. - python-duckdb-feedstock#130 failed with deprecation warnings that triggered test failures. After updating to a new version in python-duckdb-feedstock#129, the previous PR also passed.
- We could close gz-gui-feedstock#71 simply as this is an
abi3
package and doesn’t need a rebuild.
Since the one week reaction period passed, I merged the following feedstock due to inactivity using my conda-forge/core
powers:
- fastdtw-feedstock#18
- tensorboard-data-server-feedstock#23
- xtensor-python-feedstock#98
- setproctitle-feedstock#38
- gunicorn-feedstock#43
- python-maria-trie-feedstock#42
- audioread-feedstock#33
- pycryptodome-feedstock#65
- xrootd-feedstock#109
These feedstocks were merged because @ocepaf
gave me the 👍 to merge green Python 3.14 PRs where he is a maintainer:
There were also several PRs where the CI passed, so that I pinged the maintainers to make them aware:
- case_formats_io-feedstock#14
- doublemetaphone-feedstock#18
- openmm-feedstock#164
- mdtraj-feedstock#82
- wandb-feedstock#163
- dbus-python-feedstock#27
- cppe-feedstock#28
- kahip-feedstock#25
- scikit-sparse-feedstock#53
- simpleitk-feedstock#46
- smqtk-dataprovider-feedstock#4
- traits-feedstock#46
- pybtex-docutils-feedstock#22
- pycocotools-feedstock#43
- pygraphviz-feedstock#47
- psyplot-feedstock#33
- assist-feedstock#18
- cmarkgfm-feedstock#36
- partsegcore-compiled-backend-feedstock#28
- memory-allocator-feedstock#20
- pemja-feedstock#20
- mmh3-feedstock#27
- njoy2016-feedstock#20
- opentsne-feedstock#54
- opentracing-feedstock#20
- promise-feedstock#26
- pycbf-feedstock#18
- pylsqpack-feedstock#9
- pymdi-feedstock#87
- python-box-feedstock#57
- pyvinecopulib-feedstock#13
- qutip-feedstock#109
- rpm-tools-feedstock#45