Skip to content

ci(prepare-release): drop the uv.lock pre-flight — this repo has no lockfile - #9

Merged
CSSFrancis merged 1 commit into
mainfrom
fix/prepare-release-no-lockfile
Sep 24, 2026
Merged

CSSFrancis merged 1 commit into
mainfrom
fix/prepare-release-no-lockfile

Conversation

@CSSFrancis

Copy link
Copy Markdown
Member

The first real run
of Prepare Release died at step 6:

error: Unable to find lockfile at `uv.lock`, but `--check` was provided.

uv.lock is on line 11 of .gitignore and has never been tracked. I took the
step from SpyDE's Prepare Release and checked it against a working tree where
uv sync had left a lockfile lying around, rather than against what git
actually carries. A git ls-files would have caught it.

It does not belong here anyway

SpyDE is an application: it ships its lock in the installer payload, and the
user's sidecar env is resolved from it on their machine, so drift reaches users.
de-shell is a library on PyPI — the apps resolve their own environments, and
a lockfile here would mean nothing to them. The comment I wrote justifying the
step actually described SpyDE's lock, which SpyDE already checks.

The other pre-flight stays: the git-deps-pinned grep reads pyproject.toml and
needs no lockfile.

Two claims in the generated PR body were also wrong

  • It said the lock check had passed. Removed.
  • It told the reviewer to confirm CI passes — but CI does not start on its own
    for a PR opened with GITHUB_TOKEN
    . GitHub suppresses workflow runs for
    events raised with that token, so the release PR gets no pull_request run at
    all. The checklist now says so, and says to close/reopen the PR or push an
    empty commit to get one.

Dry run

Rather than eyeball it again, I cloned main into a pristine workspace — no
.venv, no lockfile, nothing installed — and ran every step by hand:

step result
Compute new version reads 0.2.2 from de_shell/__init__.py
Verify git deps pinned pass (none present)
Bump + read-back guard __version__ → 0.3.0, guard confirms
towncrier draft + build OK — needs no de_shell import when --version is passed
Commit release changes stages the bump, the new section, and 3 consumed fragments

The assembled 0.3.0 section came out right: #2 under Bug Fixes, #7 and the
towncrier setup under Maintenance.

No cleanup needed from the failed run — it died before the bump, so nothing was
pushed and no release/* branch was left behind.

…ockfile

The first real run of Prepare Release died at step 6:

    error: Unable to find lockfile at `uv.lock`, but `--check` was provided.

uv.lock is on line 11 of .gitignore and has never been tracked. The step came
straight from SpyDE's Prepare Release, and it was checked against a working
tree where `uv sync` had left a lockfile lying around rather than against what
git actually carries.

It does not belong here either way. SpyDE is an APPLICATION: it ships its lock
in the installer payload and the user's sidecar env is resolved from it, so
drift reaches users. de-shell is a LIBRARY on PyPI — the apps resolve their own
environments, and a lockfile here would mean nothing to them. The comment
justifying the step described SpyDE's lock, which SpyDE already checks.

The other pre-flight stays: the git-deps-pinned grep reads pyproject.toml and
needs no lockfile.

Also corrects two things the PR body claimed:

- it said the lock check had passed;
- it told the reviewer to confirm CI passes, but CI does not start on its own
  for a PR opened with GITHUB_TOKEN — GitHub suppresses workflow runs for
  events raised with it. The checklist now says so and how to get a run.

Dry-run in a pristine clone of main with no .venv and no lockfile: compute
version, git-deps check, bump + read-back, towncrier draft and build (which
needs no de_shell import when --version is passed), and the release commit —
all pass. 3 fragments consumed, CHANGELOG.rst assembled correctly.
@CSSFrancis
CSSFrancis merged commit ba6f602 into main Sep 24, 2026
8 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