Last modified by Manuel Leduc on 2024/03/21 10:22

Show last authors
1 {{velocity}}
2 #set ($object = $doc.getObject("ReleasePlans.ReleasePlanClass"))
3 #set ($version = $object.getProperty("version").getValue())
4 #set ($versionPrefix = $stringtool.substringBefore($version, '-'))
5 #set ($versionParts = $stringtool.split($versionPrefix, '.'))
6 #set ($major = $numbertool.toNumber($versionParts[0]))
7 #set ($minor = $numbertool.toNumber($versionParts[1]))
8 #if ($versionParts.size() == 3)
9 #set ($bugfix = $numbertool.toNumber($versionParts[2]))
10 ## Starting with 16.x cycle we include a bugfix version in our release numbers (e.g. 16.0.0, 16.1.0 etc)
11 #if ($bugfix == 0)
12 #set ($isBugfix = false)
13 #else
14 #set ($isBugfix = true)
15 #end
16 #else
17 #set ($isBugfix = false)
18 #set ($bugfix = $NULL)
19 #end
20 #set ($shortVersion = $stringtool.replace($version, '.', '\.'))
21 #set ($shortVersion = $stringtool.replaceChars($shortVersion, '-', ''))
22 #set ($shortVersion = $stringtool.upperCase($shortVersion))
23 #set ($isRC = $version.contains('rc'))
24 #set ($isMilestone = $version.contains('MILESTONE'))
25 #set ($shortVersion = $shortVersion.replace('MILESTONE', 'M'))
26 #set ($releaseNotesWikiLink = "xwiki:ReleaseNotes.Data.XWiki.${shortVersion}")
27 #set ($isFinal = !$isRC && !$isMilestone)
28 #set ($isFirstFinal = $versionParts.size() == 2 && $isFinal)
29 ## First LTS used a scheme XX.10.2 we started to use that after 9.x cycle (we had 9.11.x back then).
30 #set ($isFirstLTS = $isBugfix && $major > 9 && $minor == 10 && $bugfix == 2)
31 #macro (findPreviousReleaseDate $major $minor $bugfix $resultVariableName)
32 #set ($xwql = "select rp.releaseDate from Document doc, doc.object(ReleasePlans.ReleasePlanClass) as rp where doc.name <> '${doc.name}' and rp.version like :versionPattern and rp.releaseDate is not null order by rp.releaseDate desc")
33 #if ($bugfix && $bugfix > 1)
34 #set ($query = $services.query.xwql($xwql).bindValue('versionPattern', "${major}.${minor}.%"))
35 #elseif ($bugfix && $bugfix == 1 && $major < 16)
36 #set ($query = $services.query.xwql($xwql).bindValue('versionPattern', "${major}.${minor}"))
37 #elseif ($bugfix && $bugfix == 1 && $major >= 16)
38 #set ($query = $services.query.xwql($xwql).bindValue('versionPattern', "${major}.${minor}.0"))
39 #elseif ($isRC)
40 #set ($query = $services.query.xwql($xwql).bindValue('versionPattern', "${major}.%"))
41 #else
42 #set ($query = $services.query.xwql($xwql).bindValue('versionPattern', "${major}.%-rc-%"))
43 #end
44 #set ($results = $query.execute())
45 #if ($results.size() > 0)
46 #setVariable($resultVariableName $results[0])
47 #else
48 #if (!$bugfix || $bugfix == 0)
49 ## No previous RC version or first release of a cycle, find data for the last RC of the previous cycle (major)
50 #findPreviousReleaseDate($mathtool.sub($major, 1), $minor, $isBugfix, $resultVariableName)
51 #end
52 #end
53 #end
54 #findPreviousReleaseDate($major, $minor, $bugfix, "previousReleaseDate")
55 {{/velocity}}
56
57 {{info}}
58 Use these icons to mark the release progress: (x) not done, (/) done, (!) not done for a good reason (explain reason)
59 {{/info}}
60
61 {{velocity}}
62 * (x) Verify that no tests are failing [[on the CI Server>>http://ci.xwiki.org]] (or that failures are understood, see [[known flickering tests>>https://jira.xwiki.org/issues/?filter=14240]]).
63 * (x) [[Verify>>ReleasePlans.ReleasePlanHelp||anchor="HInitialBackwardCompatibilityCheck"]] that the {{scm project="xwiki-commons" path="pom.xml"}}${escapetool.H}${escapetool.H}xwiki-commons${escapetool.H}${escapetool.H}'s top level POM{{/scm}} has a ${escapetool.H}${escapetool.H}xwiki.compatibility.previous.version${escapetool.H}${escapetool.H} property correctly pointing to the latest stable (non-milestone) release and if not, change it.
64 * (x) [[Verify>>ReleasePlans.ReleasePlanHelp||anchor="HVerifyissueswithcommits"]] that there are no [[JIRA issues that are still open, even if they have commits>>https://jira.xwiki.org/issues/?jql=category%20%3D%2010000%20and%20(labels%20is%20empty%20or%20labels%20not%20in%20(%22flickering%22))%20and%20resolution%20%3D%20Unresolved%20and%20issue.property%5Bdevelopment%5D.commits%20%3E%200%20and%20updated%20%3E%20%22$datetool.format('yyyy-MM-dd', $previousReleaseDate)%22]].
65 * Make sure next version exists on [[jira>>https://jira.xwiki.org]] projects (JIRA releases are done automatically in the build):
66 ** (x) [[Commons JIRA>>https://jira.xwiki.org/plugins/servlet/project-config/XCOMMONS/versions]]
67 ** (x) [[Rendering JIRA>>https://jira.xwiki.org/plugins/servlet/project-config/XRENDERING/versions]]
68 ** (x) [[Platform JIRA>>https://jira.xwiki.org/plugins/servlet/project-config/XWIKI/versions]]
69 * (x) [[Verify>>ReleasePlanHelp||anchor="HVerifyJIRAissue"]] that there are no [[open issues on JIRA for version $version>>https://jira.xwiki.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=Project+in+%28%22XWiki+Commons%22%2C+%22XWiki+Rendering%22%2C+%22XWiki+Platform%22%29+and+fixVersion+in+%28%22$version%22%29+and+resolution+in+%28%22Unresolved%22%29]] and that there are [[no open Blockers>>https://jira.xwiki.org/issues/?jql=priority%20%3D%20Blocker%20and%20resolution%20%3D%20Unresolved%20and%20category%20%3D%2010000]].
70 * (x) [[Log on the release machine>>ReleasePlans.ReleasePlanHelp||anchor="HLogonReleasemachine"]], [[set up your identity>>ReleasePlans.ReleasePlanHelp||anchor="HSetupyouridentity"]], [[update the release scripts>>ReleasePlans.ReleasePlanHelp||anchor="HUpdateReleasescripts"]]
71 #if (!$isRC)
72 * (x) [[Update translations>>ReleasePlans.ReleasePlanHelp||anchor="HUpdateTranslations"]]
73 #end
74 * (x) Make sure [[s01.oss.sonatype.org>>https://status.maven.org]] (our Maven Central upload server) is up and running
75 * (x) [[Build the release>>ReleasePlans.ReleasePlanHelp||anchor="HBuildtherelease"]]
76 * (x) Publish [[computed list of updated languages>>ReleasePlans.ReleasePlanHelp||anchor="HComputelistofupdatedlanguages"]] in the [[Release Notes for version $version>>${releaseNotesWikiLink}||anchor="HTranslations"]]
77 * (x) Publish [[contributors list>>ReleasePlans.ReleasePlanHelp||anchor="HGenerateCodeContributorslist"]] in the [[Release Notes for version $version>>${releaseNotesWikiLink}||anchor="HCredits"]]
78 * (x) Publish [[backward compatibility reports>>ReleasePlans.ReleasePlanHelp||anchor="HUpdateBackwardCompatibilityinthereleasenote"]] in the [[Release Notes for version $version>>${releaseNotesWikiLink}]]
79 #if ($isFinal)
80 * (x) [[Update backward compatibility setup in the build>>ReleasePlans.ReleasePlanHelp||anchor="HUpdatethebackwardcompatibilitysetupinthebuild"]]
81 #end
82 * (x) [[Clean up your identity>>ReleasePlans.ReleasePlanHelp||anchor="HCleanupidentity"]]
83 * (x) Verify that there are no [[missing documentation for closed JIRA issues for version $version>>https://jira.xwiki.org/issues/?jql=Project%20in%20%28%22XWiki%20Commons%22%2C%20%22XWiki%20Rendering%22%2C%20%22XWiki%20Platform%22%29%20and%20fixVersion%20in%20%28%22$version%22%29%20and%20resolution%20in%20%28%22Fixed%22%29%20and%20%28%28Documentation%20is%20EMPTY%29%20or%20%28%22Documentation%20in%20Release%20Notes%22%20is%20EMPTY%29%29]]
84 * (x) Ensure that the [[Release Notes are complete and nice-looking for version $version>>${releaseNotesWikiLink}]]
85 * (x) Set the Release date + Release flag in the [[Release Notes for version $version>>${releaseNotesWikiLink}]] by editing with the object editor.
86 * (x) Force [[rebuild of the Debian repository index>>ReleasePlans.ReleasePlanHelp||anchor="HRebuildDebianDistribution"]]
87 * (x) Update the [[Download page>>https://www.xwiki.org/xwiki/bin/edit/Download/]] (Use bullets points for the major features to make it easy to read; Update/Bump the LTS if doing a final major version release, i.e. new cycle)
88 #if ($isFinal)
89 * (x) [[Force extensions update>>ReleasePlans.ReleasePlanHelp||anchor="HForceExtensionsUpdate"]]
90 #end
91 * (x) [[Create blog post on xwiki.org>>ReleasePlans.ReleasePlanHelp||anchor="HBlogpostonxwiki.org"]]
92 * (x) [[Update the API doc>>xwiki:Documentation.DevGuide.API]], including [[Rendering>>rendering:Main.JavaDoc]]
93 #if ($isFinal)
94 * (x) Update [[Wikipedia (en)>>https://en.wikipedia.org/wiki/Template:XWiki version]], [[Wikipedia (fr)>>ReleasePlans.ReleasePlanHelp||anchor="HUpdatefr.wikipedia.org"]] only if this version is bigger than the existing one.
95 * (x) Update [[Wikimatrix>>http://www.wikimatrix.org/edit/XWiki]], with your own account, [[only if this version is bigger than the existing one>>ReleasePlans.ReleasePlanHelp||anchor="HUpdateWikimatrix"]].
96 #end
97 * (x) [[Announce on Twitter>>ReleasePlans.ReleasePlanHelp||anchor="HAnnounceonTwitter"]] with the [[xwikiorg account>>https://twitter.com/xwikiorg/]]
98 * (x) [[Announce on Mastodon>>ReleasePlans.ReleasePlanHelp||anchor="HAnnounceonMastodon"]] with the [[xwikiorg account>>https://fosstodon.org/@xwikiorg]]
99 * (x) Update the [[Release Plan page>>ReleasePlans.WebHome||anchor="HNextReleaseManagers"]] to move yourself to the bottom of the list for your next release.
100 * (x) Ensure that the [[release date in this Release Plan>>path:$doc.getURL("edit", "editor=object")]] corresponds to the date when the git release was done
101 #if (!$isBugfix)
102 * (x) Update the release date on the [[Roadmap page>>xwiki:Roadmaps.WebHome]] for non bugfix releases, add a (/) for the release and move the roadmap items to the archive page (for final releases)
103 #end
104 #if ($isFinal)
105 * (x) [[Update the XWiki official Docker images>>ReleasePlans.ReleasePlanHelp||anchor="HUpdateDocker"]]
106 #end
107 #if ($isRC)
108 * Clean up the previous stable branch in Git by doing the following:
109 ** Delete the ${escapetool.h}#stable-XXX${escapetool.h}# branches before the "stable-${version}" ones on GitHub:
110 *** (x) [[Commons>>https://github.com/xwiki/xwiki-commons/branches]]
111 *** (x) [[Rendering>>https://github.com/xwiki/xwiki-rendering/branches]]
112 *** (x) [[Platform>>https://github.com/xwiki/xwiki-platform/branches]]
113 ** Delete them in Jenkins by using the "Delete branch" UI button when on the branch jobs (after they've been deleted in GitHub)
114 *** (x) [[Commons>>https://ci.xwiki.org/job/XWiki/job/xwiki-commons/]]
115 *** (x) [[Rendering>>https://ci.xwiki.org/job/XWiki/job/xwiki-rendering/]]
116 *** (x) [[Platform (main)>>https://ci.xwiki.org/job/XWiki/job/xwiki-platform/]] && [[Platform (docker tests)>>https://ci.xwiki.org/job/XWiki%20Environment%20Tests/job/xwiki-platform/]]
117 ** Remove any unreleased JIRA versions for the ${escapetool.h}#stable-XXX${escapetool.h}# branch that has been deleted (e.g. remove ${escapetool.h}#13.7.1${escapetool.h}# if branch ${escapetool.h}#stable-13.7.x${escapetool.h}# has been deleted and version ${escapetool.h}#13.7.1${escapetool.h}# has not been released):
118 *** (x) [[Commons JIRA>>https://jira.xwiki.org/plugins/servlet/project-config/XCOMMONS/versions]]
119 *** (x) [[Rendering JIRA>>https://jira.xwiki.org/plugins/servlet/project-config/XRENDERING/versions]]
120 *** (x) [[Platform JIRA>>https://jira.xwiki.org/plugins/servlet/project-config/XWIKI/versions]]
121 * Manually start the environment tests on the [[newly created branch>>https://ci.xwiki.org/job/XWiki%20Environment%20Tests/job/xwiki-platform/job/stable-${major}.${minor}.x/]]
122 #end
123 #if ($isFirstLTS)
124 * (x) Ensure to follow the steps indicated in [[Versioning and releases practices>>dev:Community.VersioningAndReleasePractices||anchor="HReleaseCyclesandReleaseStrategy"]] to announce the new LTS.
125 #end
126 {{/velocity}}

Get Connected