Skip to content

Migrate ReleasePublisher from v0.19.0 to v0.20.0

ReleasePublisher's three methods were renamed in v0.20.0.

v0.19.0 v0.20.0
Create CreateRelease
Update UpdateRelease
AddAsset AddReleaseAsset

Nothing else changed: the signatures, the sentinels and every guarantee are the same.

Whether this affects you

Almost certainly not, and the reason is the reason for the rename.

PullRequests already defines Create and Update. A provider serves both capabilities on one type, and Go allows one method of a given name per type, so no provider that implements PullRequests could implement the v0.19.0 ReleasePublisher at all — which is all four first-party adapters. The capability shipped unimplementable and no adapter ever carried it.

If you wrote your own provider against v0.19.0 and it does not implement PullRequests, rename the three methods. If you only ever called the capability, there was nothing to call.

Why the names are not symmetrical with PullRequests

PullRequests uses noun-free names because MergeRequests is a type alias, and an alias renames a type but never a method — CreatePullRequest would put the GitLab-flavoured noun at every call site of a project that spells it the other way.

Releases have no competing name on any supported forge, so there is no alias and nothing for the stripped noun to buy. See optional capabilities.