Changelog
All notable changes are documented in this file.
v0.2.5 (2026-02-15)
- Range:
v0.2.4..ee58532 - Snapshot commit date: 2026-02-15
User impact summary
This change set is primarily a stability and portability update rather than a major new algorithm release.
What it means for CryoSwath usage
- Day-to-day processing in
l1b,l2,l3,l4,gis, andmiscis more robust on edge cases (empty chunks/windows, missing columns, unnamed indexes, scalar coordinates, and missing region matches). - Error handling is clearer in several paths that previously relied on assertions; failures should now be easier to diagnose in production runs.
l2multiprocessing is safer across platforms (spawncontext + CPU core detection), which helps on macOS/Windows and mixed cluster environments.l3chunk-time reindexing for zarr should reduce write/read issues related to non-contiguous chunk regions.- Tutorial notebooks were updated to current APIs and now have automated workflow coverage, making the tutorial path more reliable as a usage reference.
New features
- Pixi-first environment support and workflow hardening were added and expanded (including locked runtime solve strategy and feature-scoped tasks).
- A
productionoptional dependency group was introduced. - Tutorial workflow automation was expanded with Snakemake and tox entrypoints for notebook/pipeline validation.
- A CRISTAL mission portability checklist was added to docs.
Compatibility notes
- Dependency manifests now pin
xarray < 2025.12due to upstream regression handling in this cycle. - If your environment already uses newer
xarray, expect to align to the pinned version before running CryoSwath reliably.
Commits since v0.2.4
- 2025-08-31
2629767chore: add gitignores - 2025-08-31
4e8cb24chore: bump version - 2025-12-20
6d039f5misc: update rgi_code_translator - 2025-12-20
ea142feupdate pyproject.toml - 2025-12-20
d6c4bd8misc: fix previous commit - 2026-01-24
a8a2313fix(misc): allow scalar dimensions in fill_missing_coords - 2026-01-28
403658cfix: revise download_dem - 2026-01-29
8c55ef1chore(l1b): polish code a bit - 2026-01-29
296ec1afix(test_plots): correct label - 2026-01-29
1239d01fix(misc): use make_valid in load_glacier_outlines - 2026-01-29
81be744chore(misc): format - 2026-01-29
a9d55a7chore: update readme - 2026-01-29
d87a946chore: update docker - 2026-01-29
075adc2Add pixi compatibility and installation instructions - 2026-01-30
09f7c90fix(misc): fix index issue - 2026-01-30
bdd8a0cMerge pull request #52 from Tanmay-Ts/add-pixi-support - 2026-02-01
436de23!fix(misc): update default DEM names - 2026-02-01
5faa58aMerge remote-tracking branch 'origin' into develop - 2026-02-11
117c755chore: add opt.dep. group production - 2026-02-11
89d1447fix(misc): fix building paths from config - 2026-02-11
3a94789chore(l2): simplify code - 2026-02-11
27c7079fix(l3): fix handling even agg. windows - 2026-02-11
bb4d0f4fix(l2): guard grid chunk split for small data - 2026-02-11
a9a61d1fix(misc): handle default dir in ESRI conversion - 2026-02-11
e67840bfix(gis): robust ESRI feather target path - 2026-02-11
9973b3ffix(l4): guard optional filled_flag updates - 2026-02-11
97c1f26fix(l3): raise for unsupported joined L2 aggregation - 2026-02-11
a39ba02fix(l4): raise reference deviation sanity check - 2026-02-11
bf819ebfix(gis): accept scalar lon/lat in CRS selection - 2026-02-11
b2ccf6cfix(l2): replace assert-based stale cache checks - 2026-02-11
eab85a5fix(l2): handle unnamed index in l1b conversion - 2026-02-11
8e0f77afix(l2): guard empty grid aggregation paths - 2026-02-11
40ab2e4fix(l1b): replace assert-only threshold checks - 2026-02-11
ba8ea86fix(l4): call local elevation reference helper - 2026-02-11
f5860f6fix(l4): use coefficient arrays in trend reconstruction - 2026-02-11
cf15928fix(misc): fail clearly when region lookup is empty - 2026-02-11
4daf415fix(l3): honor l2_type when reading cache chunks - 2026-02-11
3d652bafix(gis): fail clearly when no o2 region matches - 2026-02-12
59443cbfix(l1b): narrow xarray timedelta patch version gate - 2026-02-12
a48cd87docs(cryoswath): revise RTD pages and API docstrings - 2026-02-12
13a0e48docs(sphinx): refine docs style and refresh README warnings - 2026-02-12
7af912ddocs(theme): switch to pydata and clean sidebar/header - 2026-02-13
d8ec019docs(linkcode): resolve source refs from git metadata - 2026-02-13
de9fda1docs: move env warning to install pages and align manager wording - 2026-02-13
d5e1cefmerge(main): integrate develop (docs refresh, linkcode hardening, and processing fixes) - 2026-02-14
8c86f40fix(l2): detect CPU cores cross-platform (refs #38) - 2026-02-14
100418cfix(l2): use spawn context for multiprocessing safety (refs #35) - 2026-02-14
eadd824fix(l3): reindex chunk time to contiguous zarr regions (refs #37) - 2026-02-14
5ce48ecdocs: add CRISTAL portability checklist (refs #42) - 2026-02-14
4e49632build: document and harden pixi workflow (refs #51) - 2026-02-14
bf771bcrefactor(l1b): clarify download status messages (refs #20) - 2026-02-14
7b1d3b8Pin xarray below 2025.12 across dependency manifests - 2026-02-14
b66e084chore: finalize xarray<2025.12 regression fix - 2026-02-14
0761831build(deps): align dependency policy and add py3.13 CI coverage - 2026-02-14
a00e721fix(test_plots): update dem_transect - 2026-02-14
e6aec9efix(l2): fix missing column issue - 2026-02-14
822a044test(reports): rename notebooks and add Snakemake conda workflow - 2026-02-15
7f36903fix(tests): remove debugging helpers - 2026-02-15
5d85e9echore(test): add non-failing anonymous FTP login probe - 2026-02-15
4e9d342fix(misc): recover stale cache backup and guard writes with lock - 2026-02-15
3eec709fix(l3): handle empty roll aggregations in build_dataset - 2026-02-15
f2da694fix(tutorial): use misc.fill_missing_coords in step-by-step notebook - 2026-02-15
c376355build(pixi): modernize pyproject metadata and dependency ownership - 2026-02-15
e8929b5fix(tutorial): call l4.append_elevation_reference in step-by-step notebook - 2026-02-15
637377afix(tutorial): call l4.fill_voids in step-by-step notebook - 2026-02-15
9905f68build: scope pixi tasks by feature and align setup docs - 2026-02-15
ad7410abuild(pixi): pin runtime solve strategy and add locked env workflow - 2026-02-15
6b98cc7fix(tutorial): replace removed misc.load_basins in process-first-swath - 2026-02-15
8c725d4test(tutorials): add snakemake workflow for tutorial notebooks - 2026-02-15
1840ad0test(pipeline): add tox entrypoint, config templates, and netrc helper tests - 2026-02-15
5bf70aftest(pipeline): add tutorial notebook workflow and update tutorial API calls - 2026-02-15
ee58532merge(build): integrate codex/pixi-followup-envdocs into main