Skip to content

fix(template): repoint sync-with-uv at the upstream project - #349

Merged
ichoosetoaccept merged 1 commit into
mainfrom
sync-with-uv-upstream
Aug 5, 2026
Merged

fix(template): repoint sync-with-uv at the upstream project#349
ichoosetoaccept merged 1 commit into
mainfrom
sync-with-uv-upstream

Conversation

@ichoosetoaccept

@ichoosetoaccept ichoosetoaccept commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

Repoints the sync-with-uv prek hook from the detailobsessed/sync-with-uv fork to the upstream project at tsvikas/sync-with-uv, in both this repo's prek.toml and the generated project/prek.toml.jinja.

  • prek.tomlrepohttps://github.com/tsvikas/sync-with-uv, revv0.6.0 (was the fork's bespoke v0.6.0-prek tag)
  • project/prek.toml.jinja — same repo change; rev stays "" for prek update to fill

Why

The fork has been deleted, so every prek update / prek run that had to clone it failed with git fetch exit 128. That took out tests/test_template.py::TestIntegration::test_first_commit_succeeds_with_prek_hooks, the pre-push pytest-cov hook, and main's CI. Generated projects were broken the same way — a fresh scaffold could not complete its first commit.

The fork existed because upstream did not yet read prek.toml. It does now: prek.toml support landed in upstream v0.6.0, so the fork has no remaining purpose. Upstream v0.6.0 is a drop-in match — same hook id (sync-with-uv), same hook name, and a files pattern that already covers prek.toml.

Test plan

  • pytest tests/test_template.py::TestIntegration::test_first_commit_succeeds_with_prek_hooks — passes (12.6s); this is the test that was failing on the dead repo
  • The pre-push pytest-cov hook passed on the push for this branch, which is the gate that blocked the previous stack merge
  • CI on this PR re-runs the full suite against the new reference

Greptile Summary

This change repoints the sync-with-uv Prek hook to its maintained upstream in the repository configuration and generated-project template. The rendered-project flow successfully installed and updated Prek hooks, and the replacement sync-with-uv hook passed. However, a freshly generated project cannot complete its initial commit on the tested Linux environment because the unchanged Lychee hook binary requires unavailable GLIBC versions.

Confidence Score: 4/5

Do not merge while generated projects can fail their first commit on supported Linux environments.

The replacement sync-with-uv hook completed successfully in a rendered project's update and commit-hook flow, but the same flow reproduced a blocking Lychee runtime incompatibility.

Files Needing Attention: project/prek.toml.jinja needs attention at the Lychee revision pin on line 122; prek.toml and the sync-with-uv template entry completed successfully.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced a proof for the posted P1 finding by running the focused first-commit test and recording the outcome.
  • T-Rex produced a proof for another posted P1 finding.
  • T-Rex performed general contract validation, capturing the exact runtime record and summarizing the Lychee configuration and PR-diff status.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (2)

  1. project/prek.toml.jinja, line 122 (link)

    P1 Lychee hook cannot load on the supported Linux baseline

    A freshly rendered project's prek update retains lychee-v0.24.2, whose Linux executable requires GLIBC_2.38 and GLIBC_2.39. On the tested environment, both initial-commit attempts fail before Lychee can run. Pin a Lychee release compatible with the supported glibc baseline, or run this hook in an environment with GLIBC 2.39 or later.

    Artifacts

    Focused first-commit test output

    • Exact captured output from the requested pytest command shows sync-with-uv passed while Lychee 0.24.2 failed to load because GLIBC 2.38 and 2.39 are unavailable, so the initial commit remains blocked.

    Lychee configuration and PR diff

    • Captured numbered template configuration and HEAD diff show the unchanged Lychee 0.24.2 pin and that the PR only repoints sync-with-uv, so the Lychee failure is pre-existing.

    View artifacts

    T-Rex Ran code and verified through T-Rex

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: project/prek.toml.jinja
    Line: 122
    
    Comment:
    **Lychee hook cannot load on the supported Linux baseline**
    
    A freshly rendered project's `prek update` retains `lychee-v0.24.2`, whose Linux executable requires `GLIBC_2.38` and `GLIBC_2.39`. On the tested environment, both initial-commit attempts fail before Lychee can run. Pin a Lychee release compatible with the supported glibc baseline, or run this hook in an environment with GLIBC 2.39 or later.
    
    ---
    
    For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

    Fix in Claude Code

  2. General comment

    P1 Initial commit fails when the template's Lychee 0.24.2 binary needs newer GLIBC

    • Bug
      • A freshly rendered project's prek update leaves Lychee at lychee-v0.24.2; its executable then fails at commit time because this Linux runner lacks GLIBC_2.38 and GLIBC_2.39. Both permitted commit attempts fail, despite the updated sync-with-uv hook passing.
    • Cause
      • project/prek.toml.jinja:122 pins the Lychee hook to lychee-v0.24.2, whose installed binary is incompatible with the runner's glibc. The [update.repos] exclusion at lines 12-13 only rejects nightly, not this incompatible stable release.
    • Fix
      • Use a Lychee hook release with binaries compatible with the supported Linux glibc baseline, or execute the hook in a GLIBC 2.39+ environment; validate with the same rendered-project first-commit test.

    T-Rex Ran code and verified through T-Rex

Fix All in Claude Code

Prompt To Fix All With AI
### Issue 1
project/prek.toml.jinja:122
**Lychee hook cannot load on the supported Linux baseline**

A freshly rendered project's `prek update` retains `lychee-v0.24.2`, whose Linux executable requires `GLIBC_2.38` and `GLIBC_2.39`. On the tested environment, both initial-commit attempts fail before Lychee can run. Pin a Lychee release compatible with the supported glibc baseline, or run this hook in an environment with GLIBC 2.39 or later.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "fix(template): repoint sync-with-uv at t..." | Re-trigger Greptile

Every generated project pointed at `detailobsessed/sync-with-uv`, a fork that no
longer exists. `prek update` fails there with

    git fetch origin HEAD --quiet --filter=blob:none --tags
    exit status: 128

so a fresh project cannot update its hooks at all. This repo kept working only
because prek still had the clone cached; CI on main and the pre-push hook both
fail on it now.

The fork existed to carry `prek.toml` support ahead of upstream -- hence the
bespoke `v0.6.0-prek` pin. That support is upstream now: tsvikas/sync-with-uv
v0.6.0 ships it, and its hook's `files` pattern matches `prek.toml` directly.
Same hook id, same name, same ordering requirement (the README still asks for it
after `uv-lock`, which is what the priority-6 comment already encodes). So this
is a repoint, not a replacement.

`floatingpurr/sync-with-uv`, the original, is gone as well; tsvikas' is the
maintained continuation at 85 stars.

No new test. `test_first_commit_succeeds_with_prek_hooks` already runs a real
`prek update` inside a generated project, which is exactly what caught this: it
fails on the dead reference and passes on the new one.
@ichoosetoaccept

Copy link
Copy Markdown
Member Author

@ichoosetoaccept
ichoosetoaccept merged commit 2cdb1eb into main Aug 5, 2026
7 checks passed
@ichoosetoaccept
ichoosetoaccept deleted the sync-with-uv-upstream branch August 5, 2026 23:42
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