notaryproject / notation-go

A collection of libraries for supporting sign and verify OCI artifacts. Based on Notary Project specifications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Release notation-go-lib-v0.7.0-alpha.1

iamsamirzon opened this issue · comments

Proposing we release notation-go-lib-v0.7.0-alpha.1 as we have completed the milestone. Release process is defined here.

High level deliverables as as follows:

  • Decide on main commit for release
  • Cut branch named v0.7.0-alpha.1 based on agreed upon main commit
  • Cut a tag named v0.7.0-alpha.1
  • Update README.md

/cc @SteveLasker @NiazFK @justincormack @sajayantony

Can the maintainers please respond with a +1 comment once you are in favor of cutting this release.

I believe the tag names have to be prefixed with v and similarly recommend prefixing the v for release as well similar to https://github.com/kubernetes/kubernetes/releases/tag/v1.22.2

@iamsamirzon - The candidate commit is - 6f3abd7

There is a issue in the version v1.0.0-alpha-1.

According to SemVer 2,

Precedence for two pre-release versions with the same major, minor, and patch version MUST be determined by comparing each dot separated identifier from left to right until a difference is found as follows:

Identifiers consisting of only digits are compared numerically.

Identifiers with letters or hyphens are compared lexically in ASCII sort order.

Numeric identifiers always have lower precedence than non-numeric identifiers.

A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal.

Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.

it is better to have v1.0.0-alpha.1 than v1.0.0-alpha-1.

Here is a code example:

package main

import (
	"fmt"

	"golang.org/x/mod/semver"
)

func compare(s, t string) {
	switch res := semver.Compare(s, t); {
	case res < 0:
		fmt.Println(s, "<", t)
	case res == 0:
		fmt.Println(s, "==", t)
	case res > 0:
		fmt.Println(s, ">", t)
	}
}

func main() {
	compare("v1.0.0-alpha-2", "v1.0.0-alpha-11")
	compare("v1.0.0-alpha.2", "v1.0.0-alpha.11")
}

outputs:

v1.0.0-alpha-2 > v1.0.0-alpha-11
v1.0.0-alpha.2 < v1.0.0-alpha.11

Regarding the versioning conversation from this morning:
To cut a release today, we'd like to propose:

  • Notary V2 standard (notaryproject-1.0.0-draft-1)
  • Notation Library (Version 0.5.0) (notation-go-lib-1.0.0-alpha-1)
  • Notation CLI (Version 0.6.1) (notation-1.0.0-alpha-1)
    Becomes - (changing the - to . and removing the notation --version reference)
  • Notary V2 standard (notaryproject-1.0.0-draft.1)
  • Notation Library (notation-go-lib-1.0.0-alpha.1)
  • Notation CLI (notation-1.0.0-alpha.1)

This would apply to

  • notaryproject/notaryproject specs
  • notaryproject/notation for the cli
  • notaryproject/notation-go-lib for the library

@iamsamirzon @SteveLasker - I believe this is complete now...

All this said - It would be great to discuss release strategy and document something for ongoing work.

I concur with your David.

Closed as v0.7.0-alpha.1 has been released.