Skip to content

upgrade: raise named dependencies in CI and off a topic - #7

Merged
antonzherdev merged 3 commits into
mainfrom
upgrade-raise-in-ci
Oct 23, 2026
Merged

antonzherdev merged 3 commits into
mainfrom
upgrade-raise-in-ci

Conversation

@antonzherdev

@antonzherdev antonzherdev commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

git upgrade <dir> raised a dependency only on a topic and only on a developer machine, so a scheduled CI job that keeps a workspace's pins current could do neither.

  • A raise with named directories no longer needs a topic: off one it edits the root's config. Promotion (git upgrade with no directories) still needs a topic and still refuses in CI, now pointing at the raise.
  • In CI, which keeps no store, the raise fetches the repository's history alone (--filter=tree:0: commits, branches and tags, no files) into a store made for the command and removed after it, and applies the same rule as a developer machine: tags only, reachable from a branch the repository pins, holding the pin. A branch named like a version, or a tag on an unpinned hotfix line, is never taken.

Tests: normal_032 raises a calendar pin in CI with no topic, in its major and skipping a pre-release; normal_033 checks the release rule in CI; error_020/error_021 updated.

Every open PR regenerates docs/test-catalog.md: whichever merges later reruns GITSCALE_UPDATE_CATALOG=1 cargo test --test it catalog:: after rebasing. With #5 merged too, a CI raise of a lazy dependency that is not placed works.

https://claude.ai/code/session_018fr6kum7myDDnc3cmS6TfH

Anton Zherdev and others added 3 commits October 16, 2026 01:24
A raise with named directories needs no topic and no store: it edits the root's config on any branch, and in CI, which keeps no store, it reads the newest version tag from the remote by name, the way a sourceless dependency's registry is read. Promotion keeps both rules. This lets a scheduled job keep a workspace's pins current.

Claude-Session: https://claude.ai/code/session_01SyPUUhGj8Msg753dGmguxq
… rule

The CI path read every ref the remote advertised and picked the newest
version by name, so a branch named like a version, or a tag cut on a line
the repository does not pin, could be written in as a pin. It now fetches
the repository's history alone — commits, branches and tags, no files —
into a store made for the command and applies the same candidates rule a
developer machine does.

Claude-Session: https://claude.ai/code/session_018fr6kum7myDDnc3cmS6TfH
@antonzherdev
antonzherdev merged commit 479e858 into main Oct 23, 2026
1 check 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