Changelog¶
All notable changes to synthpriv are documented here. Format follows
Keep a Changelog and SemVer.
Unreleased¶
Added¶
README: publish-workflow badge; phase-table rows for the publication polish commits (
c19fc3c,58a144a).CHANGELOG.md:[Unreleased]section and Keep-a-Changelog comparison link definitions.Documentation site: Sphinx + Furo + autodoc/Napoleon (numpydoc-style docstrings) + MyST, with quickstart, privacy, sweep/benchmark, CLI and API reference pages;
docs.ymlbuilds with-W(warnings = errors) and deploys to GitHub Pages viaactions/deploy-pages;docsextra; theDocumentationproject URL now points to https://tzinny-dev.github.io/synthpriv/.Versioned documentation with mike: tag pushes deploy the
X.Ydocs line (aliaslatest, site root redirected to it) andmainpushes deploydev; the Sphinx build renders a version selector in Furo’s sidebar fromversions.json(docs/deploy_version.py,DOCS_BASE_URL/DOCS_VERSION).Custom-domain ready Pages deployment: the URLs and Sphinx
html_baseurlcome fromactions/configure-pages(base_url), so moving the site to its own domain needs no code change (CNAMEis not required for Actions-based publishing).
Changed¶
publish.ymlhardening:tests gate: the tag pipeline now runs the full test matrix before
build/publish(a tag no longer publishes untested code).idempotent re-runs:
skip-existingon the PyPI upload andgh release view || create(upload--clobber) for the GitHub release.post-publish verification: new
verify-pypijob installssynthpriv==<version>from real PyPI (with propagation retries) and checksimportlib.metadataversion +synthpriv --help.twine check --strict.
Known limitations¶
Python 3.13 unsupported:
anonymeter 1.1.0(latest) pinsnumpy>=1.22,<1.27, and numpy <1.27 ships no 3.13 wheels, so installation on 3.13 fails withResolutionImpossible(CI run35905206866;sdv/sdmetricsthemselves already support 3.13).requires-pythonis now capped to>=3.10,<3.13(effective from the next release) sopipfails fast with a clear message; drop the cap when anonymeter relaxes the numpy pin.
0.2.1 - 2026-09-21¶
Packaging and release-pipeline polish. No changes to the public API.
Added¶
Single-source version:
pyproject.tomlreadsversiondynamically fromsrc/synthpriv/__init__.py(importlib.metadata.version("synthpriv")compatible).publish.ymlworkflow: tagv*→ build → tag/version guard → PyPI (Trusted Publisher OIDC + PEP 740 attestations) → GitHub release with artifacts. The release is only created after a successful PyPI publish.MANIFEST.in: sdist now shipsCHANGELOG.md,examples/andtests/.CI: test matrix 3.10/3.11/3.12 +
packagejob (build,twine check, wheel smoke test).
Changed¶
PEP 639 metadata:
license-filesexplicitly declared;Project-URLsDocumentationandChangelogadded (side links on PyPI).README: PyPI/Python/License/CI badges;
pip install synthprivquick install; CUDA/torch note.
0.2.0 - 2026-09-15¶
Beta validated: clean PyPI install, functional smoke (dp-gan/dp-copula),
fast + slow suites, E2E demo. Same content as 0.2.0b1, promoted to final.
0.2.0b1 - 2026-09-15¶
Beta pre-release: public API frozen for the 0.2.x line.
Added¶
run_epsilon_sweep(..., generator_key="dp-gan"|"dp-copula"): sweep any DP-capable generator; rows carrymodel,SweepResult.generatorrecords it.run_benchmark(..., dp_generator="dp-gan"): benchmark any DP generator vs non-DP SDV baselines;BenchmarkResult.dp_generator,kind="dp"|"baseline",dp_value()/utility_gap()/best_dp_point()resolve the configured generator.CLI
sweep/benchmark --generator/-g [dp-gan|dp-copula]with dp-gan-only flag validation (--numeric/--rectify-marginals/--ecdf-epsilon).tests/test_dp_matrix.py: dp-copula sweep/benchmark matrix (measured==target,kind=dp, dynamic report title)..github/workflows/tests.yml: fast CI (pip install -e .[dev],pytest -q).
Changed¶
BREAKING (beta freeze reference):
BenchmarkResultrows usekind="dp"instead of"dp-gan"; usemodelfor the generator name andresult.dp_generatorfor the swept generator.SweepResultrows now includemodel; reports/footers no longer assume RDP-only (dp-copulais pure DP).Docs fully in English;
READMECLI/demo/tests updated.
Fixed¶
Stale
phase 0.1 / dp-gan onlydocstrings (mechanisms,assurance,pipelineleftover Spanish comments).
0.1.0 - 2026-09-08¶
Alpha: tabular synthesis with differential privacy (dp-gan DP-SGD,
dp-copula pure DP), DP marginal ECDFs, budget split, benchmark/sweep, HTML
report, CLI, assert_dp, persistence.