January 2025 Project Updates

NumFOCUS
11 min readJan 30, 2025

--

Sponsored Projects

mlpack

mlpack released version 4.5.1: https://github.com/mlpack/mlpack/releases/tag/4.5.1

This has some new functionality, some bug fixes, and some additional documentation.

  • ensmallen released version 2.22.1, just a little bugfix release: https://github.com/mlpack/ensmallen/releases/tag/2.22.1
  • Our NASA work is going smoothly, with many exciting preliminary results about compiling mlpack models for low-resource devices. However, there is nothing directly to link to yet -maybe next time!

PyBaMM

  • Towards the end of November we published a new release: PyBaMM 24.11. The release includes significant new features and improvements, which are explained in our release notes: PyBaMM — PyBaMM 24.11 has been released!
  • Next month (5–6th Feb) we are running the very first PyBaMM conference in London, followed by a training event on the 8th. More info on the conference website: PyBaMM Battery Modelling Conference

scikit-learn

We’re happy to announce the 1.6.1 release! It contains fixes for a few regressions introduced in 1.6. You can see the changelog here: https://scikit-learn.org/stable/whats_new/v1.6.html#version-1-6-1

You can upgrade with pip as usual:

  • pip install -U scikit-learn

The conda-forge builds can be installed using:

  • conda install -c conda-forge scikit-learn

rOpenSci

R-Universe Named an R Consortium Top-Level Project

Community Call “From Novice to Contributor: Making and Supporting First-Time Contributions to FOSS”

Multilingual Project Progress

Coworking

New package {agroclimatico}

Calls for contributions

Package development corner

https://ropensci.org/blog/2024/12/19/news-december-2024/

GDAL

On behalf of the GDAL/OGR development team, I am pleased to announce the release of the GDAL/OGR 3.10.1 bug-fix version. Consult the release notes for the list of issues addressed: https://github.com/OSGeo/gdal/blob/v3.10.1/NEWS.md

The sources are available at:

or

or

MDAnalysis

Releases and Licensing

  • MDAnalysis v2.8.0 is now available on conda-forge and PyPi. A special thanks goes out to our community, especially to our 10 new contributors, NumFOCUS, and the Chan Zuckerberg Initiative, for their support!
  • MDAnalysis changed its license from GPLv2+ to LGPLv2.1+. This license change will make it easier for other projects with more permissive licenses and users in industry to work with the MDAnalysis library. The MDAnalysis v2.8.0 release is the first with the new license. This was a 3-year process that publicly started with a formal announcement in November 2022 but had begun internally in September 2021. We are very thankful to NumFOCUS for their support along the way, including providing access to excellent legal counsel.

Events

Funding

We thank NumFOCUS for awarding MDAnalysis with a Small Development Grant for the project, “Customizable and Automated Scientific Molecular Rendering with MolecularNodes,” a collaboration between Yuxuan Zhuang (MDAnalysis Core Developer) and Brady Johnston (creator of MolecularNodes). Developing a robust API for MolecularNodes and integrating it with Jupyter Notebook will enhance scientific molecular rendering with MolecularNodes and visualization of complex analysis results from MDAnalysis.

Vega

The Vega Projects constitute a cohesive ecosystem of visualization libraries: Vega is a visualization grammar; a declarative format for creating, saving, and sharing interactive visualization designs. Vega-Lite provides a higher-level grammar for visual analysis and Vega-Altair provides Python bindings for Vega-Lite. This grammatical implementation of graphics and interactivity produces beautiful and effective visualizations with a minimal amount of code. VegaFusion scales Vega-Altair to large datasets, and VL Convert provides publication-quality static file export.

Julia Language

Julia version 1.11.3, the third patch release in the 1.11 series, is now available. Binaries are available via JuliaUp and at https://julialang.org/downloads/ for macOS (Intel and M-series processors), Windows (x86 and x86–64), glibc Linux (x86, x86–64, AArch64, and PowerPC), and FreeBSD (x86–64). Binaries are not currently available for musl Linux for this release.

As a patch release, 1.11.3 contains no new features or breaking changes, only bug fixes, documentation improvements, and performance improvements. The list of commits included since 1.11.2 can be found here. We recommend that anyone currently using a prior 1.11 release upgrade to 1.11.3.

Note that 1.11 on GitHub Actions, Cirrus, Travis, and AppVeyor now refers to 1.11.3.

ITK — Insights Toolkit

ITK 5.4.0 is Released!

The Insight Toolkit (ITK) 5.4.0 brings major documentation improvements and modern C++ enhancements:

  • Migration to Markdown-based system on ReadTheDocs
  • Unified search across all documentation sources
  • Python 3.11+ support with Stable ABI wheels
  • C++17 required with modern features like structured bindings
  • Enhanced DICOM and NRRD metadata support

Full release notes: https://docs.itk.org/en/latest/releases/5.4.0.html

There will be an ITK Maintenance Hackathon on January 23, 2025.

Dask / Coiled

Coiled 2024 in Review. See where we started and where we’re headed in our blog post.

Prefect Push Work Pools + Coiled. Together Prefect and Coiled make it easy to define and run complex scheduled workflows in the cloud without managing infrastructure. You can now set up the two tools to run together using Prefect’s Serverless Push Work Pools. More in our documentation.

Parallel GeoTIFF Processing with GDAL. GDAL is a powerful C++ library for transforming geospatial data. Our new example walks through reprojecting thousands of Sentinel-2 satellite images stored on AWS with Coiled Batch. It takes ~5 minutes. Try out the example in our documentation.

Zarr 3 + Dask. Zarr 3 is officially released and fully supported by Dask. This brings major IO performance improvements, better chunk size handling, and more when working with multi-dimensional datasets. More details in the V3 announcement.

Continued Improvements to Xarray Efficiency. There have been a number of recent improvements to Dask Array, like consistent chunksizes in Xarray rolling-constructs and improved efficiency in map_overlap. As of Dask version 2024.11.2, calculating quantiles is also faster and more reliable. More in our blog post.

Just signed up for Coiled?

Watch our short demo to see how to get started. It’s easy to connect Coiled to your AWS, GCP, or Azure account.

New to Dask?

Check out our tutorials on using Dask DataFrames, parallelizing your Python code, plus more advanced use cases.

HoloViz

We are very happy to announce that, thanks to the hard work of @Jason and @Azaya, the HoloViz Examples Gallery at https://examples.holoviz.org/ has been modernized, with:

  • 15 examples have been updated (API following current best practices, newer Python version, improved narrative, etc.).
  • an enhanced contributor guide.
  • a new example authored by Isaiah analyzing a dataset of the FIFA World Cup 2018 with HoloViews and Panel.

Learn more about this work sponsored by NumFOCUS in our latest blog post.

In case you didn’t know about https://examples.holoviz.org/, you will find on this website more than 40 real-world examples that combine multiple HoloViz tools into domain-specific workflows (geospatial, finance, neuroscience, mathematics, cybersecurity, etc.). These examples go beyond demonstrating individual tools — they tell data stories. This makes it easier to understand how to use the tools together and apply them to practical problems.

Happy to announce the release of Panel 1.5.5. This release primarily focuses on fixing a number of regressions, including an issue where node_modules were bundled into the PyPI wheel due to a change in hatchling. It also includes a few enhancements, compatibility fixes, and other bug fixes.

Find the full changelog here: https://github.com/holoviz/panel/releases/tag/v1.5.5

ArviZ

PreliZ, the package for exploring and eliciting probability distributions, has a new release (0.15.0). These are some of the highlights from the last few releases. Similar to its sister project ArviZ, PreliZ works with rcParams allowing users to control global settings like the default probability for intervals or whether some functions should return plots. The maxent function now supports extra restraints like fixing the mode, median and other summary statistics. The experimental function for predictive elicitation, ppe, has been refactored.

Affiliated Projects

Toqito

toqito 1.1.1 was released on Dec. 30.

QuTiP project

The QuTiP 5 paper is public. https://arxiv.org/abs/2412.04705. This is not only an up-to-date white paper on the project on par with the current major release but also the most comprehensive document to learn about the Quantum Toolbox in Python project as the quip package reaches 2M downloads.

Skforecast

Skforecast and cienciadedatos.net are teaming up to make forecasting more accessible than ever!

We’ve curated a series of free articles designed to help everyone — from beginners to seasoned data scientists — enhance their machine learning and forecasting skills.

What’s inside?

  • Dive into classic models like ARIMA and SARIMAX
  • Explore cutting-edge techniques like Gradient Boosting and Deep Learning
  • Learn to build scalable models for forecasting thousands of series
  • Master robust validation processes
  • Solutions for tricky scenarios like intermittent demand, incomplete series, and model explainability

This is a resource built by the community for the community, and we hope you find it valuable.

New articles

Data leakage in pre-trained forecasting models: Data leakage and overfitting problems in pre-trained forecasting models.

Time series anomaly detection: Detection of anomalies and outliers in time series using forecasting models.

Mesa

Mesa is proud to release Mesa 3.1.3 and our preparation for Google Summer of Code 2025

Highlights

Mesa 3.1.3 introduces a major experimental re-implementation of Mesa’s continuous space, providing an intuitive agent-centric API and significant performance improvements. The new implementation supports n-dimensional spaces and offers streamlined methods for agent movement and neighbor calculations.

New Continuous Space Features

  • Agent-centric movement API similar to cell spaces
  • Efficient neighbor calculations and position updates
  • Support for n-dimensional spaces
  • Improved memory management with dynamic array resizing

The new implementation particularly benefits models requiring frequent position updates and neighbor queries, such as flocking simulations or particle systems. See PR #2584 and the API documentation for more details. We would love to get feedback on the new Continuous Space in #2611.

Other improvements in this release include consistent visualization behavior across space types with the re-implementation of `draw_voronoi` #2608 and a new render interval slider for controlling visualization update frequency in SolaraViz, which helps improve performance when working with complex visualizations #2596. We’ve also fixed a bug affecting random number generation determinism when using `Model(seed=something)`, ensuring both `model.random` and `model.rng` now behave consistently when seeded with the same initial value #2598.

Full Changelog: https://github.com/projectmesa/mesa/compare/v3.1.2...v3.1.3

We are looking forward to another summer of code and any volunteers!

Please reach out on our Matrix Channel.

Optuna:

We are planning to release Optuna v4.2 soon with the following updates:

  • OptunaStorageProxyService: Storage caching system for improved throughput in heavily parallelized optimization
  • Constrained optimization support for GPSampler
  • c-TPE: A new constrained optimization algorithm for TPE
  • Benchmark problems in OptunaHub!
  • Currently we already have bbob and its variants, dtlz, wfg, and zdt. We are planning to add nasbench201, hpobench, hpolib and other benchmarks.
  • SMACSampler added in OptunaHub
  • It uses SMAC3 developed by AutoML.org as the backend, which implements a random forest-based Bayesian optimization.

PyLops

The PyLops development team delivered 3 major releases at the end of 2024 and a number additional milestones have been achieved:

PyLops core library (v2.4.0)

• A new operator called PyTensorOperator has been introduced to convert any PyLops LinearOperator into a PyTensor Op, ultimately enabling users to perform probabilistic programming via PyMC.

• A new operator called ToCupy has been introduced to allow users to solve out-of-GPU inverse problems whist still applying some of the operator’s forward and adjoint computations on the GPU — more details can be found in this Medium blog post.

• A new operator called JaxOperator has been created allowing users to run almost any PyLop’s operators on JAX arrays.

• A N-Dimensional Wavelet operator called DWTND has been contributed by solldavid (first time contributor)

• The entire suite of PyLops’ sliding and patching operators have been revamped leading to more efficient and less memory hungry implementations — see https://github.com/PyLops/pylops_slidingpatching for a detailed benchmark.

PyProximal (v0.10.0):

• Added AndersonProximalGradient solver

• Added iPALM solver

• Added gradtest_proximal and gradtest_bilinear methods to help user’s checking for correctness of their gradient implementations for Proximal and Bilinear operators.

PyLops-mpi (v0.2.1):

• Added support for using CuPy arrays with PyLops-MPI — enabling users to solve their inverse problems on multi-GPU systems (see again our Medium blog post for details).

• Published paper describing the development of the library and main design choices in great details object.

• Introduced the UNSAFE_BROADCAST partition to give users an option to handle overflow in broadcast scenarios.

• Added dottest routine to check the validity of distributed operators.

• Enabled 2D-distribution using sub-communicators as detailed in this PR.

For more details, head over to our Release Notes ( PyLops , PyProximal , and PyLops-MPI )

CVXPY

CVXPY 1.6 has been released! CVXPY now supports N-dimensional variables, parameters, and expressions! See the release notes for the many other exciting features and bug fixes in 1.6 https://www.cvxpy.org/updates/index.html#cvxpy-1-6

MFEM

Version 4.7 of MFEM was released. Some of the new features and additions in this release are:

  • Named mesh attribute sets.
  • General refinement of NURBS meshes.
  • Capability to partition big serial meshes.
  • Support for single and double precision builds.
  • New integrator for hyperbolic conservation laws.
  • Capability to construct cut-FEM integration rules.
  • Partial assembly and GPU support for DG diffusion.
  • GPU-accelerated LOR assembly on surface meshes.
  • Automatically sync runtime compute policy with hypre.
  • Mortar contact miniapp based on the Tribal library.
  • LOR block GPU solver for linear elasticity.
  • Bramble-Pasciak preconditioner for the Darcy problem.
  • Updated Doxygen documentation style.

We also held the fourth annual MFEM workshop on October 22–24, 2024. This was the first time the workshop had an in-person component (it was previously a virtual-only event; most recently, it was hybrid). There were 119 participants and 26 speakers. See https://mfem.org/workshop and this article for more details about the meeting. Recordings of the presentations are available on this YouTube playlist.

Geomscale

Geomscale has mentored 7 fascinating projects during Google Summer of Code 2025

  • Refactor Multiphase Monte Carlo Sampling for volesti and dingo
  • Machine Learning and Optimization for Finance: Index Replication
  • Modernize Linear Program solver interface in dingo
  • Develop a new rounding method for convex polytopes
  • Metabolic Interactions inference using community flux sampling
  • Efficient Volume Computation
  • Improving sampling routines for correlation matrices and R interface

New repository on index replication https://github.com/GeomScale/PorQua with some novel functionality on index replication with backtesting. Looking forward to enhancing this repository since it is still in the early stage, e.g., it lacks basic documentation.

TNL

New official modules in the TNL project — https://tnl-project.org/pages/modules/ — which aim mainly on various methods in computational fluid dynamics (MHFEM, LBM and SPH).

YouTube channel — https://www.youtube.com/@GPUProgrammingWithTNL — where we want to explain the fundamentals and basic concepts of the use of TNL for the development of efficient parallel algorithms. This way we would like to enlarge the community of the users of TNL.

pvlib

Since our last update, there have been two releases: v0.11.1 in September and v0.11.2 in December. The September release featured a number of enhancements and gallery examples by our Google Summer of Code trio, whereas the December release contained more bug fixes and documentation improvements. Many thanks to the GSOC trio who are becoming regular contributors! Each release saw input from ~25 people.
Details of both releases are found here:

https://pvlib-python.readthedocs.io/en/v0.11.2/whatsnew.html
https://pvlib-python.readthedocs.io/en/v0.11.1/whatsnew.html

The question of when, whether, and how to move to version 1.0 has been discussed a few times in the past and is now again a hot topic (and seemingly as scary as getting married or something like that ). You can follow the discussion on GitHub, and you are welcome to leave helpful comments as well (or just send us best wishes).

https://github.com/pvlib/pvlib-python/discussions/2349

--

--

NumFOCUS
NumFOCUS

Written by NumFOCUS

Our open source scientific software projects are changing the world. Learn more on our website: https://numfocus.org

No responses yet