Skip to content

ci: add GitHub Actions workflow with lint/compile/smoke matrix#33

Open
rohithreddy66666 wants to merge 1 commit into
sochdb:mainfrom
rohithreddy66666:ci/github-actions-workflow
Open

ci: add GitHub Actions workflow with lint/compile/smoke matrix#33
rohithreddy66666 wants to merge 1 commit into
sochdb:mainfrom
rohithreddy66666:ci/github-actions-workflow

Conversation

@rohithreddy66666

Copy link
Copy Markdown

Summary

Adds a lightweight CI workflow that runs on every push/PR to main. Each matrix cell (Python 3.9–3.13 on Ubuntu) runs:

  • ruff check on the E9 / F63 / F7 rule sets — catches syntax + logic errors.
  • python -m compileall — per-version syntax coverage across the source tree.
  • import sochdb smoke test — guards against module-level breakage.

Total wall-clock per cell is well under a minute.

Why not the full pytest suite?

The tests exercise the embedded FFI path, which requires the pre-built Rust libraries from the sochdb/sochdb release page (same ones release.yml downloads). Wiring that up is left to a follow-up PR so this one stays reviewable.

Also included

  • ruff>=0.5 added to [project.optional-dependencies].dev so pip install -e ".[dev]" gives contributors the same linter CI runs.
  • CI status badge added to the top of README.md.
  • CHANGELOG.md entry under [Unreleased].

Verification

  • Local ruff check --select E9,F63,F7 src/ tests/ passes.
  • Local python -m compileall src/ passes on Python 3.9 / 3.11 / 3.13.
  • Local python -c "import sochdb; print(sochdb.__version__)" passes.

Follow-ups

  • Wire the pytest suite in a follow-up PR once the Rust FFI binary-download step is portable to a CI runner.
  • Consider adding mypy + black --check to the matrix once the codebase is fully clean.

Adds a lightweight CI pipeline that runs on every push to main and every
pull request. Each Python version (3.9-3.13) on Ubuntu runs:

- ruff check on the E9/F63/F7 rule sets (syntax + logic errors)
- python -m compileall for per-version syntax coverage
- import sochdb smoke test to guard against module-level breakage

The full pytest suite is intentionally deferred: the tests exercise the
embedded FFI path, which needs the pre-built Rust libraries from the
sochdb/sochdb release page. Wiring that up is left to a follow-up PR.

Also adds:
- ruff>=0.5 to the [dev] extras so contributors run the same linter
- CI status badge in README.md linking to the workflow
- CHANGELOG entry under [Unreleased]
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