Skip to content

chore: OSS hygiene pass — CI, ruff, jupytext, dependabot, docs#4

Merged
wock9000 merged 1 commit into
mainfrom
ship/oss-hygiene-1778160196
May 7, 2026
Merged

chore: OSS hygiene pass — CI, ruff, jupytext, dependabot, docs#4
wock9000 merged 1 commit into
mainfrom
ship/oss-hygiene-1778160196

Conversation

@wock9000
Copy link
Copy Markdown
Contributor

@wock9000 wock9000 commented May 7, 2026

Summary

Same hygiene pass that landed in paros (#8/#9/#12), tailored to kos.

  • Ruff configured (target-py311, line-length 100, E/W/F/I/B/UP/SIM rule set); applied ruff format across kos/, tests/, examples/.
  • CI added with three jobs: lint (ruff check + format), test (pytest, 24 cases passing), notebook-pairing-check (jupytext sync verification).
  • Examples paired with .py shadows via jupytext (formats = "ipynb,py:percent"). .ipynb keeps outputs for README hero plots; .py is the diffable source. CI fails if pairings drift.
  • Dependabot for github-actions and uv.
  • CONTRIBUTING.md explaining scope (kos = primitives, paros = applied), code style, and the pair workflow.
  • SECURITY.md routing vulns to security@xylem-group.org.
  • README badges — CI, license, Python, Ruff.

Test plan

  • Scan for secrets passes
  • lint job passes (ruff check + format check)
  • test job passes (24 tests)
  • notebook-pairing-check passes
  • After merge, dependabot picks up github-actions and opens its first PRs

Notes

  • License unchanged (CC BY-NC 4.0); badge reflects this.
  • Examples were already shipped as both .ipynb and .py; this PR makes the pairing canonical (jupytext metadata) so future edits stay in sync via tooling, not convention.

🤖 Generated with Claude Code

- pyproject: configure ruff (target-py311, line-length=100, sensible
  rule set); ignore E501 (formatter handles), B905 (idiomatic zip)
- apply ruff format across kos/, tests/, examples/ — 6 files touched
- ci: lint (ruff check + format check), test (pytest 24 cases),
  notebook-pairing-check (jupytext --sync verification)
- pair examples/{markout,vpin,if_stress}_demo.ipynb with their .py
  shadows via jupytext metadata (formats=ipynb,py:percent); .ipynb
  keeps outputs (README hero plots), .py is the diffable source
- add .github/dependabot.yml: weekly github-actions and uv updates
- add CONTRIBUTING.md: contribution scope, code style, pair workflow
- add SECURITY.md: vuln reporting to security@xylem-group.org
- README: CI / license / Python / Ruff badges

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@wock9000 wock9000 merged commit 59be9f2 into main May 7, 2026
4 checks passed
@wock9000 wock9000 deleted the ship/oss-hygiene-1778160196 branch May 7, 2026 13:26
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