Skip to content

fix: keep unprefixed v* tags for the LoopStructural release-please component - #314

Merged
lachlangrose merged 1 commit into
masterfrom
fix-release-please-tag-prefix
Aug 14, 2026
Merged

fix: keep unprefixed v* tags for the LoopStructural release-please component#314
lachlangrose merged 1 commit into
masterfrom
fix-release-please-tag-prefix

Conversation

@lachlangrose

@lachlangrose lachlangrose commented Aug 14, 2026

Copy link
Copy Markdown
Member

Summary

  • Fixes a regression from fix: track LoopStructural version in pyproject.toml instead of version.py #312: repointing the LoopStructural component's path to . let release-please derive its component name from pyproject.toml, which switched tag generation to the manifest-mode default of prefixing tags with the component name (LoopStructural-v*).
  • No such tags exist in this repo's history — every past release used a plain v* tag (v1.7.1, v1.7.0, ...). Confirmed directly from the release-please run log that produced PR chore: release master #313:
    ❯ looking for tagName: LoopStructural-v1.7.1
    ✔ No latest release found for path: ., component: LoopStructural, but a previous version (1.7.1) was specified in the manifest.
    ❯ commits: 415
    ✔ Considering: 415 commits
    
    plus ~100 repeats of ⚠ Found release tag with component '', but not configured in manifest — one per existing unprefixed tag, each rejected because it doesn't match the newly-expected LoopStructural-v* scheme. With no matching tag, release-please fell back to walking all 415 commits in the repo's history, producing PR chore: release master #313's regressive .: "1.6.5" manifest bump and the giant stale changelog dump.
    include-component-in-tag: false restores the historical unprefixed tag scheme, so release-please finds v1.7.1 as the last release again.
  • Also removes packages/loop_interpolation/src/loop_interpolation/loopsolver/version.py, a stray unused file (not imported anywhere; loop_interpolation already has a static version in its own pyproject.toml). It's collateral damage from the same path change: release-please's generic "find any file named version.py" search used to be scoped to the old LoopStructural/ subdirectory, and now scans the whole repo, which is why this unrelated file showed up in PR chore: release master #313's diff too.

Test plan

  • Confirmed via git tag -l that all past LoopStructural releases used plain v* tags (v1.6.5 ... v1.7.1), while the workspace sub-packages use prefixed tags (loop-common-v0.0.2).
  • Confirmed via the release-please run log (quoted above) exactly why v1.7.1 wasn't found and where the 415-commit fallback came from.
  • Confirmed loopsolver/version.py has no importers anywhere in the repo.
  • After merge, confirm the release-please workflow regenerates PR chore: release master #313 with a correct (or empty) diff instead of the 1.6.5 downgrade, and no longer touches loopsolver/version.py.

⚠️ PR #313 (the bad release-please PR) must not be merged before or independently of this fix.

🤖 Generated with Claude Code

…mponent

Repointing the LoopStructural component's path to "." (in #312) let
release-please discover its component name from pyproject.toml, which
flipped it to the manifest-mode default of prefixing tags with the
component name (LoopStructural-v*). No such tags exist -- every past
release used a plain v* tag -- so release-please couldn't find the
real last release and fell back to an ancient v1.6.5 tag as its
baseline, computing a regressive "next version" of 1.6.5 in PR #313.

include-component-in-tag: false restores the historical plain v* tag
scheme so release-please finds v1.7.1 as the last release again.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@lachlangrose
lachlangrose merged commit 006ae79 into master Aug 14, 2026
2 checks passed
lachlangrose added a commit that referenced this pull request Aug 14, 2026
#314 deleted this file, but the release-please run triggered by that
same merge re-created it with __version__ = "1.7.2" (LoopStructural's
version, not loop_interpolation's real "0.0.1") before PR #313 was
merged. Its own filename-search log line still showed the file as
found on that run -- most likely GitHub's code-search index hadn't
caught up with the deletion commit yet.

Root cause: pointing the LoopStructural component's path at "." makes
release-please's "find any file named version.py" search genuinely
repo-wide rather than scoped to LoopStructural/, so it can collide
with any version.py anywhere in the tree, present or future (e.g. the
still-unmerged map2loop/loopstructural_visualisation packages each
have their own). There's no release-please config to scope that search
to a subpath, so the durable fix is having no other version.py files
left for it to find.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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