Releases#
Brief notes describing each release and what’s new.
Project milestones describe future plans.
0.3.6#
Released 2026-06-24.
Fixes#
Fix broken RST indentation in
psic/sixcmode tables. 123Route
n_hatextra to the mode’s required reference vector. 123
Maintenance#
Bump
ad_hoc_diffractometerfloor to>=0.11.3. 123
0.3.5#
Released 2026-06-23.
New Features#
Make
diffcalc-corean optional dependency (groupdiffcalc). 119
Maintenance#
Enforce single-line imports via ruff isort
force-single-line. 120
0.3.4#
Released 2026-06-22.
Breaking Changes#
Rename
AdHocSolver.exit_angletoemergence_angle. 117Rename ad_hoc
alpha_i/beta_outextras toincidence/emergence. 117Rename ad_hoc surface modes to
fixed_incidence_*/fixed_emergence_*/specular_*. 117
New Features#
Add
AdHocSolver.update_mode_constraintsfor fixed-axis defaults. 114Add
DiffcalcSolver.update_mode_constraintsfor user-mode value overrides. 114
Enhancements#
Use
ConstraintSet.with_constraint_values()inAdHocSolver.extrassetter. 114
Documentation#
Document how to override fixed-axis default values in the
ad_hocguide. 114Document how to set the reference vector (n̂) in the
ad_hocguide. 114Refresh
ad_hocguide and geometry tables for ad_hoc v0.11.2 naming. 117
Maintenance#
Bump
ad_hoc_diffractometerfloor to>=0.11.1. 114Bump
ad_hoc_diffractometerfloor to>=0.11.2. 117Upgrade
ad_hoc_diffractometerfrom PyPI in cross-validation CI. 117Unify copyright automation across hklpy2 family. 112
0.3.3#
Released 2026-05-21.
New Features#
Persist
AdHocSolvergeometry modifications through hklpy2simulator_from_config. 108Persist
DiffcalcSolveruser-registered modes through hklpy2simulator_from_config. 108
Enhancements#
Match
DiffcalcSolvermode names by token set, ignoring constraint order. 109
Fixes#
Fix
DiffcalcSolver.axes_wKeyErrorfor user-registered modes. 109
Maintenance#
Bump
hklpy2floor to>=0.7.1for uniformsolver_kwargsforwarding. 108
0.3.2#
Released 2026-05-20.
Breaking Changes#
Realign
DiffcalcSolverbisect modes to canonical vertical/horizontal pairings. 97Rename all
DiffcalcSolvermodes; drop4S+2Dprefix and usefixed_<axis>form. 97Set
DiffcalcSolverdefault mode tobisect fixed_mu fixed_nu(canonical vertical bisector). 97
New Features#
Add
cross-validation.ymlworkflow running libhkl-backed tests via conda-forge. 65Add
DiffcalcSolver.register_mode/unregister_modefor runtime constraint sets. 106Add horizontal four-circle cross-validation group against
hkl_soleil. 67Add horizontal kappa cross-validation group against
hkl_soleil. 75Add six-circle bisecting peers to cross-validation groups. 64
Add vertical four-circle cross-validation suite against
hkl_soleil. 50Add vertical kappa four-circle cross-validation group against
hkl_soleil. 66Expand cross-validation sample set to all seven crystal systems. 69
Surface
ad_hoc_diffractometer.referencehelpers onAdHocSolver. 101
Enhancements#
Add cross-reference table mapping common-convention names to diffcalc modes. 97
Add guide-regression smoke test to catch API drift in how-to guides. 88
Add regression test documenting
ad_hoc/kappa6c bisecting_horizontalreflection-pattern gap. 77Add regression test documenting
ad_hoc/psic bisecting_horizontalasymmetric-reflection gap. 71Document derived-quantity access (ψ, α_i, β_out, n_az, OMEGA) for
AdHocSolver. 63Expand sapphire cross-validation matrix with
(1, 1, 3)and(1, 1, 6). 77
Fixes#
Accept scalar default
n_hatfromhklpy2Core inAdHocSolverextras setter. 81Clarify guide wording: diffractometer
forward()returns a single chosen solution. 87Correct
ad_hocanddiffcalcguides to use current hklpy2 API. 86Correct horizontal eulerian cross-validation reference to
E4CH. 78Honour
r1/r2arguments inAdHocSolver.calculate_UB. 56Harden cross-validation bootstrap with deterministic retry on rough-UB
forward()rejection. 83Honour
r1/r2arguments inDiffcalcSolver.calculate_UB. 58Lift
ad_hocpsic/kappa6cbisecting_horizontalknown-gap markers. 99Pin
python=3.14incross-validation.ymlto narrow K6C triclinic env skew. 83Track
ad_hochorizontal-bisecting rhombohedral(1, 1, 0)gap as known-gap. 69Track
ad_hockappa-vertical sapphire(0, 1, 2)regression as new known-gap. 99Track libhkl rhombohedral
(0, 0, 6)B-matrix disagreements astth-disagreement. 68
Maintenance#
Add focused key-package-version diagnostic step to
cross-validation.yml. 83Bump
ad_hoc_diffractometerfloor to>=0.11.0. 99Pip-upgrade
ad_hoc_diffractometerincross-validation.ymlahead of conda-forge. 99Remove cross-references between solver implementations. 60
0.3.1#
Released 2026-05-08.
Documentation#
Document
register_geometry_filein thead_hocguide. 51Refresh
ad_hocgeometry mode tables forad_hoc_diffractometerv0.10.0. 51Update
ad_hoc_diffractometerdocumentation URLs tobcda-aps.github.io. 53
Fixes#
Populate version-switcher dropdown from existing gh-pages version directories. 54
Maintenance#
Consolidate content on README and home pages. 54
0.3.0#
Released 2026-04-27.
Fixes#
Expose mode extras (
psi,alpha_i,beta_out,h2/k2/l2,n_hat) forad_hocgeometries. 44Report
ad_hocanddiffcalcsolver versions from the backend library. 44Translate
kappa_alpha_degkeyword to the underlyingalpha_degargument when constructing kappa geometries. 46
Maintenance#
CI: add Python 3.14-dev to the test matrix (allowed to fail). 48
Enforce 100% line and branch coverage in CI (
fail_under = 100inpyproject.toml). 46Require
ad_hoc_diffractometer >= 0.8.0(true virtual bisecting in kappa modes). 44
0.2.2#
Released 2026-04-26.
Enhancements#
Docs: add writable(s) and extra(s) columns to geometry mode tables; link each geometry to its backend library documentation. 42
Fixes#
CI: serialize
gh-pagesdeploys to prevent race condition betweenmainand tag pushes. 42
Maintenance#
CI: add concurrency limits to all workflows (
docs.yml,ci.yml,pypi.yml). 42
0.2.1#
Released 2026-04-26.
Enhancements#
Add all
ad_hocsolver geometries (10 geometries, modes, and axes) togeometries.rst; addad_hocsolver to the “Available solvers” table inusage.rst. 40Add per-solver how-to guides (
guide_diffcalc.rst,guide_ad_hoc.rst) following the Diataxis framework. 40Change
diffcalcdefault mode from4S+2D mu_chi_phi_fixedto4S+2D bisect_eta_fixed nu_fixed(vertical bisector). 40
Maintenance#
Bump
ad_hoc_diffractometerminimum from>=0.5.0to>=0.6.0; update docstring cross-reference (geometry.pyrenamed todiffractometer.py); updategeometries.rstfor new psic and kappa6c mode names.
0.2.0#
Released 2026-04-20.
New Features#
Add
AdHocSolverwrapping thead_hoc_diffractometerlibrary. 1
Fixes#
_summary_dictreports correct writable axes per mode. 37
0.1.9#
Released 2026-04-17.
Enhancements#
Add HOWTO: benchmark a solver geometry; include downloadable configuration files for each supported geometry. 35
Guard
_apply_mode_constraints()to skip rebuilding diffcalc objects when the mode is unchanged, reducingforward()overhead by ~9%. 33
Maintenance#
Refactor
scripts/stamp_release.py: read VERSION from RST comment block title (SEMVERauto-bumps patch; PEP 440 explicit versions accepted); add--dry-runand--versionoptions; always insertSEMVERas next block title. Usepackaging.version.Versionfor version comparison.Add
packagingto dev dependencies inpyproject.toml.
0.1.8#
Released 2026-04-17.
Maintenance#
Pin
hklpy2>=0.6.0in dependencies;hklpy2.miscwas removed in that release. 31
0.1.7#
Released 2026-04-17.
Fixes#
Fix
ModuleNotFoundError: No module named 'hklpy2.misc'; update imports tohklpy2.exceptionsandhklpy2.utilsfor compatibility with hklpy2 ≥ 0.6.0. 31Fix
forward()raisingAttributeError: no attribute 'set_reals'; addset_reals()andUBsetter, change default mode tofixed_mu fixed_chi fixed_phi. 29Fix
calc_UB()raisingSolverError: Lattice must be set; overridesamplesetter to push lattice into diffcalc. 25Fix
wh()raisingSolverError: UB matrix has not been setbefore reflections are added. 24
Maintenance#
Document mode naming convention, bisector mode analysis, and extensibility limits in
geometries.rst. 29
0.1.6#
Released 2026-04-13.
Fixes#
Fix
extra_axis_namesandextras: always[]/{}(no non-motor extra parameters in this geometry). Addaxes_wproperty so hklpy2 can identify axes computed byforward()and enable the presets feature for constant axes. 17Fix usage documentation: use
hklpy2.creator()as the standard entry point; describe all solvers generically. 18
Maintenance#
Add root redirect page to GitHub Pages.
Add usage guide for hklpy2-solvers with hklpy2.
0.1.5#
Released 2026-04-13.
New Features#
Add Sphinx documentation framework with versioned GitHub Pages deployment. 15
0.1.4#
Released 2026-04-12.
Fixes#
Fix PyPI publish workflow trigger. 13
Maintenance#
Bump
actions/checkoutfrom 4 to 6.Bump
actions/download-artifactfrom 4 to 8.Bump
actions/setup-pythonfrom 5 to 6.Bump
actions/upload-artifactfrom 4 to 7.
0.1.3#
Released 2026-04-12.
Fixes#
Fix CI workflow: pytest path and coverage source. 11
0.1.2#
Released 2026-04-12.
Maintenance#
Add solvers table and badges to README.
Apply ruff formatting to
diffcalc_solver.py.
0.1.1#
Released 2026-04-12.
Maintenance#
Add CI workflow (pytest on Python 3.10–3.13, ruff lint/format).
Add PyPI trusted publishing workflow.
Add dependabot for GitHub Actions and pip dependencies.
0.1.0#
Released 2026-04-12.
New Features#
Add
diffcalcsolver adapter wrapping diffcalc-core (You 1999, 4S+2D six-circle geometry). 2