daml/release/RELEASE.md
Stefano Baghino b2d9095a3c
Move unreleased user-facing features to its own file (#1762)
* Move unreleased user-facing features to its own file

docs/source/support/release-notes.rst unfortunately represents a "global
lock" when it comes to submitting contributions: if another contribution
changed it while another was going through the CI/review process, the
latter would have to go again through the CI build after resolving the
conflict and merging the resulting commit.

The contributors originally tried to address this problem by letting the
system automatically performing this operation, but this failed because
release notes were moved to the wrong section by mistake.

This simple change would allow the contributors to let the system take
care of merging on its own, because existing release notes will no
longer be corrupted by the process.

There is a caveat: the automatic merging could result in invalid RST
(mostly because of missing newlines). This would push the task of
ensuring the release notes are valid RST to the release. I would argue
this can be done quite easily and that this is checked automatically
when rendering RST to HTML, so it could be a nuisance during release but
it would make the day-to-day contributions easier.

* Address https://github.com/digital-asset/daml/pull/1762#issuecomment-503540993

* Address https://github.com/digital-asset/daml/pull/1762#pullrequestreview-251676158

* Address https://github.com/digital-asset/daml/pull/1762#discussion_r295279530

* Remove HEAD section from release-notes.rst

* Address https://github.com/digital-asset/daml/pull/1762#pullrequestreview-251678791

* Address https://github.com/digital-asset/daml/pull/1762#issuecomment-503549896
2019-06-19 16:32:03 +02:00

3.1 KiB

Making a Release

  1. Make a PR that bumps the version number in the VERSION file and adds a new header and label for the new version in docs/source/support/release-notes.rst (see previous releases as examples). Release notes should be cut and pasted under the new header from unreleased.rst. Each change outlined in unreleased.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 changes VERSION, release-notes.rst and unreleased.rst.

  2. "Squash and merge" the PR.

  3. Once CI has passed for the corresponding master build, the release should be available on bintray and GitHub, as well as properly tagged.

  4. Activate the new version with da use VERSION. Note that it will not be picked up by da upgrade at this point.

  5. Run through the manual test plan described in https://docs.google.com/document/d/16amcy7bQodXSHjEmKhAUiaPf6O92gUbch1OyixDEvSM/edit?ts=5ca5be00.

    The test plan currently still targets the old da assistant. We will migrate the test plan fully to the new assistant soon but for now, there is a shorter test plan for the new assistant that you should run on Windows:

    1. Download the installer from https://github.com/digital-asset/daml/releases
    2. Close any running SDK instance in PowerShell (Navigator or Sandbox)
    3. Remove any existing installation: rm -r -Force $env:AppData\daml
    4. Run the installer.
    5. Open a new Powershell.
    6. Remove any existing quickstart directory : rm -r quickstart
    7. Run daml new quickstart to create a new project.
    8. Switch to the new project: cd quickstart
    9. Run daml start.
    10. Open your browser at http://localhost:7500, verify that you can login as Alice and there is one template and one contract.
    11. Kill daml start with Ctrl-C
    12. Run daml studio and open daml/Main.daml.
    13. Verify that the scenario result appears within 30 seconds.
    14. Add + at the end of line 26 after "Alice" and verify that you get a red squiggly line.
  6. If it passes, the release should be made public. This currently consists of three steps:

    1. Tag the release as visible-external on Bintray. This step can only be done by someone with permissions to set tags on Bintray. After this step the release will be picked up by da upgrade. Note that this step requires special privileges on Bintray. If you cannot change it yourself, ask in #team-daml.

    2. Trigger the CircleCI jobs to create the Docker images. To do so, go to https://circleci.com/gh/DACH-NY/workflows/damlc-docker/tree/master and click "rerun" on "master / Main Variant" and on "master / CircleCI Variant". Once the jobs have passed, you should see two new images on https://hub.docker.com/r/digitalasset/daml-sdk/tags.

    3. Publish the draft release on GitHub by going to the releases page and clicking the Edit button for the relevant release.