5.8 KiB
Making a Release
-
Make a PR that bumps the version number in the
VERSION
file and adds a new header and label for the new version indocs/source/support/release-notes.rst
(see previous releases as examples). Release notes should be cut and pasted under the new header fromunreleased.rst
. Each change outlined inunreleased.rst
is preceded by the section to which it belongs: create one entry per section and add all pertaining items (without the section tag) to the release notes. It is important that the PR only changesVERSION
,release-notes.rst
andunreleased.rst
. Note thatunreleased.rst
andrelease-notes.rst
must be modified even if there have been no changes that have been added to the release notes so far. -
Merge the PR.
-
Once CI has passed for the corresponding master build, the release should be available on Bintray, Maven Central and GitHub and have a Git tag. The release should be visible on GitHub with prerelease status, meaning it's not yet ready for production. The release notes should not be defined yet and will be adjusted later on. Maven central has a slight delay of around 20 minutes until the new version is visible.
-
Run through the following test plan on Linux or MacOS:
- Install the SDK using
curl -sSL https://get.daml.com/ | sh -s X.XX.XX
, whereX.XX.XX
is the new version number. - Run
daml version --assistant=yes
and verify that the new version is selected as the assistant version and the default version for new projects. - Create a new project with
daml new quickstart quickstart-java
and switch to it usingcd quickstart
. - Run
daml start
. Your browser should be opened automatically athttp://localhost:7500
. Login asAlice
and verify that there is 1 contract and 3 templates. Close the tab and killdaml start
usingCtrl-C
. - Run
daml build
. - In 3 separate terminals (since each command will block) run
daml sandbox --port 6865 --scenario Main:setup .daml/dist/quickstart-0.0.1.dar
.daml navigator server localhost 6865 --port 7500
mvn compile exec:java@run-quickstart
Note: It takes some time for our artifacts to be available on Maven Central. If you try running the above before the artifacts are available, you will get a "not found" error. Trying to build again in the next 24h will result in:
Failure to find ... was cached in the local repository, resolution will not be reattempted until the update interval of digitalasset-releases has elapsed or updates are forced
This is Maven telling you it has locally cached that "not found" result and will consider it valid for 24h. To bypass that and force Maven to try the network call again, add a
-U
option, as inmvn compile exec:java@run-quickstart -U
. Note that this is required to bypass your local cache of the failure; it will not be required for any user trying to run the quickstart after the artifacts have been published. - Point your browser to
http://localhost:7500
, login asAlice
and verify that there is 1 contract, 3 templates and 1 owned IOU. - Check that
curl http://localhost:8080/iou
returns{"0":{"issuer":"EUR_Bank","owner":"Alice","currency":"EUR","amount":100.0000000000,"observers":[]}}
- Kill all processes.
- Run
daml studio --replace=always
. This should open the VSCode application and trigger the DAML extension bundled with the new SDK version. (The new VSCode extension will not be in the marketplace at this point.) - Open
daml/Main.daml
- Click on
Scenario results
abovesetup
and wait for the scenario results to appear. - Add
+
at the end of line 11, after"Alice"
and confirm you get an error in line 12. - Add
1
after the+
and confirm you get an error in line 11. - Delete the
+1
, and thee
inAlice
and verify that the scenario results are updated. - Right click on
eurBank
in line 17 and verify that goto definition takes you to the definition in line 14. - Close all files.
- Install the SDK using
-
Run through the following test plan on Windows. This is slightly shortened to not make testing too annoying and since most issues are not platform specific.
- Download the Windows installer from
https://github.com/digital-asset/daml/releases
. - Close any running SDK instance in PowerShell (Navigator or Sandbox)
- Run the installer. If asked if you want to remove an existing installation, click
yes
. - Open a new Powershell.
- Run
daml new quickstart
to create a new project and switch to it usingcd quickstart
. - Run
daml start
. - Open your browser at
http://localhost:7500
, verify that you can login as Alice and there is one template and one contract. - Kill
daml start
with Ctrl-C - Run
daml studio --replace=always
and opendaml/Main.daml
. - Verify that the scenario result appears within 30 seconds.
- Add
+
at the end of line 26 after"Alice"
and verify that you get a red squiggly line.
- Download the Windows installer from
-
If no issues are found, the release should be made public. To do so, go to the releases page and click on the
Edit
button for the relevant release. Take the combined release notes fromdocs/source/support/release-notes.rst
for all releases since the last public release, convert them to markdown and insert them in the textbox, then uncheck theThis is a pre-release
checkbox at the bottom. -
Leave a comment like "All manual tests have passed" on the release PR on GitHub.
-
Finally, announce the release in the relevant Slack channels.
-
Documentation is published automatically once you make the release public on Github but you might have to wait up to an hour for the job to run.