Skip to content

How to make a release of a Rascal implemenation project

Jurgen J. Vinju edited this page Jun 21, 2022 · 3 revisions

Note that continuous unstable releases are produced by the build server at http://ci.usethesource.io producing continuous releases at http://nexus.usethesource.io/content/repositories/snapshots/

New stable release for usethesource projects

  • This holds for projects like vallang, typepal, rascal, rascal-eclipse, etc. Each "release" described here is for a single project.
  • Releasing a stable release of Rascal is done by registering an issue with the Rascal project with the "Release" template. A full TODO list is contained in that issue template.

The following steps produce a new consolidated and bundled jar file on the nexus repository at http://nexus.usethesource.io/content/repositories/releases/. We assume you have configured maven by providing passwords for this server in your settings.xml.

  1. First assume you have released all the dependencies correctly already , including capsule and vallang.
  2. cd yourRascalCloneDirectory*
  3. git pull to find out nothing has changed since your last test run and the continuous integration build. If something did change, it's time to reconsider your plan for a stable release.
  4. mvn release:prepare and give the release a version number and the new target version as well. You have to choose the stable version of things these projects depend on as well. Pick carefully!
  5. then to clean up you have to: mvn release:clean
  6. the deploy will now run on the Github Actions server, and will appear on nexus on completion

Releasing Rascal-eclipse

  1. Take the above steps in your rascal-eclipse clone
  2. TODO: manual steps to unzip the update site and publish it on usethesource.io and rascalmpl.org

Releasing rascal-vscode-extension

  1. Set proper version information in package.json
  2. Create release issue from the template on the rascal-language-servers project on github
  3. Go through all the steps in the issue template
  4. `cd rascal-lsp; mvn release:prepare
  5. git tag vNewVersion
  6. git push --tags
  7. the deploy will now run on the Github Actions server, and will appear on the MS VScode extension marketplace automatically on success