Description
Publish the first stable release of @openedx/frontend-app-instructor-dashboard (1.0.0) by adopting the release-branch model from ADR 0012 (amended in openedx/frontend-base#274). Part of openedx/frontend-base#244.
This repo develops on a single main branch (no separate rewrite branch) and publishes 1.0.0-alpha.* to @latest (currently 1.0.0-alpha.47) using the placeholder trick - the same starting point frontend-base had.
Target model: stable is published from a long-lived release branch (npm @latest); main publishes -alpha prereleases to @alpha. The .releaserc is identical on both branches, and release.yml triggers on both:
"branches": [
{ "name": "release", "channel": "latest" },
{ "name": "main", "prerelease": "alpha", "channel": "alpha" }
]
Plan
Notes
Use a release branch, not an n.x branch. semantic-release classifies n.x names as maintenance branches, which can only patch a major that already shipped, never originate one.
Set channel: alpha explicitly. Without it, semantic-release defaults a prerelease branch's dist-tag to the branch name, so prereleases would land on @main instead of @alpha.
The first stable release's changelog spans the whole history and exceeds GitHub's release-body limit, so the GitHub Release step 422s. The npm publish itself still succeeds, so create the GitHub Release manually afterward.
Description
Publish the first stable release of
@openedx/frontend-app-instructor-dashboard(1.0.0) by adopting therelease-branch model from ADR 0012 (amended in openedx/frontend-base#274). Part of openedx/frontend-base#244.This repo develops on a single
mainbranch (no separate rewrite branch) and publishes1.0.0-alpha.*to@latest(currently1.0.0-alpha.47) using theplaceholdertrick - the same starting point frontend-base had.Target model: stable is published from a long-lived
releasebranch (npm@latest);mainpublishes-alphaprereleases to@alpha. The.releasercis identical on both branches, andrelease.ymltriggers on both:Plan
@openedx/frontend-basedependency to^1.0.0(the released stable) onmain..releasercto the target config (replaceplaceholderwith thereleaseentry; addchannel: alphato themainentry) and pointrelease.ymlat[main, release].releasefrommain(no-op:main's workflow does not trigger onreleaseuntil the config lands).main.releaseup tomainto publish1.0.0to@latest.v1.0.0GitHub Release by hand, with curated first-release notes (see Notes).release; delete the obsoleteplaceholderbranch.@latest = 1.0.0, tagv1.0.0, GitHub Release present,@alphatrackingmain.Notes
Use a
releasebranch, not ann.xbranch. semantic-release classifiesn.xnames as maintenance branches, which can only patch a major that already shipped, never originate one.Set
channel: alphaexplicitly. Without it, semantic-release defaults a prerelease branch's dist-tag to the branch name, so prereleases would land on@maininstead of@alpha.The first stable release's changelog spans the whole history and exceeds GitHub's release-body limit, so the GitHub Release step 422s. The npm publish itself still succeeds, so create the GitHub Release manually afterward.