Documentation Changelog¶
Unreleased¶
v0.7.0 (2026-06-24)¶
Python 3.14 support: added the
Python :: 3.14classifier and extended the CI test matrix to3.12/3.13/3.14across Ubuntu, macOS, and Windows;requires-pythonstays>=3.12. The full runtime dependency tree provides cp314 wheels andcurve_fitconverges correctly on 3.14.Correctness sweep (codex + agy review): fixed bounds validation in
curve_fitinput handling, covariance/SVD-rank edge cases, and several orchestration/result bugs.Fixed
common_jaxover-aggressive denominator guard that broke rank-deficient TRF solves.Fixed chunked-fit fallback path and made JIT cache keys include function code identity to prevent closure collisions across distinct models.
Test/CI hygiene: relaxed the too-strict gradient-precision optimality threshold, warmed up before the memory-leak baseline benchmark, and silenced expected non-convergence warnings so
make verifyis clean.
v0.6.12 (2026-05-09)¶
Multi-subsystem RCA hardening across GUI, core, orchestration, and security/infra.
GUI (Qt/PySide6): fixed a
QThreadGC crash (strong refs in_pending_threads), replaced the shallowFitWorkersnapshot with a deep copy, made autosave writes atomic (tmpfile + rename), corrected bounds/array serialisation, and fixed NaN/Inf JSON export viasafe_serialize.Core: 11
fit()-workflow correctness fixes (dtype handling, CG bias, alpha overflow, theta bound, API compat).Orchestration: corrected
data_preprocessorsigma handling,optimization_selectormethod selection,covariance_computerSVD rank, andstreaming_coordinatormemory budgeting.Security / infra: JIT-safety fix,
safe_serializedata-integrity fix, tightenedmodel_validationAST allowlist, GPU-fallback locale handling, and excludedgraphify-out/from codespell/detect-secrets.
v0.6.11 (2026-03-12)¶
Skip sparsity detection when
tr_solveris already set (7–8ms per-call savings)Fix Windows CI: catch
AttributeErrorfor POSIX-onlyos.sysconfin xdist worker cap hookAlign
release.ymltest step withci.ymlto prevent timeout on publish-triggered test runsReplace
warnings.warn()withlogging.debug()in SmartCache for operational fallback pathsReduce JIT cache clearing interval and add
pytest_xdist_auto_num_workershook for OOM preventionAlign config tested-on version comments with local environment
Update
uv.lockfor black 26.3.1
v0.6.10 (2026-03-09)¶
Added
check_plugin_conflicts()for CUDA plugin dual-install and version-mismatch detection indevice.pyFixed misleading GPU warning header; expanded uninstall command to include CUDA plugin packages
Promoted xxhash, pyyaml, evosax, psutil, and dev/test tools to core dependencies (single
uv sync)Removed
extra_requirements: [docs]from.readthedocs.yaml; docs deps covered by coreAdded
gpu-diagnoseMakefile target and 3-step CUDA 13 install with conflict verificationMajor
architecture.rstoverhaul reflecting v0.6.4+ orchestration components and facadesTrimmed ~1500 lines of redundant inline code blocks from tutorials 01–06
Refreshed 18 autodoc RST stubs and added 5 new API stubs (stability.guard, utils.diagnostics, callbacks, core.factories, interfaces)
Clarified mixed-precision fallback log message; added streaming docstring note
Moved deferred
scipy.statsimports to module level in GUI export/results pagesSecurity: cryptography 46.0.4 → 46.0.5 (CVE-2026-26007), pillow 12.1.0 → 12.1.1 (CVE-2026-25990)
v0.6.9 (2026-02-14)¶
Bump version to 0.6.9
v0.6.8 (2026-01-28)¶
Fixed critical GUI startup crashes on macOS (SIGBUS) caused by OpenGL/Metal conflicts
Enhanced JAX platform guards and device detection reliability
Unified logging handlers to prevent file lock issues on Windows
Hardened test suite against environmental variability and timeouts
Fixed GUI cache directory cleanup on shutdown
v0.6.4 (2026-01-14)¶
Updated version references from v0.7.0 to v0.6.4 across all orchestration documentation
Added CurveFit decomposition architecture documentation (v0.6.4 feature)
Updated package structure references to v0.6.4
v0.6.0 (2026-01-06)¶
Reorganized documentation into Routine User Guide and Advanced User Guide
Consolidated 3 migration files into single comprehensive
howto/migration.rstRemoved stale deprecation notices from result module
Removed 8 non-existent workflow presets from CLI documentation
Fixed broken documentation links in README
v0.5.4 (2026-01-05)¶
Migrated to Furo theme for modern documentation styling
Removed all deprecated functionality from NLSQ package
Comprehensive documentation update with AST-based code analysis (94.9% coverage)
Fixed pre-push hook CI interference
Fixed Windows resource module import compatibility
v0.5.3 (2026-01-04)¶
Replaced pyqtdarktheme with Qt 6.5+ built-in color scheme (
setColorScheme())Updated dependency versions: JAX 0.8.2, NumPy 2.4.0, SciPy 1.16.3, ruff 0.14.10, mypy 1.19.1
Added CHANGELOG entries for v0.5.0, v0.5.1, v0.5.2 release history
Reorganized benchmark suite into ci/components/microbench directories
v0.5.2 (2026-01-04)¶
15% performance improvement in TRF optimizer (10K point fit: 1.04s → 0.88s)
Fixed JIT compatibility in TRF subproblem solvers
Fixed enum identity issues in parallel test execution
v0.5.1 (2026-01-03)¶
Added
nlsq.gui_qtAPI documentation to SphinxFixed README link to GUI user guide (now points to ReadTheDocs)
Updated README GUI description to reflect pyqtgraph plots (was incorrectly referencing Plotly)
Fixed pre-commit issues: refactored complex functions, added contextlib.suppress, created .secrets.baseline
Added mypy overrides for PySide6, pyqtgraph, and qdarktheme in pyproject.toml
v0.5.0 (2026-01-02)¶
BREAKING: Removed Streamlit GUI in favor of native Qt desktop application
The
nlsq.guipackage has been removed entirelyUse
nlsq.gui_qtandnlsq-guicommand for the desktop GUIRemoved
guioptional extra from pyproject.toml; usegui_qtinsteadInstall with:
pip install "nlsq[gui_qt]"
Removed legacy StreamingOptimizer/StreamingConfig and the Adam warmup path from docs; use AdaptiveHybridStreamingOptimizer with HybridStreamingConfig (L-BFGS warmup) for large datasets.
Removed DataGenerator, create_hdf5_dataset, and fit_unlimited_data from examples/docs; use LargeDatasetFitter or AdaptiveHybridStreamingOptimizer instead.
Updated streaming workflow guidance to reflect hybrid streaming only.