Move forgejo-api to the ADR-0310 path source in os-backlog and os-sdlc #1648

Open
opened 2026-11-09 17:34:37 +00:00 by jared · 0 comments
Owner

Problem

plugins/os-backlog/Gemfile and plugins/os-sdlc/Gemfile declare forgejo-api with a Bundler git: source (ssh://git@forgejo.swansoncloud.com:2222/jared/forgejo-api.git). Each lock pins a revision. Each forgejo-api commit therefore forces a lock change in both plugins. ADR-0310 (2026-11-09) says that each gem we own uses path: to the machine's ~/dev checkout with no pin. ADR-0310 names forgejo-api as the one gem that still uses a git source until this ticket.

Reproduce

n/a: design change; the defect is the pinned revision in both locks.

Approach

Find the forgejo-api checkout under ~/dev on this machine. Declare the gem in both Gemfiles in the ADR-0310 form: path: File.expand_path("dev/<repo path>", Etc.getpwuid.dir). Update both locks. Edit plugins/os-sdlc/Gemfile and its lock only when the mutation track (#1645) has finished its run or agrees.

Required work:

  1. Declare forgejo-api by path in os-backlog — check: absent forgejo-api.git in plugins/os-backlog/Gemfile
  2. Declare forgejo-api by path in os-sdlc — check: absent forgejo-api.git in plugins/os-sdlc/Gemfile

Acceptance criteria

  1. Given a commit to the forgejo-api checkout, when os-backlog and os-sdlc boot, then each loads the new code and no Gemfile.lock changes.
  2. Given a machine without the forgejo-api checkout, when bin/refresh-plugins runs, then it names the missing checkout and the clone command.
  3. Given the Gemfiles under plugins/, when they are searched, then no Gemfile has a git: source for a gem we own.

Origin

  • Trigger: #1630 Approach, "Not in this ticket: moving forgejo-api off its git source. File it as a follow-up with the ADR"; ADR-0310 landed in main 4b8f679c
  • Improvised this session: none
  • Chain: lock change on each forgejo-api commit ← Bundler git: source pins a revision ← DESIGN (ADR-0257 item 2, removed by the ADR-0310 amend in 4b8f679c)
  • Root candidate: none found; searched forgejo-api, Gemfile, git source, path source, Gemfile.lock pin
  • Where: plugins/os-backlog/Gemfile, plugins/os-sdlc/Gemfile
  • Session: bbe5ea91-45fa-45a0-8831-c49254f48da6
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/bbe5ea91-45fa-45a0-8831-c49254f48da6.jsonl

Parent: #1610. Follows #1630.

VERDICT: CREATE

## Problem `plugins/os-backlog/Gemfile` and `plugins/os-sdlc/Gemfile` declare `forgejo-api` with a Bundler `git:` source (`ssh://git@forgejo.swansoncloud.com:2222/jared/forgejo-api.git`). Each lock pins a revision. Each `forgejo-api` commit therefore forces a lock change in both plugins. ADR-0310 (2026-11-09) says that each gem we own uses `path:` to the machine's `~/dev` checkout with no pin. ADR-0310 names `forgejo-api` as the one gem that still uses a git source until this ticket. ## Reproduce n/a: design change; the defect is the pinned revision in both locks. ## Approach Find the `forgejo-api` checkout under `~/dev` on this machine. Declare the gem in both Gemfiles in the ADR-0310 form: `path: File.expand_path("dev/<repo path>", Etc.getpwuid.dir)`. Update both locks. Edit `plugins/os-sdlc/Gemfile` and its lock only when the mutation track (#1645) has finished its run or agrees. Required work: 1. Declare `forgejo-api` by path in os-backlog — check: absent `forgejo-api.git` in `plugins/os-backlog/Gemfile` 2. Declare `forgejo-api` by path in os-sdlc — check: absent `forgejo-api.git` in `plugins/os-sdlc/Gemfile` ## Acceptance criteria 1. Given a commit to the `forgejo-api` checkout, when os-backlog and os-sdlc boot, then each loads the new code and no `Gemfile.lock` changes. 2. Given a machine without the `forgejo-api` checkout, when `bin/refresh-plugins` runs, then it names the missing checkout and the clone command. 3. Given the Gemfiles under `plugins/`, when they are searched, then no Gemfile has a `git:` source for a gem we own. ## Origin - Trigger: #1630 Approach, "Not in this ticket: moving `forgejo-api` off its git source. File it as a follow-up with the ADR"; ADR-0310 landed in main 4b8f679c - Improvised this session: none - Chain: lock change on each forgejo-api commit ← Bundler `git:` source pins a revision ← DESIGN (ADR-0257 item 2, removed by the ADR-0310 amend in 4b8f679c) - Root candidate: none found; searched forgejo-api, Gemfile, git source, path source, Gemfile.lock pin - Where: `plugins/os-backlog/Gemfile`, `plugins/os-sdlc/Gemfile` - Session: bbe5ea91-45fa-45a0-8831-c49254f48da6 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/bbe5ea91-45fa-45a0-8831-c49254f48da6.jsonl Parent: #1610. Follows #1630. VERDICT: CREATE
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1648
No description provided.