Repository Service for TUF Release process

Release process

Versioning

The Components track the Release Issues using the GitHub Milestones for the Component Repository.

The Components have autonomy on their release, and the process follows the same for all components. The versioning follows X.Y.Z where X is the major version, Y is the minor version, and Z is the micro version:

  • New major versions are exceptional; they only come when strongly incompatible changes are deemed necessary and are planned very long in advance;

  • New minor versions are feature releases; they get released accordingly with some Roadmap;

  • New micro versions are bugfix releases;

The Component decides to release alphas (vX.Y.ZaN where``N`` is incremental release/build) and betas (vX.Y.ZbN).

Releasing

  1. To release, a tag vX.Y.Z is created.

  2. This tag will trigger the .github/workflow/cd.yml that will generate a new artifact (Package or Docker Image) with the tag and name rc. Example: v0.1.3-rc. This artifact is a release candidate for tests and validations.

  3. After tests and validation, one of the maintainers needs to approve, and the artifact will be General Available (GA).

@startuml
    start
    :New tag v1.2.3;
    if (Run CD) then (success)
        :Generate artifact v1.2.3rc;
        if (Maintainer Approval) then (Approved)
            :Release Artifact v1.2.3;
            stop
        else (reject)
            end
        endif
    else (failure)
        end
    endif
@enduml

Roadmap