Skip to content

chore: engineering hygiene — version-sync, lint/type gate, reformat, supply-chain (final, on settled main)#86

Merged
abrichr merged 2 commits into
mainfrom
chore/engineering-hygiene-final
Jul 13, 2026
Merged

chore: engineering hygiene — version-sync, lint/type gate, reformat, supply-chain (final, on settled main)#86
abrichr merged 2 commits into
mainfrom
chore/engineering-hygiene-final

Conversation

@abrichr

@abrichr abrichr commented Jul 13, 2026

Copy link
Copy Markdown
Member

Final engineering-hygiene pass, regenerated on the current (settled) main (0.19.0). Supersedes #77, whose reformat was generated on an old main and no longer applies. Closes #77.

What this lands

  1. Version-sync (the real bug). openadapt_flow.__version__ was 0.1.0 while the released pyproject version is 0.19.0. Synced __version__ to 0.19.0 and added version_variables = ["openadapt_flow/__init__.py:__version__"] to [tool.semantic_release] so future releases keep them in lockstep. (The existing wheel CI job already asserts __version__ == importlib.metadata.version and that py.typed ships — this makes that assertion pass.)
  2. Lint/type deps + config. Added ruff, mypy, pytest-cov to [dev]; added [tool.ruff] (lint + format), [tool.mypy] (core package only, ignore_missing_imports, a documented ignore_errors debt list re-derived against current main), and [tool.coverage]. Shipped openadapt_flow/py.typed + wheel force-include (PEP 561).
  3. Fresh reformat. ruff format openadapt_flow tests on current main, in a separate style: commit (146 files, mechanical reflow only — trivially revertable).
  4. CI lint job. Added a lint job (ruff check + ruff format --check + mypy) to ci.yml as its own job. The required test gate and the entire ci: fast required gate (e2e post-merge) to unclog the merge queue #76 structure are byte-unchanged (verified: the only diff to ci.yml is the inserted lint block).
  5. Supply chain + scaffolding. SHA-pinned the previously-unpinned release.yml actions; added .github/dependabot.yml. Added the scaffolding that was absent on main: CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, .github/CODEOWNERS, issue templates, PR template.

Re-derived vs #77

The mypy debt list was re-derived against current main (mypy 2.3.0): identical to #77's list plus openadapt_flow.learning.synth_stream (new module since #77, from the continuous-learning work).

Verification (committed tree)

  • ruff check openadapt_flow — clean
  • ruff format --check openadapt_flow tests — clean (198 files already formatted)
  • mypy — Success: no issues found in 109 source files
  • pytest -q --ignore=tests/e2e1173 passed, 16 skipped

The lint job is intentionally a separate context; wire it into branch protection separately if desired. The required test context is unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ

abrichr and others added 2 commits July 13, 2026 18:31
Regenerated on current (settled) main; supersedes the stale #77 whose
reformat was generated on an old main and no longer applies.

- Version-sync (the real bug): openadapt_flow.__version__ was 0.1.0 while the
  released pyproject version is 0.19.0. Sync __version__ and add
  version_variables to [tool.semantic_release] so releases keep them in
  lockstep (the wheel job already asserts they match).
- Lint/type gate: add ruff, mypy, pytest-cov to [dev]; add [tool.ruff]
  (lint+format), [tool.mypy] (core package, ignore_missing_imports, a
  documented ignore_errors debt list re-derived against current main), and
  [tool.coverage]. Ship py.typed + wheel force-include (PEP 561).
- CI: add a `lint` job (ruff check + ruff format --check + mypy) as its own
  job; the required `test` gate and the #76 structure are untouched.
- Supply chain: SHA-pin the release.yml actions; add .github/dependabot.yml.
- Scaffolding (absent on main): CONTRIBUTING, SECURITY, CODE_OF_CONDUCT,
  CODEOWNERS, issue + PR templates.
- Import hygiene: ruff --fix import sorting + 3 dead-import removals so the
  lint gate is green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
Mechanical `ruff format openadapt_flow tests` reflow only — no behavior
change. Isolated in its own commit so it is trivially revertable and keeps
the chore commit's config/infra diff legible. Regenerated fresh on current
main (the stale #77 reformat was generated on an old main).
@abrichr abrichr marked this pull request as ready for review July 13, 2026 22:47
@abrichr abrichr merged commit d38dc78 into main Jul 13, 2026
5 checks passed
@abrichr abrichr deleted the chore/engineering-hygiene-final branch July 13, 2026 23:05
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