Summary
snapshot-label declared in release-please-config.json is silently
dropped when release-please opens Java/Maven snapshot pull requests.
The strategy falls back to DEFAULT_SNAPSHOT_LABELS
(['autorelease: snapshot']).
Reproduction
release-please-config.json:
{
"release-type": "maven",
"snapshot-label": "team-a",
"packages": {
".": {
"snapshot-label": "team-a,team-b"
}
}
}
Expected: snapshot PRs carry the configured labels.
Observed: snapshot PRs only carry autorelease: snapshot.
Root cause
Two missing wirings in src/manifest.ts:
extractReleaserConfig maps label, release-label, extra-label —
but not snapshot-label. Per-package snapshot-label never reaches
the strategy options that buildStrategy constructs.
mergeReleaserConfig propagates extraLabels from the root default
into each per-package config, but not snapshotLabels. So even a
root-level value never reaches per-package strategies.
Root-level snapshot-label is assigned to Manifest.snapshotLabels,
but that field is only used as a matcher when scanning open PRs to
identify existing snapshot PRs — it is not the source of labels applied
to newly opened snapshot PRs.
Affected versions
Present at least through 17.6.0 (current). The schema and TypeScript
types accept snapshot-label already; only the runtime extraction and
merge were missing.
Fix
PR to follow.
Summary
snapshot-labeldeclared inrelease-please-config.jsonis silentlydropped when release-please opens Java/Maven snapshot pull requests.
The strategy falls back to
DEFAULT_SNAPSHOT_LABELS(
['autorelease: snapshot']).Reproduction
release-please-config.json:{ "release-type": "maven", "snapshot-label": "team-a", "packages": { ".": { "snapshot-label": "team-a,team-b" } } }Expected: snapshot PRs carry the configured labels.
Observed: snapshot PRs only carry
autorelease: snapshot.Root cause
Two missing wirings in
src/manifest.ts:extractReleaserConfigmapslabel,release-label,extra-label—but not
snapshot-label. Per-packagesnapshot-labelnever reachesthe strategy options that
buildStrategyconstructs.mergeReleaserConfigpropagatesextraLabelsfrom the root defaultinto each per-package config, but not
snapshotLabels. So even aroot-level value never reaches per-package strategies.
Root-level
snapshot-labelis assigned toManifest.snapshotLabels,but that field is only used as a matcher when scanning open PRs to
identify existing snapshot PRs — it is not the source of labels applied
to newly opened snapshot PRs.
Affected versions
Present at least through 17.6.0 (current). The schema and TypeScript
types accept
snapshot-labelalready; only the runtime extraction andmerge were missing.
Fix
PR to follow.