Repository navigation
chore: convert score_tools into a uv workspace - #17
Merged
Merged
Conversation
Split the single flat pyproject.toml into a uv workspace with cr_checker and repo_policy_sync as independent packages, each with its own pyproject.toml and dependencies. The root pyproject.toml is now a virtual workspace root (package = false) sharing one venv and lockfile. This is a pure packaging change with no functional or behavioral changes to either component. It also lays the groundwork for adding further independently-installable components to this repo. While splitting dependencies per package, dropped pydantic and bazel-runfiles from the root dependency list: neither is imported anywhere in the codebase, so they were dead weight that predated this change. CI now builds and smoke-tests each package's wheel separately instead of one combined wheel.
AlexanderLanin
requested review from
MaximilianSoerenPollak,
dcalavrezo-qorix and
nradakovic
as code owners
August 28, 2026 11:06
MaximilianSoerenPollak
approved these changes
Aug 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
score_toolscurrently builds one combined Python package out ofcr_checkerandrepo_policy_sync. That makes it hard to add a new, independently reusable component later: every component would be forced to share one dependency list and one wheel, even if it needs none of the others' dependencies.What
Converts the repo into a uv workspace: the root
pyproject.tomlbecomes a virtual workspace root, andcr_checkerandrepo_policy_synceach get their own realpyproject.tomlwith their own dependencies and build config. Everything still shares one.venvand oneuv.lock, so day-to-day commands (uv run pytest,uv run ruff, IDE integration) work exactly as before.This is a pure packaging change — no source code, tests, or behavior changed. CI now builds and smoke-tests each package's wheel separately instead of one combined wheel.
As a side effect of splitting the dependency list per package,
pydanticandbazel-runfileswere dropped: neither is used anywhere in the codebase.This is the first of two stacked PRs; the second will add a new
repo_cachecomponent on top of this workspace structure.