In at least 2 of our JS repositories that release to NPM via semantic-release thus far, we've run into an issue where the release.yml Github Action workflow file runs the latest version of semantic-release in a Node 16 environment. In v20 of semantic-release, they dropped support for anything older than Node 18.
As a result, our JS repos that ship with latest version of semantic-release will fail since our JS repos are all on Node 16.
The semantic-releasedocumentation recommends running at least one CI job (e.g., release.yml) using the latest available LTS version of node or using npx to execute in the latest LTS version. Not recommended, but another approach would to pin semantic-release@19, though it'd generally be preferable to not need to pin anything to be to take advantage of future upstream features, patches, and security fixes.
Acceptance Criteria
[ ] Ensure semantic-release is able to cut and publish releases to NPM in our JS repos (e.g., @edx/frontend-platform, @edx/browserslist-config, @edx/frontend-build, @edx/frontend-component-header-(edx), etc.).
In at least 2 of our JS repositories that release to NPM via
semantic-release
thus far, we've run into an issue where therelease.yml
Github Action workflow file runs the latest version ofsemantic-release
in a Node 16 environment. In v20 ofsemantic-release
, they dropped support for anything older than Node 18.As a result, our JS repos that ship with latest version of semantic-release will fail since our JS repos are all on Node 16.
The
semantic-release
documentation recommends running at least one CI job (e.g.,release.yml
) using the latest available LTS version of node or usingnpx
to execute in the latest LTS version. Not recommended, but another approach would to pinsemantic-release@19
, though it'd generally be preferable to not need to pin anything to be to take advantage of future upstream features, patches, and security fixes.Acceptance Criteria
semantic-release
is able to cut and publish releases to NPM in our JS repos (e.g.,@edx/frontend-platform
,@edx/browserslist-config
,@edx/frontend-build
,@edx/frontend-component-header-(edx)
, etc.).