Skip to content

Releases: det-lab/phonon-charge-pdf

v2.1.0

Choose a tag to compare

@villaa villaa released this 17 Oct 19:38
28f561c

Promotes ppq_dist.py (Y, Nbar, sigp, sigq, PErN, PErG, aN, bN, cN, PpqExp, PpqFullN, PpqFullG, PpqN_safe_inspect(_vec), PpqG_safe_inspect(_vec), integrate_g_safe_inspect, consecutive, gaussian) from python/internal/ to a third public, documented, pure-Python entrypoint alongside PpqPDF and generate_events. No numerical behavior changes. See PR #43 for the full writeup.

v2.0.2

Choose a tag to compare

@villaa villaa released this 17 Oct 05:15
303b87d

Hotfix: `band_distribution.version` fell back to `"0+unknown"` on every real
install -- `importlib.metadata.version(name)` looked up the import name
instead of the installed PyPI distribution name (`phonon-charge-pdf`), which
are now deliberately different. Hardcodes the lookup to the actual
distribution name.

No other code or physics changes.

v2.0.1

Choose a tag to compare

@villaa villaa released this 17 Oct 04:58
68329e2

Hotfix: repo-rename URL corrections (pyproject.toml, README.md, CITATION.cff,
ford.md) after det-lab/band_distribution -> det-lab/phonon-charge-pdf, plus the
software's own Zenodo concept DOI added to CITATION.cff
(10.5281/zenodo.23049123).

No code or physics changes. Corrects the stale GitHub URL baked into v2.0.0's
published PyPI metadata.

v2.0.0

Choose a tag to compare

@villaa villaa released this 17 Oct 04:21
729b4a7

Absorbs the non-KDE simulation code extraction from nrFanoII_paper2022 into this
package as a properly-versioned, pip-installable Python library, alongside the
existing Fortran core.

  • pq_dist_v10.py renamed to ppq_dist.py, dropping the filename-baked version
  • Portable Fortran-library loader for pip installs outside a git checkout
  • New public python/event_generator.py module (generate_events/generate_NR_events/
    generate_ER_events), matching nrFanoII's generate_events() DataFrame contract
  • CI validates ppq_dist.py and event_generator.py against the compiled Fortran
    library on every push
  • band_distribution is pip-installable (pip install -e .[test]); version derived
    from the nearest git tag via setuptools-scm
  • PpqPDF now fails fast and clearly at construction when the Fortran library
    isn't available
  • Published to PyPI as phonon-charge-pdf
    (import name stays band_distribution)

v1.1.5

Choose a tag to compare

@villaa villaa released this 17 Oct 04:23

Closes out the commits accumulated on main since v1.1.4 as a released baseline
before bootstrapping git flow: develop branches off this point, and the 1.1.x
line stays hotfix-able from main up to the v2.0.0 cut.

  • profile_driver.f90 had p0/p10's values copy-pasted into q0/q10 -- fixed
  • python/ split into internal/ (private) and cli/ (table-building tools)
  • flang 22 CI coverage added, deprecated macos-14 runner swapped for macos-26
  • README reorganized around getting started, usage, verification & validation,
    and building from source; assorted doc fixes

v1.1.4

Choose a tag to compare

@pibion pibion released this 01 Oct 19:16

Python-only release: no Fortran changes.

  • refactor: one clear entrypoint. python/ppqfort_pdf.py -> python/_ppqfort_bindings.py (private, underscore-prefixed, not a public API); make_ppqn_pdf/make_ppqg_pdf -> make_ppqn_pdf_unnormalized/make_ppqg_pdf_unnormalized. PpqPDF (python/ppq_pdf.py) is now documented as the one intended entrypoint for a fit or MCMC, both in its own module docstring and in a new README section placed before the testing-mechanics content.
  • Every test that legitimately needs the raw unnormalized PDF now explains why in a comment at its import, rather than silently modeling the wrong usage pattern for anyone reading the tests to learn the library.

If you pulled v1.1.3, no numerical results are affected — this is a naming/discoverability fix, not a correctness change. Pull v1.1.4 to get the clearer module names and README.

v1.1.3

Choose a tag to compare

@pibion pibion released this 30 Sep 18:50

Stops shipping Intel's ifx compiler in images meant to be published.

  • fix: environment.yaml unconditionally listed ifx_linux-64, shared by every Dockerfile -- so Dockerfile_llvm, despite compiling with system flang and being chosen specifically to avoid Intel-redistribution questions, was silently shipping ifx binaries. ifx_linux-64 is now added only where actually used (Dockerfile_intel/_tau_intel, via an explicit conda install on top of the shared environment).
  • fix: Dockerfile_jupyter rewritten to compile with flang on gmao/llvm-flang (same base as Dockerfile_llvm) instead of ifx on quay.io/jupyter/base-notebook -- so it can be published too. The documented docker run mount point, port, and "Python (band)" kernel are unchanged.
  • fix: Dockerfile_intel's own default CMD crashed at container start (LD_LIBRARY_PATH never included the conda env's lib dir, where libiomp5.so lives) -- pre-existing, found while verifying this fix.
  • Verified by building and testing all 5 Dockerfiles, including that ifx is genuinely absent from the llvm and jupyter images and that Dockerfile_intel's CMD now runs a full chi-square physics test to completion.

v1.1.2

Choose a tag to compare

@pibion pibion released this 30 Sep 18:03

Version reporting and container completeness fixes.

  • fix: PpqFort_version() used to have hand-typed integer constants duplicating fpm.toml's version field; it drifted (v1.1.0 and v1.1.1 both reported 1.1.0). Now generated from fpm.toml by scripts/generate_version_include.py (every Dockerfile runs it; CI generates it inline for containers with no guaranteed python3). test/python/test_version.py is the regression guard.
  • fix: Dockerfile_jupyter and Dockerfile_tau_intel now fetch the registered normalization tables at build time too (previously only gfortran/intel/llvm did).
  • fix(ci): fixed the resulting CI breakage from the version-include change (generator step was missing from the workflow entirely on the first push).
  • Verified by building and testing all 5 Dockerfiles (gfortran, intel, llvm, jupyter, tau_intel): tables present and hash-correct, ppqfort_pdf.version() reports (1, 1, 2) in each.
  • Found but not fixed (pre-existing, unrelated): Dockerfile_intel's own default CMD crashes at container start — its LD_LIBRARY_PATH never includes the conda env's lib dir, where libiomp5.so lives.

v1.1.1

Choose a tag to compare

@pibion pibion released this 30 Sep 16:53

Fixes v1.1.0, which shipped with a build-breaking bug and an unpopulated table registry.

  • fix: app/profile_region.f90 called functions renamed months earlier (PpqN_region_adaptive/PpqG_region_adaptive -> PpqN_region/PpqG_region), breaking fpm build under every compiler.
  • feat: the Ep 2.5-350 / Eq 0.75-200 normalization tables are now registered (doi:10.5281/zenodo.23048216) and fetched by name via python/normtables.py.
  • docs: a Fits and MCMC with the tables section in the README (prior bounds, check_points, fit/MAP bounds).
  • ci: dropped two flang-21 macOS matrix legs that took ~4h per run (no Homebrew bottle available) with no loss of real coverage.

v1.1.0

Choose a tag to compare

@pibion pibion released this 30 Sep 00:08

What's Changed

Full Changelog: v0.9.0...v1.1.0