Skip to content

update-snapshot: never downgrade, stay above per-package build numbers - #88

Merged
Tobias-Fischer merged 5 commits into
mainfrom
sync-no-downgrade
Oct 12, 2026
Merged

Tobias-Fischer merged 5 commits into
mainfrom
sync-no-downgrade

Conversation

@Tobias-Fischer

Copy link
Copy Markdown
Collaborator

Two bugs in rs <distro> update-snapshot (the bot's rosdistro sync), found by redoing lyrical's 2026-10-05 sync (#60) on top of #82 and #83:

  • Downgrades. Lyrical's previous snapshot was taken from rosdistro master after the 2026-10-05 sync, and EasyNav 0.5.0 was spliced in on top. Syncing to the tag rolled 7 repositories back (EasyNav 0.5.0 → 0.4.2, roboplan 0.7.0 → 0.6.1, gtsam 4.3.1 → 4.3.0, NavMap, yaets, …) and dropped 20 packages. Now a repository that the previous snapshot has ahead of the sync keeps all its entries. A repository counts as ahead when one of its packages has a newer version, or when the sync drops a package that rosdistro master still releases (easynav_playgrounds, easynav_nav2_bridge). The PR body lists the repositories that were kept. For lyrical this means 95 updated, 6 added and 0 removed packages (previously 148 updated, 53 of them downgrades, and 20 removed).
  • Build-number collision. The full-rebuild build number was the highest released build + 1 (28 + 1 = 29), but 78 lyrical packages already had build_number: 29 overrides, which the same step deletes and which needn't be on the channel yet. It now also goes above those (30).

Test: test_sync_keeps_repositories_ahead_of_it.

🤖 Generated with Claude Code

Tobias-Fischer and others added 4 commits October 12, 2026 21:04
- a repository the previous snapshot has ahead of the sync (taken from rosdistro
  master, or spliced in from it) keeps all its entries: a newer version of one of its
  packages, or a package the sync drops that master still releases (EasyNav 0.5.0,
  roboplan 0.7.0, gtsam 4.3.1 in lyrical's 2026-10-05 sync)
- the full-rebuild build number also goes above the per-package build numbers it
  drops, which needn't be on the channel yet (lyrical: 29 collided with them)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The unauthenticated GitHub API ran into its rate limit (two local syncs in a row);
git ls-remote needs no token and has no limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
They belong to the lyrical sync (#60), not to the tooling fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer
Tobias-Fischer merged commit a1ac661 into main Oct 12, 2026
26 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the sync-no-downgrade branch October 12, 2026 21:32
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