Repository navigation
fix(#5): drop build.sh's uv dev-environment refresh - #12
Merged
Merged
Conversation
The refresh ran uv lock/uv sync in a separate uv project wrapping the package, a monorepo layout. Here the repository root is the package (managed = false, uv lock refuses it). The guard compared a physical and a logical path as strings, so a symlinked checkout ran the block and failed the build; compared correctly, it never runs. Removed, with a test that the build scripts call neither uv lock nor uv sync. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 tasks done
8 of 10 tasks
3 tasks done
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.
Closes #5
After a local build,
scripts/build.shrefreshed "the repo-root uv dev environment" by runninguv lockanduv syncatgit rev-parse --show-toplevel. Its guard skipped this when the repo root was the package itself, but it compared a physical path (from git) with a logical one (fromcd && pwd) as strings. So in a checkout reached through a symlink, the block ran anduv lockfailed the build, because this repo'spyproject.tomlhas[tool.uv] managed = false.The first version of this fix compared the directories with
-ef. The adversarial pass then pointed out that, since the move,--show-toplevelalways returns the package directory, so a correct guard means the block never runs here. The block only made sense in the monorepo, where a separate uv project wrapped the package, so this PR deletes it instead. The wording that still describes that layout (README,pyproject.tomlcomment, the next stepsbuild.shprints) is fixed in the PR for #6.Test plan
tests/test_build_no_uv_refresh.py::test_build_scripts_do_not_lock_or_sync_a_uv_projectscansscripts/build*.shforuv lock/uv synccommands, ignoring comments. RED: onmainit finds both lines of the old block. GREEN: it passes with this change.test_the_scan_sees_the_old_refreshpins the scan on the old block's text, including a commented-outuv lockthat must not count.bash -n scripts/build.shand pre-commit pass.Coverage
Invariant: a local build never runs
uv lockoruv syncagainst a uv project.git grep -nE "uv (lock|sync)|REPO_ROOT" -- scripts .github:build.sh's refresh block (gone now), plus a comment intest-python-bindings.yml:49.build.shlocal build, any checkout (plain, worktree, symlinked)build-native.shbuild*.shCIset)Known gaps: None.
Adversarial pass
pyproject.tomlcomment and thebuild.shnext steps describe a repo-root uv project that doesn't exist. Real, and the same scope as Stale pom.xml / repo-root pyproject wording after the move #6: fixed in that PR.conftest.pyimportsarcadedb_embeddedinpytest_unconfigure. This was already true of every test in the suite, which runs against the installed wheel. Not changed here.Review cycles
This repository has no Claude review workflow, so no bot review was waited for. Final state:
no-reviewer.🤖 Generated with Claude Code