diff --git a/.github/workflows/publish-testpypi.yml b/.github/workflows/publish-pypi.yml similarity index 83% rename from .github/workflows/publish-testpypi.yml rename to .github/workflows/publish-pypi.yml index 8a2b5d47..a305f1db 100644 --- a/.github/workflows/publish-testpypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -1,4 +1,4 @@ -name: Publish to TestPyPI +name: Publish to PyPI on: release: types: [published] @@ -11,7 +11,7 @@ jobs: uses: ./.github/workflows/quality.yml publish: - # This job publishes to TestPyPI when a GitHub release is created with a tag starting with 'v' on the release branch. + # This job publishes to PyPI when a GitHub release is created with a tag starting with 'v' on the release branch. # # Requirements: # - Repository admin must create a release with a tag starting with 'v' (e.g., v1.2.3) @@ -21,7 +21,7 @@ jobs: # Security notes: # - The tag and branch checks in this job are soft checks (can be bypassed by modifying workflow) # - Real security enforcement comes from the 'pypi' environment which requires manual approval by org admin - # - This provides a final gate before any code is published to TestPyPI + # - This provides a final gate before any code is published to PyPI needs: test runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') @@ -48,6 +48,4 @@ jobs: path: dist/ - name: Upload to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - repository-url: https://test.pypi.org/legacy/ \ No newline at end of file + uses: pypa/gh-action-pypi-publish@release/v1 \ No newline at end of file diff --git a/changelog.md b/changelog.md index aaa4dc08..6072a06e 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,42 @@ ## [Unreleased] +## [1.3.0] - 2025-10-25 + +### Added + +- 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 +- `uv` package manager integration across CI workflows for faster dependency resolution +- New consolidated `quality.yml` workflow for linting and testing +- New `build_third_party_packagers.yml` workflow consolidating cx_Freeze, PyInstaller, Nuitka, and py2exe testing +- Pre-commit hooks configuration +- Justfile with extensive development automation commands - github actions have been refactored use this where possible, making them locally debuggable + +### Changed + +- **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 +- Simplified third-party packager testing into single consolidated workflow +- Moved coverage configuration from .coveragerc 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 + +### Removed + +- Removed setup.py (replaced by pyproject.toml) +- Removed standalone configuration files: .coveragerc, 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 + +### Security + +- Implemented PyPI publishing workflow with manual approval gate + ## [1.2.0] - 2025-10-19 ### Added diff --git a/fluids/__init__.py b/fluids/__init__.py index 191ec2f6..642f1b7d 100644 --- a/fluids/__init__.py +++ b/fluids/__init__.py @@ -168,7 +168,7 @@ def all_submodules(with_numerics=True): return new_submodules -__version__ = "1.2.10" +__version__ = "1.3.0" try: fluids_dir = os.path.dirname(__file__) diff --git a/pyproject.toml b/pyproject.toml index e4ad499e..88f8a1dc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ backend-path = ["_custom_build"] [project] name = "fluids" -version = "1.2.10" +version = "1.3.0" description = "Fluid dynamics component of Chemical Engineering Design Library (ChEDL)" readme = "README.rst" requires-python = ">=3.9" @@ -132,7 +132,7 @@ dev = [ [project.urls] Homepage = "https://github.com/CalebBell/fluids" -Download = "https://github.com/CalebBell/fluids/tarball/1.2.10" +Download = "https://github.com/CalebBell/fluids/tarball/1.3.0" [tool.setuptools] packages = ["fluids"]