Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LSP4J 0.18.0 #676

Closed
35 tasks done
jonahgraham opened this issue Oct 18, 2022 · 5 comments
Closed
35 tasks done

LSP4J 0.18.0 #676

jonahgraham opened this issue Oct 18, 2022 · 5 comments
Labels
endgame Checklist of TODO lists to finish a release
Milestone

Comments

@jonahgraham
Copy link
Contributor

jonahgraham commented Oct 18, 2022

This is the Release plan and TODO list for LSP4J release v0.18.0.

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.
  • 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.17.0/0.18.0/g, s/0.16.0/0.17.0/g, s/0.15.0/0.16.0/g and review changes.) Ensure that -SNAPSHOT is restored in the gradle/versions.gradle and releng/pom.xml
  • Enable sh './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 japicmp report 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 by releng/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:
  • Push the above change
  • Run the CI build
  • Mark the build as Keep Forever and add to the description v0.18.0
  • Deploy the release by running the Release CI job with parameters:
    • LSP4J_PUBLISH_LOCATION -> updates/releases/0.18.0 ( <-- check version number)
    • PROJECT -> lsp4j-multi-build/job/main
    • LSP4J_BUILD_NUMBER -> the build that was just run above
    • DRY_RUN -> false
  • Add to the deploy job description v0.18.0
  • Promote the staged repository to maven central
    • Login to Nexus
    • 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
  • Update the meta-data on PMI downloads page
  • Tag the release. Example: git tag -a v0.18.0 HEAD -m"LSP4J 0.18.0" && git push origin v0.18.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 -SNAPSHOT need to be done right away.
@jonahgraham jonahgraham added this to the 0.18.0 milestone Oct 18, 2022
@jonahgraham jonahgraham mentioned this issue Oct 18, 2022
35 tasks
@jonahgraham jonahgraham added the endgame Checklist of TODO lists to finish a release label Oct 18, 2022
@jonahgraham
Copy link
Contributor Author

Because #674 is essentially a Java 17 regression we'll release 0.18.0 containing the fix in time for 2022-12. I have provisionally set it for Nov 8, which should give downstream projects time to adapt before the 2022-12 M3 build.

cc: @sebthom @cdietrich

@cdietrich
Copy link
Contributor

@jonahgraham will you do the release somewhen this week?

@jonahgraham
Copy link
Contributor Author

Yes - I am hoping for a fix to #680 before release as it is essentially the same issue as #674 as both of them are Java 17 issues.

@jonahgraham
Copy link
Contributor Author

Yes - I am hoping for a fix to #680 before release as it is essentially the same issue as #674 as both of them are Java 17 issues.

I decided that there is chance that #680 isn't in LSP4J, so I am going ahead with the 0.18.0 release, if more info comes to light we can have a 0.19.0 release with more reflection fixes.

jonahgraham added a commit that referenced this issue Nov 9, 2022
jonahgraham added a commit that referenced this issue Nov 10, 2022
@jonahgraham
Copy link
Contributor Author

All done with 0.18.0 - onto 0.19.0 in #681

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
endgame Checklist of TODO lists to finish a release
Projects
None yet
Development

No branches or pull requests

2 participants