Skip to content

CI: smoke-test a freshly scaffolded library - #162

Merged
wdm0006 merged 1 commit into
mainfrom
autopilot/issue-161
Oct 25, 2026
Merged

wdm0006 merged 1 commit into
mainfrom
autopilot/issue-161

Conversation

@wdm0006

@wdm0006 wdm0006 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Closes #161

Adds a scaffold-smoke job (Linux, every PR) running tests/smoke_scaffold.sh: scaffold smoke-lib with create_project.py, then in the generated project uv sync --extra dev, ruff check, ruff format --check, pytest, mypy src, uv build; finally install the wheel into a throwaway venv and import it from the temp dir above the project, asserting the module path is in the venv's site-packages. The stdlib unittest suite and the existing tests job are unchanged.

Real defect found and fixed: the first run failed ruff format --check. The scaffold wrote the __init__.py docstring via !r (single quotes); it now uses json.dumps, giving a double-quoted literal.

Verification

  • bash tests/smoke_scaffold.sh passes locally (ruff 0.17.2); unittest discover 62 OK.
  • Mutation: unused import os in the template __init__.py -> script fails (F401).
  • Mutation: where = ["docs"] -> fails at pytest collection (never reaches the wheel step).
  • Mutation: exclude = ["*"] in packages.find (the scaffold uses setuptools, so packages does not apply) -> ruff/pytest/mypy/uv build all pass; only the out-of-tree wheel import fails (ModuleNotFoundError). This is the one that shows the import step guards something.
  • Not run: the job on GitHub itself (it runs on this PR).

Tool versions are whatever the scaffold's dev extra resolves; no pins or repo-level lint config added.

Screenshots

n/a — no user-visible change.

@wdm0006
wdm0006 merged commit 23e32d0 into main Oct 25, 2026
2 checks passed
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.

[autopilot] Smoke-test a freshly scaffolded library through lint, tests and built-wheel import in CI

1 participant