-
Notifications
You must be signed in to change notification settings - Fork 151
Open
0 / 20 of 2 issues completedLabels
endgameChecklist of TODO lists to finish a releaseChecklist of TODO lists to finish a release
Milestone
Description
This is the Release plan and TODO list for LSP4J release v1.0.0.
Steps for graduation
Steps for Release
Items at the beginning of development
- Create an Endgame Issue to track the release. As a starting point use documentation/releasing.md.
- Add the Endgame label and Milestone for the release
- Make sure any previous edits made to Endgame issues of previous releases are updated in documentation/releasing.md
- Ensure all previous Endgame issues are done.
- Create a New milestone for the release
- Check CHANGELOG.md is up to date. The changelog should have a version entry, release date, API Breakages and other information consistent with current entries in the changelog.
- Check README.md is up to date. In particular that the planned release and which versions of DAP and LSP are support is listed.
- Increment version of all feature.xml, pom.xml and any other place full version is used. (Easiest way is global find and replace, e.g.
s/0.24.0/1.0.0/g,s/0.23.0/0.24.0/gand review changes.) Ensure that-SNAPSHOTis restored in the gradle/versions.gradle and releng/pom.xml - Enable
cd releng && ./deploy-build.sh'in releng/build.Jenkinsfile - Ensure the CI build is stable - it is always better to release a "Green Dot" build
Items in the days ahead of Release day:
- Create release on PMI
- Schedule the release and if needed schedule a release review on the PMI. A release review is needed every 12 months, not with each release.
- Check CHANGELOG.md is up to date. The changelog should have a version entry, release date, API Breakages and other information consistent with current entries in the changelog.
- Check README.md is up to date. In particular that the planned release and which versions of DAP and LSP are support is listed.
- Check all closed PRs and Issues to make sure their milestone is set. (Note: this was not until after 0.10.0 release so many old PRs and Issues have no milestone, therefore only consider items back to approx 5 Nov 2020). This search may be useful to identify such closed issues
- Create and analyse a
japicmpreport and publish it as part of the build. Ensure that the API versions are incremented accurately based on the report. The reports are part of the build in japicmp-report and generated byreleng/runjapicmp.sh - Update links in changelog for japicmp from the nightly to the final location
Items on Release day:
- Prepare the repo for release by:
- removing
-SNAPSHOTfrom gradle/versions.gradle - removing
-SNAPSHOTfrom releng/pom.xml entries in<dependencies>section. - disabling
cd releng && ./deploy-build.sh'in releng/build.Jenkinsfile - see commit 328ce8a for a past example
- removing
- Push the above change
- Run the CI build
- Mark the build as Keep Forever and add to the description
v1.0.0 - Deploy the release by running the Release CI job with parameters:
LSP4J_PUBLISH_LOCATION->updates/releases/1.0.0( <-- check version number)PROJECT->lsp4j-multi-build/job/mainLSP4J_BUILD_NUMBER-> the build that was just run aboveDRY_RUN->false
- Add to the deploy job description
v1.0.0 - Promote the staged repository to maven central
- Login to Nexus
- To obtain permission add request to OSSRH-26079
- go to Staging Repositories, after a short delay the staged LSP4J release should appear (you may need to press Refresh)
- click the staged LSP4J repo
- press the Close button located in the toolbar. This runs activities, including checking various rules
- once the rules are done (if successful), press the Release button (you may need to press Refresh to enable the Release button)
- check https://search.maven.org/search?q=g:org.eclipse.lsp4j to make sure the latest release has arrived - this takes a while, 15 minutes for the files to be on the server and even longer for the search indexes to update
- Login to Nexus
- Update the meta-data on PMI downloads page
- Tag the release. Example:
git tag -a v1.0.0 HEAD -m"LSP4J 1.0.0" && git push origin v1.0.0 - Contribute to Simrel. See Simrel contribution example
- Create a release page on github
- Link the Changelog to the release page
- Make an announcement on lsp4j-dev based on the release page on github. Example on lsp4j-dev archives
- Update documentation/releasing.md with any changes that may have been made to the release process.
- Create the endgame for the next release right away, especially as version numbers and restoring
-SNAPSHOTneed to be done right away.
Sub-issues
Metadata
Metadata
Assignees
Labels
endgameChecklist of TODO lists to finish a releaseChecklist of TODO lists to finish a release