From 21f8ff0148a71bf7ecd8457dc09e2db009dd938e Mon Sep 17 00:00:00 2001 From: saudzahirr Date: Tue, 18 Aug 2026 14:55:36 +0500 Subject: [PATCH] chore: standardize packaging metadata and docs Add the python-versions-sync CI workflow and its supporting script so the supported Python versions stay in sync across project metadata. Refine the trove classifiers in pyproject.toml: - Drop "Programming Language :: Python :: 3 :: Only"; requires-python (>=3.10) already states the supported range. - Drop "Operating System :: OS Independent"; soerp compiles src/soerp/_soerp.f into an extension module, so its wheels are platform-specific. The specific Windows/POSIX/Unix/MacOS classifiers are kept. - Add "Programming Language :: Fortran" to reflect the bundled Fortran sources. Add the project banner to README.md and docs/index.md, and recase the display heading in both from "soerp" to "SOERP". The package name and all code references are unchanged. Co-Authored-By: Claude Opus 5 (1M context) --- .github/scripts/sync_python_versions.py | 340 +++++++++++++++++++++ .github/workflows/python-versions-sync.yml | 111 +++++++ README.md | 4 +- docs/assets/soerp-banner.png | Bin 0 -> 94691 bytes docs/index.md | 4 +- pyproject.toml | 3 +- 6 files changed, 458 insertions(+), 4 deletions(-) create mode 100644 .github/scripts/sync_python_versions.py create mode 100644 .github/workflows/python-versions-sync.yml create mode 100644 docs/assets/soerp-banner.png diff --git a/.github/scripts/sync_python_versions.py b/.github/scripts/sync_python_versions.py new file mode 100644 index 0000000..611d264 --- /dev/null +++ b/.github/scripts/sync_python_versions.py @@ -0,0 +1,340 @@ +#!/usr/bin/env python3 +"""Sync the Python versions declared in pyproject.toml with upstream. + +Reads the active (non-EOL) versions from the ACTIVE_VERSIONS environment +variable -- a JSON array of "X.Y" labels as produced by endoflife.date -- +and rewrites, in place: + + * project.classifiers, so the "Programming Language :: Python :: ..." + entries drop versions that have gone end-of-life and pick up newly + released ones; + * project.requires-python, raised to the oldest still-supported version + when the current floor has gone end-of-life. + +The managed block always has the same shape: + + Programming Language :: Python :: + Programming Language :: Python :: + +Nothing about the major version is hardcoded. is the newest major +upstream still supports, and it is *replaced* rather than accumulated -- +the day a 4.0 ships the bare-major line flips from 3 to 4 on its own, and +again to 5 when that day comes, with no edit to this script: + + Programming Language :: Python :: 4 + Programming Language :: Python :: 3.14 + Programming Language :: Python :: 4.0 + +Minors are always written in ascending order, newest at the bottom, and a +still-supported older major keeps its minors listed. + +The ":: X :: Only" marker is deliberately never emitted, and any existing +one is removed: requires-python already states the supported range, so the +marker is redundant metadata that has to be hand-maintained to stay true. + +The requires-python floor is only ever raised, never lowered. A project +that deliberately requires a newer Python than the oldest supported one -- +say ">=3.12" while 3.10 is still alive -- keeps its own floor, and only +the versions at or above it are declared. + +Formatting is preserved: entries this script does not own keep their +original tomlkit items, so a file that quotes some classifiers with ' and +others with " does not get reflowed, and new entries copy the quote style +of the entries they replace. + +Nothing is written when the declaration already matches, so the calling +workflow opens a pull request only on a real change. +""" + +from __future__ import annotations + +import json +import os +import re +import sys +from pathlib import Path +from typing import NoReturn + +import tomlkit +from tomlkit.items import Array + + +PYPROJECT = Path("pyproject.toml") + +# The three shapes this script owns. Anything else in the classifier list +# -- including the bare "Programming Language :: Python" and other +# languages such as "Programming Language :: Fortran" -- is left alone. +MAJOR = re.compile(r"^Programming Language :: Python :: (\d+)$") +MINOR = re.compile(r"^Programming Language :: Python :: (\d+\.\d+)$") +ONLY = re.compile(r"^Programming Language :: Python :: (\d+) :: Only$") + +FLOOR = re.compile(r">=\s*(\d+(?:\.\d+)*)") +LABEL = re.compile(r"\d+\.\d+") + + +def key(version: str) -> tuple[int, ...]: + """Order versions numerically rather than lexically. + + Args: + version: A dotted version such as "3.9" or "3.10". + + Returns: + The integer components, so 3.9 sorts before 3.10. + """ + return tuple(int(part) for part in version.split(".")) + + +def emit(name: str, value: str) -> None: + """Publish a step output for the calling workflow. + + Args: + name: Output name. + value: Output value. + """ + out = os.environ.get("GITHUB_OUTPUT") + if out: + with open(out, "a", encoding="utf-8") as handle: + handle.write(f"{name}={value}\n") + + +def fail(message: str) -> NoReturn: + """Annotate the failure for GitHub and stop. + + Args: + message: What went wrong. + + Raises: + SystemExit: Always. + """ + print(f"::error::{message}", file=sys.stderr) + raise SystemExit(1) + + +def owns(value: str) -> bool: + """Report whether this script manages a classifier. + + Args: + value: A classifier string. + + Returns: + True when the entry is one this script rewrites. + """ + return bool(MAJOR.match(value) or MINOR.match(value) or ONLY.match(value)) + + +def is_literal(item: object) -> bool: + """Report whether an item uses TOML literal (single) quotes. + + Args: + item: An item from the classifiers array. + + Returns: + True when the item is written with literal quotes. + """ + raw = getattr(item, "as_string", None) + if raw is None: + return False + return str(raw()).lstrip().startswith("'") + + +def read_active(raw: str) -> list[str]: + """Parse the active version labels supplied by the workflow. + + Args: + raw: JSON array of version labels. + + Returns: + The "X.Y" labels, ascending. + """ + if not raw: + fail("ACTIVE_VERSIONS is unset") + try: + labels = json.loads(raw) + except json.JSONDecodeError as exc: + fail(f"ACTIVE_VERSIONS is not valid JSON: {exc}") + + # endoflife.date labels release lines as "X.Y"; anything else (a + # codename, a bare major) is not a line this script can declare. + seen = {str(v) for v in labels if LABEL.fullmatch(str(v))} + active = sorted(seen, key=key) + if not active: + fail("no active X.Y Python versions in ACTIVE_VERSIONS") + return active + + +def build_block(supported: list[str]) -> list[str]: + """Render the managed classifier block. + + The bare-major line tracks the newest supported major and is replaced + as it advances, so there is only ever one of them. + + Args: + supported: Supported "X.Y" versions, ascending. + + Returns: + The classifier strings, in the order they should appear. + """ + major = max(int(v.split(".")[0]) for v in supported) + return [f"Programming Language :: Python :: {major}"] + [ + f"Programming Language :: Python :: {v}" for v in supported + ] + + +def splice(items: list[object], wanted: list[str]) -> Array: + """Replace the managed entries, leaving every other item untouched. + + Args: + items: The existing classifier items. + wanted: The managed block to write in their place. + + Returns: + A new multiline array. + """ + values = [str(item) for item in items] + owned = [i for i, value in enumerate(values) if owns(value)] + + # Copy the quote style of the entries being replaced so the rewrite + # does not churn a file that uses literal strings. + literal = is_literal(items[owned[0]]) if owned else False + block = [tomlkit.string(v, literal=literal) for v in wanted] + + drop = set(owned) + kept = [item for i, item in enumerate(items) if i not in drop] + if owned: + # Every owned entry sits at or after the first, so the slice + # before it survives removal unshifted. + anchor = owned[0] + else: + # Nothing declared yet: seed the block after the bare language + # marker when there is one, otherwise append it. + marker = "Programming Language :: Python" + anchor = values.index(marker) + 1 if marker in values else len(kept) + + array = tomlkit.array() + for item in kept[:anchor] + block + kept[anchor:]: + array.append(item) + array.multiline(multiline=True) + return array + + +def minors(block: list[str]) -> list[str]: + """Extract the per-minor versions from a classifier block. + + Args: + block: Classifier strings. + + Returns: + The "X.Y" versions they declare. + """ + return [m.group(1) for m in map(MINOR.match, block) if m] + + +def bare_major(block: list[str]) -> str | None: + """Extract the bare-major version from a classifier block. + + Args: + block: Classifier strings. + + Returns: + The major, or None when the block declares none. + """ + found = [m.group(1) for m in map(MAJOR.match, block) if m] + return found[0] if found else None + + +def describe( + before: list[str], wanted: list[str], floors: tuple[str | None, str] +) -> str: + """Summarise the change for the pull request body. + + Args: + before: The classifier block as it was. + wanted: The classifier block as it will be. + floors: The old and new requires-python floors. + + Returns: + Markdown describing what moved. + """ + was_floor, floor = floors + old, new = minors(before), minors(wanted) + added = [v for v in new if v not in old] + dropped = [v for v in old if v not in new] + was_major, now_major = bare_major(before), bare_major(wanted) + only = [c for c in before if ONLY.match(c)] + + lines = [ + "The Python versions declared in `pyproject.toml` no longer match", + "the versions upstream supports, per", + "[endoflife.date](https://endoflife.date/python).", + "", + ] + if added: + lines.append(f"- **Added:** {', '.join(added)}") + if dropped: + lines.append(f"- **Dropped (end-of-life):** {', '.join(dropped)}") + if was_major and now_major and was_major != now_major: + move = f"`Python :: {was_major}` -> `Python :: {now_major}`" + lines.append(f"- **Major line:** {move}") + if only: + lines.append(f"- **Removed redundant marker:** `{only[0]}`") + if was_floor != floor: + lines.append(f"- **`requires-python`:** `>={was_floor}` -> `>={floor}`") + lines += [ + "", + f"Declared set is now: {', '.join(new)}.", + "", + "Opened automatically by the `Python Versions Sync` workflow.", + ] + return "\n".join(lines) + "\n" + + +def main() -> None: + """Rewrite pyproject.toml when its declaration has drifted.""" + active = read_active(os.environ.get("ACTIVE_VERSIONS", "").strip()) + + if not PYPROJECT.is_file(): + fail("pyproject.toml not found") + + document = tomlkit.parse(PYPROJECT.read_text(encoding="utf-8")) + project = document.get("project") + if project is None: + fail("pyproject.toml has no [project] table") + + requires = str(project.get("requires-python", "")).strip() + match = FLOOR.search(requires) + was_floor = match.group(1) if match else None + floor = max([f for f in (was_floor, active[0]) if f], key=key) + supported = [v for v in active if key(v) >= key(floor)] + if not supported: + fail(f"floor {was_floor} excludes every active version") + + classifiers = project.get("classifiers") + if classifiers is None: + fail("[project] has no classifiers list") + + items = list(classifiers) + before = [str(item) for item in items if owns(str(item))] + wanted = build_block(supported) + + if before == wanted and was_floor == floor: + declared = ", ".join(supported) + print(f"Already in sync: {declared} (requires-python >={floor})") + emit("changed", "false") + return + + project["classifiers"] = splice(items, wanted) + if was_floor != floor: + project["requires-python"] = f">={floor}" + PYPROJECT.write_text(tomlkit.dumps(document), encoding="utf-8") + + body = describe(before, wanted, (was_floor, floor)) + body_file = os.environ.get("PR_BODY_FILE") + if body_file: + Path(body_file).write_text(body, encoding="utf-8") + + emit("changed", "true") + sys.stdout.write(body) + + +if __name__ == "__main__": + main() diff --git a/.github/workflows/python-versions-sync.yml b/.github/workflows/python-versions-sync.yml new file mode 100644 index 0000000..07993bc --- /dev/null +++ b/.github/workflows/python-versions-sync.yml @@ -0,0 +1,111 @@ +name: Python Versions Sync + +# Keeps the Python versions declared in pyproject.toml in step with the +# versions upstream still supports. +# +# The active set is fetched from endoflife.date rather than hardcoded -- +# the same source the build matrix in the test workflow uses -- so the +# classifiers, the requires-python floor and the CI matrix cannot drift +# apart from each other. +# +# When the declaration differs from the active set this opens a PR as +# github-actions[bot]. Note that a PR opened with GITHUB_TOKEN does not +# itself trigger further workflow runs; close and reopen it if you need +# the full check suite to run against the branch. + +on: + schedule: + - cron: "0 3 1 * *" # 03:00 UTC on the first of every month + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: false + +permissions: + contents: write + pull-requests: write + +jobs: + sync: + name: Sync Python versions + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Fetch supported Python versions + id: fetch-versions + run: | + # Without pipefail this pipeline reports jq's exit status rather + # than curl's, so a network failure is masked: jq reads empty + # input and emits [], which reads as "every version is EOL" and + # would strip the classifiers wholesale. + set -euo pipefail + + versions=$(curl -fsSL --retry 3 --retry-all-errors --connect-timeout 15 \ + https://endoflife.date/api/v1/products/python/ \ + | jq -c '[ .result.releases[] | select(.isEol == false) | .label ]') + + if [ "$(echo "$versions" | jq 'length')" -eq 0 ]; then + echo "::error::endoflife.date returned no supported Python versions" + exit 1 + fi + + echo "active=$versions" >> "$GITHUB_OUTPUT" + echo "Active Python versions: $versions" + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.x" + + - name: Apply to pyproject.toml + id: update + env: + ACTIVE_VERSIONS: ${{ steps.fetch-versions.outputs.active }} + PR_BODY_FILE: ${{ runner.temp }}/pr-body.md + run: | + set -euo pipefail + pip install --quiet tomlkit "validate-pyproject[all]" + python .github/scripts/sync_python_versions.py + + # Lint the result before it can become a pull request. This also + # guards the one case the sync cannot: endoflife.date announcing a + # release line before trove-classifiers knows the classifier for + # it, which PyPI would reject at upload time. + validate-pyproject pyproject.toml + + - name: Open pull request + if: steps.update.outputs.changed == 'true' + env: + GH_TOKEN: ${{ github.token }} + BASE: ${{ github.event.repository.default_branch }} + PR_BODY_FILE: ${{ runner.temp }}/pr-body.md + run: | + set -euo pipefail + BRANCH="chore/python-versions-sync" + TITLE="chore: sync Python versions in pyproject.toml" + + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + git checkout -B "$BRANCH" + git add pyproject.toml + if git diff --cached --quiet; then + echo "Nothing staged; the tree already matches." + exit 0 + fi + + git commit -m "$TITLE" -m "$(cat "$PR_BODY_FILE")" + + # The branch is bot-owned and always rebuilt from the default + # branch, so an existing one is intentionally replaced. + git push --force-with-lease origin "$BRANCH" + + existing=$(gh pr list --head "$BRANCH" --state open --json number --jq '.[0].number // empty') + if [ -n "$existing" ]; then + echo "Updated existing PR #$existing" + else + gh pr create --base "$BASE" --head "$BRANCH" \ + --title "$TITLE" --body-file "$PR_BODY_FILE" + fi diff --git a/README.md b/README.md index 87f45f5..48b28ec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# soerp +![SOERP](docs/assets/soerp-banner.png) + +# SOERP **Second Order Error Propagation for Python** diff --git a/docs/assets/soerp-banner.png b/docs/assets/soerp-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..f699497b0b3c3e823f0fffcc4df5068313bfbdbb GIT binary patch literal 94691 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index bfaec1d..916181c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,6 @@ -# soerp +![SOERP](assets/soerp-banner.png) + +# SOERP ![SOERP logo](assets/SOERP.svg){ width="100" } diff --git a/pyproject.toml b/pyproject.toml index 0665f4d..f997993 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,13 +38,13 @@ classifiers = [ "Intended Audience :: Science/Research", "Intended Audience :: Developers", "Programming Language :: Python", + "Programming Language :: Fortran", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", - "Programming Language :: Python :: 3 :: Only", "Topic :: Education", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics", @@ -53,7 +53,6 @@ classifiers = [ "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities", - "Operating System :: OS Independent", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix",