Skip to content

Migrate to pyproject.toml + wads uv-CI stub (revives dead CI) - #24

Merged
thorwhalen merged 2 commits into
masterfrom
migrate-pyproject-uv-ci
Aug 26, 2026
Merged

Migrate to pyproject.toml + wads uv-CI stub (revives dead CI)#24
thorwhalen merged 2 commits into
masterfrom
migrate-pyproject-uv-ci

Conversation

@thorwhalen

Copy link
Copy Markdown
Member

Why

This repo's CI has been dead, not merely stale: .github/workflows/ci.yml on
master specified runs-on: ubuntu-18.04, a runner label GitHub retired. Jobs
queued indefinitely and were never scheduled — the two runs on #23 sat queued 20+
minutes before I cancelled them. Nothing can be gated on green CI here until this
lands.

What

  • pyproject.toml (hatchling). Version carried over at 1.0.42, matching
    PyPI, so the CI auto-bump lands on 1.0.43 rather than colliding.
    requires-python = ">=3.10"; 3.8 was the only version the old CI tested and is
    EOL. dependencies = [] — the old install_requires was empty and the package
    imports nothing third-party (the pyaudio occurrence is inside a reST literal
    block in a docstring, not an import, and not a doctest).
  • .github/workflows/ci.yml → the 5-line stub calling
    i2mint/wads/.github/workflows/uv-ci.yml@master, JSON secrets transport.
    PYPI_PASSWORD is an i2mint org secret visible to all repos, so publish auth
    needs nothing repo-side.
  • testpaths = ["stream2py"], not ["tests"]: there is no top-level tests/
    here — tests live in stream2py/tests/ and there are doctests in the modules.
    Pointing at tests would have collected nothing.
  • setup.cfg / setup.py removed.
  • stream2py/utility/__init__.py gains the module docstring D100 wants.

Verification

python -m pytest -q --doctest-modules stream2py
42 passed, 6 warnings in 41.43s

Merging publishes 1.0.43 to PyPI — intended.

Unblocks #23.

The repo was still on setup.cfg/setup.py with a `runs-on: ubuntu-18.04`
workflow — a runner label GitHub retired, so jobs queued forever and never ran.
CI has effectively been dead here, which is why #23 could not be gated.

- pyproject.toml (hatchling), version carried over at 1.0.42 to match PyPI;
  requires-python >=3.10 (3.8 is EOL and was the only version the old CI tested)
- .github/workflows/ci.yml is now the 5-line reusable-workflow stub; all config
  lives in [tool.wads.ci.*]
- testpaths points at the package, not a top-level tests/ — this repo's tests
  live in stream2py/tests/ and there are doctests in the modules
- setup.cfg and setup.py removed
- stream2py/utility/__init__.py gains the module docstring D100 wants

42 tests pass locally under the collection CI uses.
The JSON transport (WADS_CI_SECRETS_JSON) is what ci-to-stub emits by default,
but no repo in the fleet is on it yet and the run came back 'action_required'
with zero jobs before anything executed. The named transport is what every
already-migrated i2mint repo runs, so use the proven one here rather than debug
a wads-side transport question inside a CI-revival PR.

stream2py declares no env vars in [tool.wads.ci.env], so PYPI_PASSWORD (an
i2mint org secret) is the only one that needs passing.
@thorwhalen
thorwhalen merged commit 8102206 into master Aug 26, 2026
12 checks passed
@thorwhalen
thorwhalen deleted the migrate-pyproject-uv-ci branch August 26, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant