Skip to content

v3.2.0

Choose a tag to compare

@adamcik adamcik released this 04 Jun 20:18

Highlights

  • Improved Nix build and CI caching with project Cachix configuration for faster, more reproducible checks and builds.
  • Refactored Nix packaging into shared runtime/package override modules to make Python and C-extension builds easier to maintain.
  • Reduced Python/container runtime closure size while keeping C-extension packages aligned with the exact runtime Python derivation.
  • Preserved distinct container cache key prefixes for iCal and scraper caches to avoid collisions with default/local cache namespaces.
  • Fixed JavaScript compression/minification for schedule navigation assets.
  • Improved devshell ergonomics with IPython and Cachix tooling available by default.

Added

  • Project Cachix substituter configuration in the flake.
  • CI Cachix setup using the plan cache.
  • Shared nix/packages.nix runtime package definitions for the canonical Python and uWSGI builds.
  • Shared nix/pyproject.nix uv2nix package overrides for Django pruning and C-extension dependency builds.
  • Configurable PLAN_ICAL_CACHE_KEY_PREFIX and PLAN_SCRAPER_CACHE_KEY_PREFIX settings.
  • IPython in the development dependency group.
  • Cachix CLI in the devshell.

Changed

  • CI now uses cachix/install-nix-action and cachix/cachix-action instead of the previous Determinate Systems cache setup.
  • uv2nix now builds selected C-extension packages from sdist so overrides, features, and ABI alignment stay consistent.
  • Container builds now share the canonical slim Python/uWSGI package definitions.
  • Container defaults now use explicit container-ical and container-scraper cache key prefixes.
  • Django package output is pruned to keep only required contrib modules and supported locales.
  • Dev/test PostgreSQL tooling moved to PostgreSQL 17.
  • Sprite generation script now declares its uv script metadata and Pillow dependency.

Fixed

  • Schedule navigation JavaScript is now included in offline compression/minification.
  • JavaScript compression is enabled with JSMinFilter.
  • Container cache prefixes no longer fall back to the generic local/default cache key namespace.
  • IPython now works from the devshell.

Developer Experience

  • Nix package wiring is split into smaller, focused modules for easier review and future maintenance.
  • Runtime Python, uWSGI, and Python extension builds are aligned to reduce ABI mismatch risk.
  • Cachix integration should reduce repeated local and CI build cost.
  • Devshell includes the tools needed for cache publishing/debugging and interactive Django exploration.