Releases: SPONGEMM/XpongeCPP
Release list
XpongeCPP v0.2.10
Fix SPONGE bundle exports to group linked molecules in contiguous atom order, matching raw export. Preserve source atom mappings and remap CVs, typed virtual atoms, distance constraints, positional reference coordinates and SITS selections. Native and Python bundle entry points reject remaining noncontiguous components. Based on v0.2.9; local built-wheel validation: 130 API/bundle tests passed with no OOM kills. PyPI wheels are published by the release workflow.
XpongeCPP v0.2.9
Compatibility target: Xponge 1.7.1.
This release restores XPONGE-compatible ResidueLink objects and single-link query/removal APIs while preserving XpongeCPP's flattened native connection storage. It also fixes the legacy RDKit helper import, adds the OPLS TIP4P module, and keeps link lookup/removal in the C++ core.
HDF5 is now built as a private static dependency on Windows, Linux, and macOS, isolating the native core from h5py's HDF5 runtime. Windows scientific tests use single-threaded BLAS/OpenMP settings; Unix platforms keep their default parallel settings.
Validation on Windows: 711 passed, 29 skipped, 1 expected failure. The release wheel was rebuilt as XpongeCPP 0.2.9, verified to have no dynamic hdf5.dll dependency, and tested with PySCF 2.13.1 SCF, ESP, Hessian, and RESP paths.
XpongeCPP v0.2.8
Compatibility target: Xponge 1.7.1.
This patch restores Python instance attributes on the pybind-backed Assign type, allowing RESP fitting to retain charge_fit_diagnostics and charge_fit_metadata. It fixes SPONGE input generation failures seen after RESP parameterization and adds regression coverage for the compatibility contract.
Validation includes the complete compatibility suite against official Xponge 1.7.1, a real PySCF RESP calculation, cross-platform CI, source distribution checks, and isolated wheel installation.
XpongeCPP v0.2.7
What's Changed
- Codex/bundled io by @xiaoxuan-yu in #1
- Release XpongeCPP 0.2.0 with Xponge-origin 1.7b8 parity by @yuhaosimba in #2
- Fix/typed cv virtual atoms by @xiaoxuan-yu in #3
- feat(mdanalysis): restore legacy sponge dat support by @xiaoxuan-yu in #4
New Contributors
- @xiaoxuan-yu made their first contribution in #1
- @yuhaosimba made their first contribution in #2
Full Changelog: v0.2.6...v0.2.7
XpongeCPP v0.2.6
Align QM backend selection with Xponge-origin 1.7b10: prefer an available PySCF backend, fall back to Psi4, and report a clear error when neither is installed. Windows packaging continues to skip automatic PySCF installation.
XpongeCPP 0.2.5
Preserve source-atom identity across raw SPONGE residue reordering. The native saver now exposes the saved atom permutation and the compatibility layer applies it to caller-provided source IDs, keeping Mokda atom-order mappings and trajectory topology aligned for linked components and repeated solvent residues.\n\nValidation: 716 passed, 10 skipped, 1 expected xfail; focused raw reorder and native bundle tests pass; no OOM under the governed test gate.
XpongeCPP 0.2.4
Compatibility target: Xponge-origin 1.7b9.
This compatibility patch preserves residue-link bonds in public MOL2 exports, keeps mixed standard/GAFF systems intact during GAFF or GAFF2 parameterization, and aligns the legacy MDAnalysis raw-SPONGE reader with Xponge format hints.
Validation: 715 tests passed, 10 optional skips, 1 expected xfail. A CPython 3.11 wheel was built and imported from an isolated environment with OOMKillDelta=0.
XpongeCPP 0.2.1
Patch release aligned with Xponge-origin 1.7b9. Corrects GLYCAM terminal-zero residue metadata across native, bundled, and reference templates; adds D/L pyranose and furanose parity plus standalone PDB export coverage. Full source isolation, Linux, macOS, Windows, sdist, and SPONGE numerical gates passed before release.
XpongeCPP 0.2.0
XpongeCPP 0.2.0
Compatibility target: Xponge-origin 1.7b8.
This is a breaking feature-alignment release from XpongeCPP 0.1.6.
Supported Python versions are CPython 3.10 through 3.12.
Highlights
- Ports the SPONGE bundle contract, native saver, legacy/bundle converters,
restart and output handling, H5MD readers, MDAnalysis integration, and CLI
entry points introduced through Xponge-origin 1.7b8. - Exposes generic RESP linear constraints, equivalence groups, constraint
preflight, RHF/ROHF/UHF reference selection, SCF strategy controls, progress
events, and fit metadata through the public charge API. - Replaces the former MCPB-specific implementation with the origin-style
XpongeCPP.metal_assignmentpackage. The package includes immutable
contracts and artifacts, base and nonbonded assignment, constrained RESP,
Hessian providers, empirical/manual/Seminario bonded fitting, hash-closed
local parameter patches, transactional application to preassigned
molecules, provenance, and SPONGE export mappings. - Aligns application semantics with Xponge-origin 1.7b8: removes the temporary
assigned-system/apply-input materialization layer and applies
MetalParameterPatchobjects without replacing the ordinary force field. - Removes the
XpongeCPP.MCPBAPI and theXpongeCPP.mcpbpackage. Callers
must migrate toXpongeCPP.metal_assignment.
Verification snapshot
On Linux x86_64 with CPython 3.11:
- bundle contract/conversion/analysis cohort: 166 passed with the discovered
SPONGE executable; - after adding environment,
PATH, and sibling-build discovery, the focused
bundle converter/SPONGE zero-frame gate passed all 7 tests with the explicit
environment override unset; - rebuilt RESP, bundle, and metal cohort: 238 passed, 12 optional QM/backend
tests skipped; - metal-assignment origin-parity cohort: 82 passed, 23 optional
Mokda-chemcore/backend tests skipped; - final combined pre-1.7b8 release/RESP/bundle/metal/numerical parity cohort:
217 passed, 23 optional external-provider tests skipped; - Xponge-origin 1.7b8 patch/contract/provider/release cohort:
85 passed, 16 optional external-provider tests skipped; - RESP constraints, charge models, metal RESP, base-charge, and Hessian cohort:
99 passed, 11 optional backend tests skipped; - 1.7b8 local-patch constrained RESP, explicit-reference manual bonded, and
deterministic-Hessian Seminario real-SPONGE gates pass raw-to-bundle-to-raw
numerical comparison; - wheel and source distribution built successfully and passed
twine check; - a clean wheel smoke environment imported
XpongeCPP,
XpongeCPP.io_bundle, andXpongeCPP.metal_assignment, reported version
0.2.0, and exposed noMCPBsymbol.
The repository-wide suite currently has 504 passing tests and 31 known
unrelated failures, compared with 412 passing and 32 failing in the pre-sync
baseline. The failures are tracked separately and do not occur in the bundle,
RESP, or metal-assignment parity cohorts. An actual cross-platform CI run and
a bundle-capable SPONGE runtime remain release gates rather than claims made by
this local verification snapshot. The latter has an explicit
SPONGE_BUNDLE_EXECUTABLE-controlled acceptance test and is not silently
treated as passing on legacy-only runtimes.
XpongeCPP 0.1.5
Corrective dependency release
This release supersedes v0.1.4, whose package metadata still referenced the stale XpongeLib distribution.
Dependency alignment
- Replace
XpongeLib>=1.2.5.0withmokda-xpongelib>=1.2.5.0while retaining the Python import nameXpongeLib. - Align the runtime dependency set with Xponge-origin:
numpy<2geometric>=1.1matplotlib>=3.10.8MDAnalysis>=2.9.0PubChemPy>=1.0.5rdkit>=2025.9.3pyscf>=2.11.0on non-Windows platforms
- Add metadata regression tests so distribution and runtime versions cannot silently diverge.
Lipid21 integration included
- Amber Lipid21 with 16 base templates and PGS/SA/SPM connection semantics.
- Shared PI/phosphoinositide/LysoPL extension registration.
- Force-field family conflict guards.
- Four-type torsion-specific SCEE/SCNB scaling.
Validation
- 40 targeted tests passed.
- Updated dependencies resolve successfully with
uv. - Release CI rebuilds Linux x64/ARM64, macOS Intel/ARM64, Windows x64 wheels and the sdist before trusted PyPI publishing.