From 6bf51d9f5814a475fc60403a473a3116379d4c40 Mon Sep 17 00:00:00 2001 From: NCCU-Schultz-Lab Date: Thu, 16 Jul 2026 19:22:40 -0400 Subject: [PATCH] Bump version to 0.4.1 and add changelog Bump version to 0.4.1 and add changelog 0.4.1 is a bug-fix and hardening release capturing the repository audit (PR #19): 5 High, 14 Medium, and 13/14 Low findings fixed, plus Python 3.9 added to CI. No new features and no breaking changes. - Bump version 0.4.0 -> 0.4.1 in pyproject.toml, quantui/__init__.py, and the apptainer/quantui.def Version label. - Add the CHANGELOG [0.4.1] section (user-facing summary of the audit fixes). - Refresh the CHANGELOG compare-links, which were stale (Unreleased pointed at v0.2.0; the 0.3.0 and 0.4.0 links were missing). Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 76 ++++++++++++++++++++++++++++++++++++++++++- apptainer/quantui.def | 2 +- pyproject.toml | 2 +- quantui/__init__.py | 2 +- 4 files changed, 78 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fba6c3f..1e8e17b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,77 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht ## [Unreleased] +## [0.4.1] - 2026-07-16 + +Bug-fix and hardening release from a full repository audit. No new features and +no breaking changes — it fixes correctness bugs across orbital isosurfaces, +Molden export, the XYZ parser, NMR references, PES scans, and IR intensities, +plus a range of edge-case, packaging, and hygiene issues found by reading the +codebase end to end. + +### Added + +- Single-atom molecules (e.g. a lone He or Ne atom) are now accepted as XYZ input + and run end to end — atomic calculations are legitimate targets. + +### Changed + +- **Python 3.9 is now covered by CI.** The minimum supported version was + previously claimed but untested; adding it surfaced and fixed real + geometry-optimization and frequency failures on the older ASE that resolves for + Python 3.9. +- **Faster `quantui` CLI startup** — the command-line tool no longer imports the + full notebook/GUI stack (ipywidgets, IPython, the app module) just to tail a + log. +- **No more logging hijack** — importing `quantui` no longer reconfigures the + root logger, so it won't override or duplicate logging in a host application or + notebook. +- **Faster time estimates over long sessions** — the performance log is cached and + re-read only when it changes, instead of being fully parsed on every UI update. + +### Fixed + +- **Orbital isosurfaces for charged and open-shell molecules** — the isosurface + viewer previously errored for every odd-electron system (radicals, and ions + such as H₃O⁺, NH₄⁺, OH⁻); charge and spin are now carried through to the cube + generator. +- **Molden export from frequency calculations** — the exported geometry was + inflated (Bohr coordinates read as Ångström) and internally inconsistent, so it + rendered wrong in Avogadro/IQmol; frequency geometries are now stored and + written in the correct units. This also fixes history replay of frequency + orbital isosurfaces. +- **Export Script and method notes for `wB97X-D`** — "Export Script" failed with + a "method not supported" error and the educational notes silently disappeared + for `wB97X-D`; mixed-case method names are now matched correctly. +- **2D structure images from XYZ input** — this path never worked (it always + returned nothing) and now renders. +- **XYZ files with a blank or comment (`#`) title line** no longer silently drop + the first atom — a very common file layout was losing an atom with only a + warning. +- **NMR reference provenance** — chemical shifts no longer silently fall back to + the B3LYP/6-31G\* TMS constants for other method/basis combinations; the + reference that was actually applied is now recorded, and the lookup is + case-insensitive. +- **IR intensities for open-shell / UHF-singlet frequency runs** no longer abort + the whole IR-intensity step. +- **PES scans** — a failed scan point no longer records a bogus geometry frame or + poisons the energy/barrier statistics with NaN, and angle/dihedral scans work + with current ASE releases. +- **UHF calculations** now report a dipole moment and Mulliken charges (these were + silently skipped). +- **Clearer errors for unsupported input** — elements outside the supported H–Kr + range, and post-Hartree–Fock methods (MP2 / CCSD / CCSD(T)) requested for + calculation types that don't support them, now fail with an explicit message + instead of a misleading one or an uninformative crash. +- **Windows exports** no longer fail when the basis-set name contains `*` (e.g. + `6-31G*`) — export filenames are sanitized. +- **Method-notes panel** renders bold text correctly instead of leaking literal + `**` markers. +- **Robustness** — the event log is no longer subject to lost entries under + concurrent writes; a thumbnail-save failure no longer aborts saving a result; + PubChem availability checks respect the configured throttle and timeout; and + results carrying NumPy scalar values now save correctly. + ## [0.4.0] - 2026-06-18 Interactive-visualization and offline-readiness release. Adds molecular-orbital @@ -294,6 +365,9 @@ Initial public scaffolding of the QuantUI package: `quantui` package with `calculator.py`, basic notebook launcher, Apptainer container definition, MIT license, and project metadata. -[Unreleased]: https://github.com/The-Schultz-Lab/QuantUI/compare/v0.2.0...HEAD +[Unreleased]: https://github.com/The-Schultz-Lab/QuantUI/compare/v0.4.1...HEAD +[0.4.1]: https://github.com/The-Schultz-Lab/QuantUI/compare/v0.4.0...v0.4.1 +[0.4.0]: https://github.com/The-Schultz-Lab/QuantUI/compare/v0.3.0...v0.4.0 +[0.3.0]: https://github.com/The-Schultz-Lab/QuantUI/compare/v0.2.0...v0.3.0 [0.2.0]: https://github.com/The-Schultz-Lab/QuantUI/compare/v0.1.0...v0.2.0 [0.1.0]: https://github.com/The-Schultz-Lab/QuantUI/releases/tag/v0.1.0 diff --git a/apptainer/quantui.def b/apptainer/quantui.def index b67cc96..ed758e1 100644 --- a/apptainer/quantui.def +++ b/apptainer/quantui.def @@ -21,7 +21,7 @@ FROM: continuumio/miniconda3:latest %labels Maintainer "Jonathan Schultz" Purpose "Local teaching interface for quantum chemistry calculations" - Version "0.4.0" + Version "0.4.1" %environment export PATH="/opt/conda/bin:${PATH}" diff --git a/pyproject.toml b/pyproject.toml index ea69596..0b73a35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "quantui" -version = "0.4.0" +version = "0.4.1" description = "An open-source frontend for DFT and post-HF quantum chemistry with PySCF" readme = "README.md" requires-python = ">=3.9" diff --git a/quantui/__init__.py b/quantui/__init__.py index cd4e439..8c2ce62 100644 --- a/quantui/__init__.py +++ b/quantui/__init__.py @@ -7,7 +7,7 @@ PySCF requires Linux/macOS/WSL. Windows users should use the Apptainer container. """ -__version__ = "0.4.0" +__version__ = "0.4.1" import logging from typing import Any