Skip to content

New mode: mainline #932

Closed
Closed
@JakeGinnivan

Description

@JakeGinnivan

I think what we need to start thinking about is a new mode for GitVersion (in addition to ContinuousDelivery and ContinuousDeployment).

My initial thoughts is to call it Mainline. The description of mainline development would be:

Mainline development considers a merge to 'master' a release, unlike the continuous delivery and deployment modes which get notified of a release via a tag. This allows you to use many of the GitVersion conveniences without having to tag your releases.
Initial thoughts about how this would work:

  1. Find initial base version
    • If version is specified in GitVersion.yml, find the commit it was updated in, this commit and version can be a base version
    • Other base version sources would be the same, can use tags (as a snapshot, similar to event sourced systems)
  2. Calculate the current version
    • Find all merge commits to master
    • Merged commits under their merge commits
    • Go through each merge commit, run the increment strategies on the merged commits
    • Aggregate the increments to get to the current version

See #889 for the discussion which lead to this new mode and also covers the naming of each of the modes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions