Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## 1.4.0 — 2026-11-07

First release after the `v1.0.0` tag (2026-07-10) and the first one
where the in-code version matches the tag. Code-identical to 0.4.0:
the number jump is versioning alignment with the release line, not a
feature delta. The 0.2.0-0.4.0 entries below are the actual change
history this release ships — the correctness overhaul (F1-F8, R1-R3),
the full Riemannian Adam with portable checkpoints (C1-C5, A1-A4,
H1-H4), the audit fixes (crash-safe reinitialisation, corrupted
counters, weight-decay-mode warnings) and the scalar metric-weighted
second moment, verified against independent oracles: multi-step
trajectory equality with geoopt's `RiemannianAdam` on
`PoincareBallExact` (~2e-7), exact equality with
`torch.optim.Adam`/`AdamW` at `k=0`, end-to-end descent on a hyperbolic
objective and near-boundary stress coverage.


## 0.4.0 — 2026-11-07

The full-verification pass: the optimizer is now checked against two
Expand Down
2 changes: 1 addition & 1 deletion dsa/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from .optimizer import DiskSparseRiemannianAdam
from .async_writer import AsyncDiskWriter, WriterState

__version__ = "0.4.0"
__version__ = "1.4.0"

__all__ = ["DiskSparseRiemannianAdam", "AsyncDiskWriter", "WriterState"]
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "dsa"
version = "0.4.0"
version = "1.4.0"
description = "Disk Sparse Adam (DSA): an out-of-core sparse Riemannian Adam optimizer for PyTorch"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion tests/test_packaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def test_version_matches_package():
assert data["project"]["version"] == dsa.__version__
else: # pragma: no cover
text = open(os.path.join(ROOT, "pyproject.toml")).read()
assert re.search(r'version\s*=\s*"0\.4\.0"', text)
assert re.search(r'version\s*=\s*"1\.4\.0"', text)


def test_torch_floor_matches_readme_badge():
Expand Down
Loading