2025-39: A week in conda-forge
·In the third week of reporting on my conda-forge work, you will see how the large number of contributions happens quickly. As we’re getting closer to the Python 3.14 release, I spent some time bringing that forward.
The week started with a rust-dev update. These updates are based on a script that regenerates a section of the meta.yaml
, but the PRs themselves are not yet automated. In the same weekly cleaning session, I manually closed the close aws_c_202509 migration and aws_crt_cpp0343 migration.
Last week, the libxml2
migration progressed. Unfortunately, this also meant some breakage in a few places. I spent some time debugging lxml-feedstock#105, where we need to pin to libxml2-16 2.14.x
. This is much stricter than the run_exports
of the libxml2
packages enforces. In the end, this was not an unstable ABI but a change in the build that occurred in the latest minor release. While the PR for the libxml2
for ibm_db
passed, it sadly resulted in failing packages as it picked the system libxml2
and not the new conda-forge version. Thus, we marked these builds as broken in admin-requests#1672. We fixed the linkages in ibm_db-feedstock#87 by pinning to the old version.
As I’m a maintainer (also user) of pcre2-feedstock
, I spent a bit of time reviewing the PRs that were still open on the pcre2 10.46
migration:
- Pinged the maintainer on deepsearch-glm-feedstock#8, lighttpd-feedstock#45, ugrep-feedstock#15
- Triggered a
bot-rerun
on htcondor-feedstock#316 so that the PR is rebased on the latest main. The new PR htcondor-feedstock#325 was then swiftly merged by the maintainers. - Similarly, r-rjava-feedstock#48 needed a
bot-rerun
and first the merge of r-base-feedstock#383 so that the older R release also could be installed with the newpcre2
- Ignored the status of julia-feedstock#297, as the whole feedstock seems abandoned
- Fixing grep-feedstock#17 was a bit trickier, as it needed the new release and still kept failing, as the cross-compiled tests don’t work because of a path issue. Additionally, some behaviour changed recently on macOS so more integrated
gnulib
tests needed to be skipped. This was fixed by backporting the fixes from gnulib-ccb60ee9 and gnulib-b49212bd - On nginx-feedstock#96, I made some progress by fixing the missing dependency on
libxcrypt
on newer Linux versions. Still,configure
fails with an error onlibxslt
- uwsgi#100 fails due to bytecode mismatches in LTO code. Thus, it needs a rebuild of Python with the latest version of GCC. As Python 3.13 was already rebuilt, I made python-feedstock#815, python-feedstock#816, and python-feedstock#817 for Python 3.10-3.12.
Meanwhile, I made minor fixes in librsvg-feedstock#129 and reviewed admin-requests#1674 and sqlglotrs-feedstock#33. As some colleagues required specific versions of Netbird, I contributed that via staged-recipes#31096 and added linux-aarch64
, linux-ppc64le
, and osx-arm64
immediately afterwards.
As jaxlib 0.7.1
was merged, it was time to continue work on jaxlib v0.7.2
. @h-vetinari
already started working on this, so it wasn’t a fresh start. As part of the new version, I updated the absl
third-party dependency by adding new log
targets. We could also drop the GCC 15 fixes we did for 0.7.1, as they were already integrated into this release. Sadly, the compilation now takes longer on osx-64
, and to get it below the six-hour limit, I changed the oneDNN build from the bundled version to linking against the conda-forge package.
Meanwhile, we also attempted to migrate to CUDA 13. This sadly failed, as not even the latest Clang 21 release can build CUDA 13 device code. Still, I used the chance to contribute Clang 21 support to google-ml-infra/rules_ml_toolchain#88.
There were again several (trivial) merges I did this week using my maintainer duties or conda-forge/core
powers:
- conda-forge-pinning-feedstock#7772
- conda-forge-pinning-feedstock#7736
- conda-forge.github.io#2603
- snowflake-connector-python-feedstock#197
- cargo-deny-feedstock#4 (and enabled automerge)
- aws-sdk-cpp-feedstock#971
- admin-requests#1664
- libgit2-feedstock#86
- Closed aws-sdk-cpp#972 as rebuilds are costly
- Merged staged-recipes#31099 for a colleague
- fisher-feedstock#32
- seqan-library-feedstock#12
- gdk-pixbuf-feedstock#57
- flock-feedstock#7
- tree-sitter-sql-feedstock#6
- conda-forge-pinning-feedstock#7809
- Triggered cirun and then merged nodejs-feedstock#415
- admin-requests#1673
- conda-forge-pinning-feedstock#7793
- psqlodbc-feedstock#15
- Due to network issues on the
apache.org
side, we needed to retrigger CI before we could merge arrow-cpp-feedstock#1861, arrow-cpp-feedstock#1863, arrow-cpp-feedstock#1862, and arrow-cpp-feedstock#1864Python 3.14
This week, I started my mini-sprint to bring the Python 3.14 migration forward so we will have a good release-day availability.
As a first step, I manually opened pymsbuild-feedstock#25, as the bot did not open a migration PR for it, but already had ones for packages depending on it. Similarly, conda-feedstock#274 failed because it needs mamba
to migrate first. We could close futures-feedstock#17 , as futures
is a Python 2.x-only package. I requested its archival in admin-requests#1671.
Then there was a round of PRs that could be merged, because they either were part of an abandoned feedstock or the maintainer had already approved it: cchardet-feedstock#24, flt-feedstock#14, and fake-factory-feedstock#26
For fill-voids-feedstock#6 and fisher-feedstock#30, I triggered a bot rerun because they looked good but had conflicts that prevented their direct merge.
Some PRs could easily be fixed by adding setuptools
to host
. Since Python 3.13, conda-forge no longer ships it as an implicit dependency of pip
and thus it often breaks the build for some packages on these newer Python releases. I applied it to the following feedstocks and pinged the maintainers once the CI was green: fastbpe-feedstock#18, fastpath-feedstock#13, and future_fstrings-feedstock#21.
Finally, there is a long list of feedstocks where I reviewed the PR and pinged the maintainers as the builds looked fine:
- audioread-feedstock#33
- clarabel-feedstock#16
- ephem-feedstock#40
- pycifrw-feedstock#32
- rebound-feedstock#116
- pathlob2-feedstock#24
- coreforecast-feedstock#23
- ezc3d-feedstock#97
- gstools-cython-feedstock#6
- bitarray-feedstock#111
- memray-feedstock#52
- cassandra-feedstock#26
- cyvlfeat-feedstock#22
- encor-feedstock#7
- ezdxf-feedstock#80
- fastbencode-feedstock#7
- fastdtw-feedstock#18
- fastscapelib-f2py-feedstock#30
- filepattern-feedstock#19
- fimex-feedstock#91
- focal-stats-feedstock#14
- fortls-feedstock#41