@@ -17,7 +17,8 @@ const processingErrorMessage =
1717 */
1818export function updateChangelog ( newVersion , previousVersion ) {
1919 // Skip the entire function if the release version is internal eg: 5.1.0-internal.0
20- if ( versionIsAPrerelease ( newVersion ) ) {
20+ const newVersionIsAPrelease = versionIsAPrerelease ( newVersion )
21+ if ( newVersionIsAPrelease ) {
2122 const identifier = getPrereleaseIdentifier ( newVersion )
2223
2324 if ( identifier === 'internal' ) {
@@ -42,7 +43,18 @@ export function updateChangelog(newVersion, previousVersion) {
4243 }
4344 const newVersionTitle = `## v${ newVersion } (${ convertIncTypeWord ( versionDiff , newVersion , true , changelogLines [ previousReleaseLineIndex ] ) } release)`
4445
45- changelogLines . splice ( startIndex + 1 , 0 , '' , newVersionTitle )
46+ const newLines = [ newVersionTitle ]
47+ if ( newVersionIsAPrelease ) {
48+ newLines . push (
49+ `> [!WARNING]` ,
50+ `> Do not use in production.` ,
51+ `> Use this release to prepare for the changes coming in version \`${ removePrereleaseFlag ( newVersion ) } \`.`
52+ )
53+ }
54+
55+ // Inject the new lines while replacing the unreleased heading.
56+ changelogLines . splice ( startIndex + 1 , 0 , '' , ...newLines )
57+
4658 writeFileSync ( './CHANGELOG.md' , changelogLines . join ( '\n' ) )
4759}
4860
@@ -262,3 +274,15 @@ function convertIncTypeWord(
262274 ? `${ rewordedIncType . charAt ( 0 ) . toUpperCase ( ) } ${ rewordedIncType . slice ( 1 ) } `
263275 : rewordedIncType
264276}
277+
278+ /**
279+ * Remove any pre-release flag from a version e.g. 1.0.0-alpha -> 1.0.0
280+ *
281+ * @param {string } version - version number
282+ * @returns {string } - version number without any pre-release flag
283+ */
284+ function removePrereleaseFlag ( version ) {
285+ const parsedVersion = semver . parse ( version )
286+ parsedVersion . prerelease = [ ]
287+ return parsedVersion . format ( )
288+ }
0 commit comments