Skip to content

ci: add pull-request checks, and make main pass them - #17

Merged
funcpp merged 4 commits into
mainfrom
ci/add-pr-checks
Sep 21, 2026
Merged

funcpp merged 4 commits into
mainfrom
ci/add-pr-checks

Conversation

@funcpp

@funcpp funcpp commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Groundwork for working through the contributions in #15.

What

Commit Change
style: apply rustfmt to the workspace Output of cargo fmt --all, no manual edits
fix: drop unneeded struct pattern on a unit variant Statement::UnlockTables { .. }Statement::UnlockTables
ci: run fmt, clippy, tests, and a Python smoke test on pull requests New .github/workflows/ci.yml + README badge
ci: let dependabot track cargo dependencies Adds the cargo ecosystem alongside github-actions

No behavior change.

Why

Workflow

Four jobs on ubuntu-latest, on pull_request and pushes to main:

  • rustfmtcargo fmt --all --check
  • clippy--workspace --all-targets --all-features -- -D warnings
  • testcargo test --workspace --all-features
  • python — maturin wheel build + the same smoke test as release.yml

clippy and test set up Python because sqllineage-python is a workspace member that links against libpython. Cross-platform and multi-version coverage stays in release.yml.

Verified locally

cargo fmt --all --check                                           exit 0
cargo clippy --workspace --all-targets --all-features -D warnings exit 0
cargo test --workspace --all-features                             exit 0  (88 tests + 1 doctest)
maturin build --manifest-path sqllineage-python/Cargo.toml        wheel built

Open

Cargo.lock is gitignored. Committing it would make CI reproducible for the shipped binary — separate call, not included here.

🤖 Generated with Claude Code

funcpp and others added 4 commits September 21, 2026 13:47
`main` was not rustfmt-clean: `cargo fmt --all -- --check` reported 19
hunks across `build/expr.rs` and `resolve/mod.rs`. Every incoming patch
that touched those files had to choose between leaving them unformatted
and burying its change in unrelated reformatting.

This commit is the output of `cargo fmt --all` with no manual edits, so
that the formatting gate added alongside it starts green.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`Statement::UnlockTables` is a unit variant, so matching it as
`UnlockTables { .. }` triggered clippy's `unneeded_struct_pattern`. This
was the only warning on `main`, and it had to go before the clippy gate
could run with `-D warnings`.

No behavior change: the arm already mapped to `StatementType::Other`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The repository had no pull-request CI. `release.yml` only triggers on
version tags, so nothing checked a branch until it was already being
released, and every incoming patch had to be verified by hand.

Four jobs, all on `ubuntu-latest`:

- `rustfmt`   — `cargo fmt --all --check`
- `clippy`    — `--workspace --all-targets --all-features -- -D warnings`
- `test`      — `cargo test --workspace --all-features`
- `python`    — builds the wheel with maturin and runs the same smoke
                test as `release.yml`, so a broken PyO3 binding fails on
                the pull request rather than on the release tag

`clippy` and `test` set up Python because `sqllineage-python` is a
workspace member and links against libpython at build time. Cross-platform
and multi-version coverage stays in `release.yml`; this workflow is the
fast gate, not a replacement for it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Dependabot only watched GitHub Actions, so `sqlparser`, `pyo3`, `clap`,
and `serde` were never proposed for update. `sqlparser` in particular
gates which dialects and syntax the crate can support, so noticing a new
release matters here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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