Initialize bcbench-core workspace package - #914
Open
Sun Haoran (haoranpb) wants to merge 1 commit into
Open
Sun Haoran (haoranpb) wants to merge 1 commit into
Sun Haoran (haoranpb) wants to merge 1 commit into
Conversation
Sun Haoran (haoranpb)
force-pushed
the
core/stack-01-package-skeleton
branch
from
October 2, 2026 10:35
769896b to
a0999e8
Compare
Sun Haoran (haoranpb)
force-pushed
the
core/stack-01-package-skeleton
branch
from
October 2, 2026 10:35
a0999e8 to
61750b0
Compare
Sun Haoran (haoranpb)
added this pull request to stack #916
October 2, 2026 10:39
Add packages/bcbench-core as a uv workspace member consumed by the bcbench application. The package is empty: it establishes packaging and boundary enforcement before code moves in later stacked PRs. - Both projects build with uv_build (src layout, PEP 639 license metadata); the app no longer needs setuptools package-data rules - Core ships a PEP 561 py.typed marker - Core owns the ruff baseline and bans bcbench imports and environment reads; the app extends it with application-only settings - ty checks core with all rules as errors through `uv check`, which enables the uv integration that missing-direct-dependency requires Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3fa47b3c-f5d6-4c36-9be3-c4fdf2bebe47
Sun Haoran (haoranpb)
force-pushed
the
core/stack-01-package-skeleton
branch
from
October 2, 2026 10:58
61750b0 to
16209b3
Compare
Sun Haoran (haoranpb)
marked this pull request as ready for review
October 2, 2026 11:19
Contributor
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The build-backend migration and preview type-check hook still need runtime validation before approval.
Review effort: Balanced
Findings: None
What changed in this PR
Establishes an empty bcbench-core library as the first step in extracting reusable evaluation components from BC-Bench. No application code moves yet.
Changes:
- Creates a two-project uv workspace and switches both packages to
uv_build. - Moves the Ruff baseline into core and adds library-boundary checks.
- Documents the workspace and adds a strict core type-check hook.
| File | Description |
|---|---|
uv.lock |
Records workspace membership and the core dependency. |
pyproject.toml |
Configures app packaging, workspace wiring, and inherited lint settings. |
packages/bcbench-core/src/bcbench_core/py.typed |
Marks core as typed. |
packages/bcbench-core/src/bcbench_core/__init__.py |
Creates the empty importable package. |
packages/bcbench-core/README.md |
Defines library boundaries and development commands. |
packages/bcbench-core/pyproject.toml |
Defines packaging, lint rules, and strict type checking. |
packages/bcbench-core/LICENSE |
Adds the library’s MIT license. |
CONTRIBUTING.md |
Explains the workspace structure. |
.pre-commit-config.yaml |
Adds the core type-check hook. |
.github/copilot-instructions.md |
Documents core boundaries and lint configuration ownership. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Collaborator
Author
|
Test run triggered for |
This branch has not been deployed
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.
Stack 1 of the
bcbench-coreextraction, stacked on #915 (ty and uv bumps). The repository becomes a two-project uv workspace: thebcbenchapplication stays at the root and depends on a new, intentionally emptybcbench-corelibrary. Code moves in later PRs; this one only establishes packaging and the library boundary.uv_build(src/layout, SPDX license metadata). For the app this replaces setuptools and itspackage-datapatterns: every file undersrc/bcbenchnow ships, and stale modules from a leftoverbuild/directory no longer do. Core adds apy.typedmarker and is markedPrivate :: Do Not Uploaduntil we decide to publish.extends it and redefines only application settings (jinja2 bans, per-file ignores). Resolved settings for app, test, and command files are unchanged. Core additionally bansbcbenchimports,os.environ/os.getenv, anddotenv.uv check --package bcbench-core, which enables ty's uv integration somissing-direct-dependencyrejects imports core does not declare. The app's ty config excludespackages/.uv.lockcontains only the workspace changes.Deferred:
tests.conftest, so a secondtests/tree needs an import-mode decision then.