Skip to content

Improve releases #1425

Closed
Closed
@rjmholt

Description

@rjmholt

Meta issue for release improvements

Automation

  • Improve the changelog generation script to create changelogs in the correct format.
  • Work out a single place to set the extension version number (across client and server).
  • Improve VSIX publication - currently the build produces a VSIX, but vsce only wants to publish from
    a code base, meaning the VSIX needs to be decompressed to publish it (maybe I missed something here, I honestly can't understand why this is the case)
  • Introduce testing on the VSIX artefact:
    • Have a list of files that must be signed and verify the signatures on those files
    • Crack open the VSIX and run the test suite on it
    • Ensure the VSIX can be installed
  • The ultimate ideal is to have a "prepare release" script that takes a version number as argument, and goes through and sets the version numbers and updates the changelog.

Another possibility here is to have the changelog updated with every PR, as a merge requirement. Then to release we just add a header...

Process

We should consider a document that describes the step-by-step process we follow for builds, not just in terms of "how to build", but also what our strategy is for release/version management and what our "contract" (too strong a word) is for things like feature-freezing a release.

The ideal release process is:

  • Every commit to master is built as a potential release
  • Actual releases are just branched off a selected commit with version numbers set at build time
    (i.e. normal commit builds are e.g. 1.8.1-preview, but when selected for release drop the preview)

There may still be a little bit of work to do on this, so an intermediate process might be:

  • Select a commit as "feature-complete" for the coming release and branch it from master
  • Move it to VSTS (and merge any needed additions there as PRs/cherry-picks)
  • Build and prepare the release publication
  • On release date, release the assets built
  • Update GitHub with any VSTS commits, then release on GitHub

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions