lsp4j
lsp4j copied to clipboard
LSP4J 0.23.0
This is the Release plan and TODO list for LSP4J release v0.23.0.
Steps for Release
Items at the beginning of development
- [x] Create an Endgame Issue to track the release. As a starting point use documentation/releasing.md.
- [x] Add the Endgame label and Milestone for the release
- [x] Make sure any previous edits made to Endgame issues of previous releases are updated in documentation/releasing.md
- [x] Ensure all previous Endgame issues are done.
- [x] Create a New milestone for the release
- [x] 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.
- [x] Check README.md is up to date. In particular that the planned release and which versions of DAP and LSP are support is listed.
- [x] 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.22.0/0.23.0/g,s/0.21.0/0.22.0/gand review changes.) Ensure that-SNAPSHOTis restored in the gradle/versions.gradle and releng/pom.xml - [x] Enable
sh './releng/deploy-build.sh'in releng/build.Jenkinsfile - [x] 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
sh './releng/deploy-build.sh'in releng/build.Jenkinsfile - see commit https://github.com/eclipse-lsp4j/lsp4j/commit/328ce8a4c89b0cd84fb62118f459b6cf79b09e90 for a past example
- [ ] removing
- [ ] Push the above change
- [ ] Run the CI build
- [ ] Mark the build as Keep Forever and add to the description
v0.23.0 - [ ] Deploy the release by running the Release CI job with parameters:
LSP4J_PUBLISH_LOCATION->updates/releases/0.23.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
v0.23.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 v0.23.0 HEAD -m"LSP4J 0.23.0" && git push origin v0.23.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.
We are up and running for 0.23.0 development. No particular schedule to release it, so if you have something you need releasing please just ask!
@jonahgraham what is our current strategy regarding older deps (gson/guava/xtend)?
As long as it works with latest SimRel contents (i.e. Orbit/Maven content) then we can leave old versions. I assume you are referring to lower bounds on (and others):
https://github.com/eclipse-lsp4j/lsp4j/blob/88868d3506d317b12cf0bfd1e82a254489f8c47b/gradle/versions.gradle#L17-L18
yes i mean the lower bounds. e.g. who in simrel is still on old gson
We don't need to keep running old version for other SimRel projects. We can (and should) update when ready.
With #827 there are a few updates for LSP4J's Debug Adapter Protocol (DAP) support. I suspect we should try to do a release for 2024-06 cycle. Thoughts?
It would be great if the release could be sometime in May
Lets aim for May 14th, which should give all consumers in SimRel plenty of time to adjust.
I am working on completing this checklist now. If there are no blockers the 0.23.0 should be out in a few hours.
nice and thx
- release done - on to #834