Move soldeer release metadata under foundry's [external] section - #48
Conversation
foundry reads any unreserved root section as a profile and warns about [package] on every invocation, and forge config --fix would rewrite it into [profile.package], turning one warning into two unknown-key warnings. [external.*] is the section foundry reserves for another tool's config and ignores (foundry-rs/foundry#5866, excluded from the fixer in foundry-rs/foundry#12723). Closes #28 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 14 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Closes #28
foundry.tomlopened with a bare[package], which foundry reads as anunrecognised profile, so every
forgeinvocation printed:The section is now
[external.package], with a comment stating it is releasemetadata for
rainix-autopublish, not foundry config.[external.*]is thesection foundry reserves for another tool's config and ignores — added for
exactly this in foundry-rs/foundry#5866 and excluded from
forge config --fixin foundry-rs/foundry#12723.
forge config --fixwas NOT run: measured in theissue, it turns one warning into two (
nameandversionare not profilekeys). This is the same change as the worked precedent
rainlanguage/rain.sol.codegen#143.
One file, +7/−1. The
nameandversionlines are byte-untouched. No prose inthis repo names
[package].version(README grep came back empty), so theissue's "fix any prose in the same pass" clause has nothing to fix here.
Publishing is provably untouched
/foundry.tomlis in.soldeerignore, so it is not in the published package.rainix's real gate (
rainix-static soldeer-gatefrom rainix53e96a7d, the SHArainix-autopublish.yamlpins) run on before/aftercopies of the tree with only this diff between them:
Byte-identical content hash, same
version/next. (Both copies had thein-dev version identically set to
0.1.1so the gate's ahead-invariantpasses — the repo sits at
0.1.0== published0.1.0, which is issue Migrate to the next-version Soldeer release lifecycle (bump [package].version) #24,not this one; the gate blanks the version line before hashing so this does
not affect the measured hash.
OLD != NEW/changed=trueappears in BOTHruns identically: main's source has drifted from the 2026-05-09 published
0.1.0zip — pre-existing, zero delta from this diff.)The gate's
read_local_versionand the autopublish bumpsedboth anchoron the first
^version[[:space:]]*=line with no section awareness; thisdiff leaves that line as the only such line. The exact bump
sedrun on acopy of the new file rewrites only the version line.
forge soldeer push rain-datacontract~0.1.1 --dry-runsucceeds on the newsection (run inside the gate).
Interaction with #24 (concurrent)
#24's fix bumps
version = "0.1.0"→"0.1.1"on a line this diff does nottouch (the diff is confined to the section header and comment lines above it),
so the two merge cleanly in either order, and the version-line anchor both the
gate and the bump
seduse is unchanged by this diff.QA
test/mirrorssrc/so release metadata has no home in the mirror tree; the discriminating check is a command run both ways:nix develop -c forge configprints the[package]warning on main (1bcfc35) and prints nothing on this branch;nix develop -c forge test18/18 green on both.soldeer-gate(rainix-static @53e96a7d) run on before/after copies with byte-identical NEW hash; feat: support external sections infoundry.tomlfoundry-rs/foundry#5866 + #12723 for the[external]exemption semantics;soldeer_gate.rssource read at the pinned SHA for the version-line anchor.forge config --fix, (b) leave soldeer publishing and the version-line anchor undisturbed, (c) comment marking the section as another tool's metadata, (d) fix prose naming[package].version, (e) verify via soldeer-gate before/after + silentforge config; covered a, b, c, e; d has no instances in this repo (verified by grep).