Skip to content

hookd: 馃悰 Wait for uv to resolve the release before installing - #313

Merged
yasyf merged 1 commit into
mainfrom
updater-index-wait
Oct 5, 2026
Merged

yasyf merged 1 commit into
mainfrom
updater-index-wait

Conversation

@yasyf

@yasyf yasyf commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Context

The 12.88.0 self-update failed minutes after publish-pypi succeeded.
uv tool install capt-hook==12.88.0 returned No solution found, and the updater
reported host 12.87.6 did not reach v12.88.0.

Summary

Before installing, package-install waits up to 10 minutes for uv to resolve
capt-hook==<build>. It probes every 5 seconds with
uv pip compile --no-deps --refresh-package capt-hook, passing the requirement on
stdin. Only the resolution probe repeats; installation is attempted once.

An existing tool env for this build skips the wait. A probe uv cannot run fails
immediately. capt-hook helper install names the wait in its progress line.

Motivation

Asking uv honors UV_DEFAULT_INDEX, UV_FIND_LINKS, and uv.toml. Direct index
polling made linux-host CI wait 10 minutes and fail because its local wheelhouse
is supplied through UV_FIND_LINKS.

At 06:53 UTC on 2026-10-05, PyPI's simple JSON listed 12.88.3 in versions but had
no matching files. uv could not resolve it until a minute later. Checking
versions alone would have ended the wait too early.

Details

The wait has its own 10-minute budget. #312 already provides the separate
15-minute install and 3-minute swap budgets. The Python updater's existing
30-minute deploy() timeout covers the 28-minute worst case.

Fake-uv tests in toolrelease_test.go cover resolution after two probes with exact
argv and stdin, deadline failure with the version and uv's last stderr, and
immediate failure when uv cannot run. Local checks passed:

  • go test ./internal/hookd/ -run 'AwaitResolvable|PackageInstall'
  • GOOS=linux go vet ./internal/hookd/

@yasyf
yasyf force-pushed the updater-index-wait branch from 63168de to a49f80b Compare October 5, 2026 06:37
@yasyf yasyf changed the title hookd: 馃悰 Wait for indexed releases and preserve the host swap budget hookd: 馃悰 Wait for the package index before installing a release Oct 5, 2026
@yasyf
yasyf changed the base branch from main to tool-env-budget October 5, 2026 06:37
@yasyf
yasyf force-pushed the updater-index-wait branch from a49f80b to 6443e3d Compare October 5, 2026 07:02
@yasyf yasyf changed the title hookd: 馃悰 Wait for the package index before installing a release hookd: 馃悰 Wait for uv to resolve the release before installing Oct 5, 2026
@yasyf
yasyf force-pushed the updater-index-wait branch from 6443e3d to 201613a Compare October 5, 2026 07:07
@yasyf
yasyf force-pushed the updater-index-wait branch from 201613a to c4ad560 Compare October 5, 2026 07:24
@yasyf
yasyf changed the base branch from tool-env-budget to main October 5, 2026 07:24
@yasyf
yasyf force-pushed the updater-index-wait branch from c4ad560 to 5e0d765 Compare October 5, 2026 07:26
@yasyf
yasyf merged commit bf0bb6e into main Oct 5, 2026
23 checks passed
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