Skip to content

Prove the built wheel still has its dataset in it - #13

Merged
neosergio merged 1 commit into
mainfrom
ci/enforce-typing-and-version-guard
Aug 22, 2026
Merged

neosergio merged 1 commit into
mainfrom
ci/enforce-typing-and-version-guard

Conversation

@neosergio

@neosergio neosergio commented Jul 13, 2026

Copy link
Copy Markdown
Owner

The dataset ships as package data. If that ever stops working, the wheel still builds, passes twine, uploads and installs -- it just contains no addresses, and the library is inert. Nothing in CI would notice: the test suite runs against the source tree, where the file is on disk whether or not packaging would have included it.

I checked rather than assumed. A wheel with the .jsonl removed passes twine check --strict without complaint; twine validates metadata, not contents. So CI now installs the built wheel into a venv outside the repo, where there is no source tree to fall back on, and makes it produce an address. Against a stripped wheel that step fails on the missing file, which is the whole point of it.

PyPI versions are immutable, so the alternative to catching this before a release is not catching it at all.

Also: cache pip across jobs, and cancel a superseded run rather than letting two five-version matrices race.

Summary by CodeRabbit

  • Chores
    • Improved build and release validation to confirm packages can be installed and include required address data.
    • Reduced redundant checks by canceling outdated workflow runs when newer changes are submitted.
    • Enabled caching to help routine quality checks complete more efficiently.

The dataset ships as package data. If that ever stops working, the wheel
still builds, passes twine, uploads and installs -- it just contains no
addresses, and the library is inert. Nothing in CI would notice: the test
suite runs against the source tree, where the file is on disk whether or
not packaging would have included it.

I checked rather than assumed. A wheel with the .jsonl removed passes
`twine check --strict` without complaint; twine validates metadata, not
contents. So CI now installs the built wheel into a venv outside the repo,
where there is no source tree to fall back on, and makes it produce an
address. Against a stripped wheel that step fails on the missing file,
which is the whole point of it.

PyPI versions are immutable, so the alternative to catching this before a
release is not catching it at all.

Also: cache pip across jobs, and cancel a superseded run rather than
letting two five-version matrices race.
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e3dc17d7-3513-4130-8a75-d87ace4ca82f

📥 Commits

Reviewing files that changed from the base of the PR and between ae5a2c9 and 65763f1.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

📝 Walkthrough

Walkthrough

The CI workflow now cancels superseded runs, caches pip dependencies for lint and test jobs, and adds a package job that builds, validates, installs, and smoke-tests the wheel.

Changes

CI and package validation

Layer / File(s) Summary
Workflow concurrency and caching
.github/workflows/ci.yml
Runs are grouped by ref with superseded runs cancelled, while lint and test jobs enable pip caching.
Wheel build and installation smoke test
.github/workflows/ci.yml
A new package job builds the wheel, runs a strict Twine check, installs it in an external temporary virtual environment, and verifies the shipped dataset is non-empty.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant PackageJob
  participant BuildTools
  participant Twine
  participant TemporaryVenv
  PackageJob->>BuildTools: build wheel
  PackageJob->>Twine: run strict package check
  PackageJob->>TemporaryVenv: install built wheel
  TemporaryVenv-->>PackageJob: assert shipped dataset is non-empty
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly refers to the main change: CI proving the built wheel still includes its dataset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/enforce-typing-and-version-guard

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@neosergio
neosergio merged commit 28bdd8f into main Aug 22, 2026
8 checks passed
@neosergio
neosergio deleted the ci/enforce-typing-and-version-guard branch August 23, 2026 20:56
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