- Added
HHV_Boiefor estimating higher heating value with Boie's equation. - Added
HHV_from_LHVfor converting lower heating values to higher heating values. - Added support for specified
HHVorLHVinputs incombustion_data.
- CI: Added Python 3.14 and replaced Python 3.13t free-threaded testing with 3.14t.
- CI: Moved quality validation to Python 3.14.
- CI: Updated PyInstaller and cx_Freeze compatibility checks to Python 3.14 while keeping Nuitka on Python 3.13.
- CI: Updated multiarch QEMU setup to
docker/setup-qemu-action@v4andtonistiigi/binfmt:qemu-v10.2.1-65. - CI: Updated
actions/checkoutto v6,actions/setup-pythonto v6,actions/upload-artifactto v7, andastral-sh/setup-uvto v8.1.0 for Node 24 compatibility. - Improved combustion documentation and examples.
- Improved handling of underdetermined reaction balancing cases.
- New
COSTALD_mixture_compressedfunction for compressed liquid mixture density using the COSTALD-Tait CSP method (API Procedure 6A3.4) - New
COSTALD_compressedfunction for compressed liquid density of pure components
- CI: Skip numba tests on macOS Intel (no llvmlite wheels available)
- CI: Enable numba tests on macOS ARM
- CI: Remove
zoneinfofrom cx_Freeze excludes (required by pandas) - CI: Remove unnecessary numba dependency from Nuitka test recipe
- Fixed E coefficient in heat capacity table from Perry 8E for 1-heptene
- Corrected spelling of "Demmler" viscosity cups (previously misspelled as "Demmier"). Added citation to Hydraulic Institute's Fluid Properties new website which shows the correct spelling.
- Project is now PEP 517 compliant and doesn't use deprecated setup.py commands anymore
- GitHub Actions workflow for publishing to PyPI using environment protection
uvpackage manager integration across CI workflows for faster dependency resolution- New consolidated
quality.ymlworkflow for linting and testing - New
build_third_party_packagers.ymlworkflow consolidating cx_Freeze, PyInstaller, Nuitka, and py2exe testing - Pre-commit hooks configuration
- Justfile with extensive development automation commands - github actions have been refactored to use this where possible, making them locally debuggable
- Breaking: Dropped Python 3.8 support; minimum Python version is now 3.9
- Migrated from setup.py to pyproject.toml-only configuration (PEP 517)
- Consolidated multiarch CI workflows with reduced test matrix for improved performance
- Optimized multi-numpy/scipy testing workflow using
uv - Simplified third-party packager testing into single consolidated workflow
- Moved coverage configuration to pyproject.toml
- Moved pytest configuration from pytest.ini to pyproject.toml
- Moved mypy configuration from mypy.ini to pyproject.toml
- Moved Ruff configuration from .ruff.toml to pyproject.toml
- Reorganized development requirements into pyproject.toml optional dependencies
- Updated PyInstaller spec file configuration
- Removed setup.py (replaced by pyproject.toml)
- Removed standalone configuration files: pytest.ini, mypy.ini, .ruff.toml
- Removed separate workflow files: build_cxfreeze_library.yml, build_nuitka_library.yml, build_py2exe_library.yml, build_pyinstaller_library.yml
- Removed pre-commit.yml and security.yml workflows (consolidated into quality.yml)
- Removed separate requirements files (test, docs, multiarch) - now in pyproject.toml
- Fixed test_identifiers.py compatibility issues
- Fixed test_numba.py compatibility issues
- Implemented PyPI publishing workflow with manual approval gate
- Python 3.13 and 3.13t (free-threaded) support with PYTHON_GIL=0 configuration
- Pre-commit configuration with Ruff, mdformat, and file validators
- New GitHub Actions workflows for pre-commit checks and security scanning
- Packaging compatibility workflows for cx_Freeze, PyInstaller, and py2exe
- Standalone test scripts and demo builders for verifying packaged distributions
- Coverage HTML artifact uploads to all test workflows
- Concurrency controls to workflows to cancel redundant builds
- Justfile for streamlined development tasks (setup, docs, test, typecheck, lint)
- Security scanning with pip-audit and bandit
- Minimum Python version raised from 3.6 to 3.8
- Updated actions to latest versions (setup-qemu v3, run-on-arch v3)
- Updated macOS CI runners (macos-13 → macos-15-intel, added macos-latest for ARM)
- Extensive code quality improvements with Ruff linting across entire codebase:
- String quote normalization to double quotes
- Removed unused imports and variables
- Improved code formatting and PEP 8 compliance
- Better type hints compatibility
- Merged type hints across the codebase with improved accuracy
- Renamed workflow files to use .yml extension consistently
- Updated copyright year to 2025
- Fixed numerous typos across documentation files
- Improved Sphinx configuration for Python 3.13 compatibility
- Enhanced docstring and markdown formatting
- Updated README to reflect Python 3.8+ requirement
- Dropped Python 3.6 and 3.7 support
- Removed obsolete platform-specific exclusions
- Added automated security scanning workflow documented in SECURITY.md
- Added .claude to .gitignore
- Added Baumé scale conversion function: 8 new functions Baume_heavy_to_SG, SG_to_Baume_heavy, Baume_light_to_SG, SG_to_Baume_light, Baume_heavy_to_rho, rho_to_Baume_heavy, Baume_light_to_rho, rho_to_Baume_light
- Handle division by zero at Wagner T == Tc condition - return mathmatically correct result, infinity
- Updated several Joback predictions following correction of one SMARTS pattern
- Fix four duplicate/inconsistent entries in Zabransky which was previously being handled accidentally by overwritting data due to duplicates in the original source material - now the better data is intentionally loaded
- Chemical Metadata work
- Chemical Metadata work
- Improved performance of T_converter and viscosity_converter, which previously build splines on the fly; they now have already-built conversion routines
- Added Dipalmitin back as synonym for 502-52-3
- Code cleanup and minor optimizations
- Re-import select chemical metadata from Common Chemistry and PubChem. This includes being more consistent about proper capitalization of chemical synonyms. No work was done on the main massive pubchem database (large/small files) at this time.
- Move some vapor pressure extrapolation logic from thermo to proper functions in chemicals
- Add Hansen solubility parameter lookup functions and data files
- Fix issue with sqlite and multithreading CalebBell/thermo#156
- Improve DIPPR equations integral over T calculation mode to use magic number -10 for calculation order instead of -1j which seemed clever at the time but was really a horrible idea and has caused lots of grief with pypy, and numba over the years
- Improve Github Actions to test more platforms
- Fluids version dependency now >= 1.0.27
- Compatibility with NumPy 2.0 and SciPy 1.14
- Fluids version dependency now >= 1.0.26
- Code cleanup with ruff (experiment)
- Add {critical, triple, boiling} data from REFPROP and other high-precision EOSs. This is the preferred method where available.