From 44ae3da34832c628f1633761aeef3d6fb4600bc0 Mon Sep 17 00:00:00 2001 From: tjkessler Date: Fri, 21 Aug 2026 09:16:04 -0400 Subject: [PATCH] Record Zenodo DOI for the v0.15.0 software archive Co-authored-by: Cursor --- CHANGELOG.md | 4 ++-- CITATION.cff | 4 ++-- README.md | 4 ++-- paper.bib | 4 ++-- paper.md | 4 ++-- tests/package/test_docs.py | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 492b1d8..b85225d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -409,8 +409,8 @@ latent operator contract are unchanged (`koopman=None` still selects - Factory defaults are unchanged vs 0.14.0 (`koopman=None` → `"pernode"`; `sparsity="dense"`; AMP off). `FORMAT_VERSION` stays 1. -- The Zenodo DOI remains `10.5281/zenodo.21926723` until a new version - DOI is minted at the 0.15 tag. +- Zenodo version DOI: + [10.5281/zenodo.22045904](https://doi.org/10.5281/zenodo.22045904). ## [0.14.0] - 2026-08-13 diff --git a/CITATION.cff b/CITATION.cff index 90304ad..3ceffaf 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -15,10 +15,10 @@ url: "https://koopmangraph.readthedocs.io/" license: Apache-2.0 version: 0.15.0 date-released: 2026-08-19 -doi: 10.5281/zenodo.21926723 +doi: 10.5281/zenodo.22045904 identifiers: - type: doi - value: 10.5281/zenodo.21926723 + value: 10.5281/zenodo.22045904 description: "Archived software (version DOI)" keywords: - koopman-operator diff --git a/README.md b/README.md index 32a9aa2..6180190 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ **Topology-aware Koopman autoencoders for forecasting and analyzing networked dynamics** [![Tests](https://github.com/tjkessler/KoopmanGraph/actions/workflows/ci.yml/badge.svg)](https://github.com/tjkessler/KoopmanGraph/actions/workflows/ci.yml) -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.21926723.svg)](https://doi.org/10.5281/zenodo.21926723) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22045904.svg)](https://doi.org/10.5281/zenodo.22045904) [![PyPI version](https://img.shields.io/pypi/v/koopman-graph)](https://pypi.org/project/koopman-graph/) [![codecov](https://codecov.io/gh/tjkessler/KoopmanGraph/graph/badge.svg)](https://codecov.io/gh/tjkessler/KoopmanGraph) [![Documentation Status](https://readthedocs.org/projects/koopmangraph/badge/?version=latest)](https://koopmangraph.readthedocs.io/en/latest/?badge=latest) @@ -180,7 +180,7 @@ If you use KoopmanGraph in research, please cite: title = {KoopmanGraph: Topology-Aware Koopman Autoencoders for Networked Dynamics}, year = {2026}, publisher = {Zenodo}, - doi = {10.5281/zenodo.21926723}, + doi = {10.5281/zenodo.22045904}, url = {https://github.com/tjkessler/KoopmanGraph}, version = {0.15.0}, } diff --git a/paper.bib b/paper.bib index c1cd4b8..8422aa2 100644 --- a/paper.bib +++ b/paper.bib @@ -211,8 +211,8 @@ @misc{koopmangraph2026 title = {{KoopmanGraph}: Topology-Aware {Koopman} Autoencoders for Networked Dynamics}, year = {2026}, publisher = {Zenodo}, - doi = {10.5281/zenodo.21926723}, - url = {https://doi.org/10.5281/zenodo.21926723}, + doi = {10.5281/zenodo.22045904}, + url = {https://doi.org/10.5281/zenodo.22045904}, version = {0.15.0} } diff --git a/paper.md b/paper.md index a2bc850..95d3bd6 100644 --- a/paper.md +++ b/paper.md @@ -55,9 +55,9 @@ Tutorials under `examples/` cover synthetic dynamics, IEEE 118-bus, METR-LA, and # Research impact statement -`KoopmanGraph` is research software with no publications or downstream adoptions to cite at submission. Impact is shown through reproducible tutorials on synthetic, IEEE 118-bus, METR-LA, and epidemic graphs---per-horizon evaluation, topology-versus-vector baselines in the spirit of prior GNN-versus-Koopman power-grid studies [@Nandanoori2022], dynamic topology, spectral/stability analysis, and latent-space control---plus v0.5.0 tooling and notebooks for deep-ensemble / latent-Gaussian uncertainty, hierarchical multi-resolution forecasting, auxiliary-spectral continuous generators, and sparsity / worst-case reconstruction losses (with a GNN encoder zoo). Open artifacts include PyPI releases through v0.14.0, CI with coverage and notebook smoke tests, Sphinx docs, and a security policy. +`KoopmanGraph` is research software with no publications or downstream adoptions to cite at submission. Impact is shown through reproducible tutorials on synthetic, IEEE 118-bus, METR-LA, and epidemic graphs---per-horizon evaluation, topology-versus-vector baselines in the spirit of prior GNN-versus-Koopman power-grid studies [@Nandanoori2022], dynamic topology, spectral/stability analysis, and latent-space control---plus v0.5.0 tooling and notebooks for deep-ensemble / latent-Gaussian uncertainty, hierarchical multi-resolution forecasting, auxiliary-spectral continuous generators, and sparsity / worst-case reconstruction losses (with a GNN encoder zoo). Open artifacts include PyPI releases through v0.15.0, CI with coverage and notebook smoke tests, Sphinx docs, and a security policy. -The author uses the library to experiment with Koopman forecasting on networked systems and to lower the barrier for topology-aware Koopman models on standard PyG workflows. Zenodo archives are available through v0.14.0 (DOI: \url{https://doi.org/10.5281/zenodo.21926723}; earlier version DOIs are linked from that record). +The author uses the library to experiment with Koopman forecasting on networked systems and to lower the barrier for topology-aware Koopman models on standard PyG workflows. Zenodo archives are available through v0.15.0 (DOI: \url{https://doi.org/10.5281/zenodo.22045904}; earlier version DOIs are linked from that record). # Conclusion diff --git a/tests/package/test_docs.py b/tests/package/test_docs.py index 5b65768..a3f187f 100644 --- a/tests/package/test_docs.py +++ b/tests/package/test_docs.py @@ -414,7 +414,7 @@ def test_release_metadata_versions_agree() -> None: assert "## [Unreleased]" in changelog assert f"## [{version}]" in changelog assert _cff_top_level_field(cff_text, "version") == version - assert _cff_top_level_field(cff_text, "doi") == "10.5281/zenodo.21926723" + assert _cff_top_level_field(cff_text, "doi") == "10.5281/zenodo.22045904" assert f"version = {{{version}}}" in readme assert f"Version **{version}**" in index bib_version = _bib_field(_bib_entry(bib_text, _SOFTWARE_BIB_KEY), "version")