Release Software#

At the end of the course, you should produce a software release, and publish it on your project page.

What is a software release?#

A software release is process where you halt development, and generate an installable version of your product that contains specific, known and tested functionality. Typically this is done so that you can provide users with a working copy of your software either for further testing, or actual use/deployment.

Producing a release#

Here’s what you should do:

  1. Assign a version number.

    • We recommend incrementing the second digit during development; your final release in this course should be version 1.0.
    • e.g., Demo 1 is 0.10, Demo 2 is 0.20, …, final release is 1.0. See semantic versioning.
  2. Consolidate code changes. Commit all completed code changes and merge back to your release branch (main unless you are told otherwise). Make sure that all unit tests pass.

  3. Generate a release in GitLab (docs). You can start this through Deploy > Release. This will (a) tag your code at this point in time, (b) create an archive of your source code from that tag.

  4. Write release notes. Each software release should be documented in a Wiki page, named according to the release number e.g., Version 1.0.0 Release. You should have a section titled Releases in your README.md with a link to this page.

    The Wiki page for a release needs to include:

    • The release date, which should be the date that the installer was generated. e.g., 12-May-2023
    • The version of this release (which you increment for each release. e.g., 1.1.0 for your first sprint.
    • A bullet list of the major changes that were included in the release, and a link to the issues list in GitLab.
  5. Add install instructions. The install instructions should be what a user could use to install it.

If the files are too large to attach, you can place them in your Git repository and provide a link to the files in your Release Notes.