Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions tools/cli/internal/apiversion/stabilitylevel.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,35 @@ const (
StableStabilityLevel = "stable"
PreviewStabilityLevel = "preview"
PrivatePreviewStabilityLevel = "private-preview"
PublicPreviewSabilityLevel = "public-preview"
PublicPreviewStabilityLevel = "public-preview"
)

var supportedValues = []string{StableStabilityLevel, PublicPreviewSabilityLevel, PrivatePreviewStabilityLevel}
var supportedValues = []string{StableStabilityLevel, PublicPreviewStabilityLevel, PrivatePreviewStabilityLevel}

// IsPreviewSabilityLevel checks if the version is a preview version, public or private.
func IsPreviewSabilityLevel(value string) bool {
return IsPrivatePreviewSabilityLevel(value) || IsPublicPreviewSabilityLevel(value)
// IsPreviewStabilityLevel checks if the version is a preview version, public or private.
func IsPreviewStabilityLevel(value string) bool {
return IsPrivatePreviewStabilityLevel(value) || IsPublicPreviewStabilityLevel(value)
}

// IsPrivatePreviewSabilityLevel checks if the version is a private preview version.
func IsPrivatePreviewSabilityLevel(value string) bool {
// IsPrivatePreviewStabilityLevel checks if the version is a private preview version.
func IsPrivatePreviewStabilityLevel(value string) bool {
return strings.Contains(strings.ToLower(value), PrivatePreviewStabilityLevel)
}

// IsPublicPreviewSabilityLevel checks if the version is a public preview version.
func IsPublicPreviewSabilityLevel(value string) bool {
return strings.EqualFold(value, PublicPreviewSabilityLevel) || strings.EqualFold(value, PreviewStabilityLevel)
// IsPublicPreviewStabilityLevel checks if the version is a public preview version.
func IsPublicPreviewStabilityLevel(value string) bool {
return strings.EqualFold(value, PublicPreviewStabilityLevel) || strings.EqualFold(value, PreviewStabilityLevel)
}

// IsStableSabilityLevel checks if the version is a stable version.
func IsStableSabilityLevel(value string) bool {
// IsStableStabilityLevel checks if the version is a stable version.
func IsStableStabilityLevel(value string) bool {
return strings.EqualFold(value, StableStabilityLevel)
}

// IsValidStabilityLevel checks if the version is a valid stability level.
// ValidateStabilityLevel checks if the version is a valid stability level.
func ValidateStabilityLevel(value string) error {
if IsStableSabilityLevel(value) || IsPreviewSabilityLevel(value) {
if IsStableStabilityLevel(value) || IsPreviewStabilityLevel(value) {
return nil
}

Expand Down
52 changes: 26 additions & 26 deletions tools/cli/internal/apiversion/stabilitylevel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,38 @@ import (
"github.com/stretchr/testify/require"
)

func TestIsPreviewSabilityLevel(t *testing.T) {
assert.True(t, IsPreviewSabilityLevel("preview"))
assert.True(t, IsPreviewSabilityLevel("PREVIEW"))
assert.True(t, IsPreviewSabilityLevel("prEvIEW"))
assert.True(t, IsPreviewSabilityLevel("private-preview"))
assert.True(t, IsPreviewSabilityLevel("public-preview"))
assert.False(t, IsPreviewSabilityLevel("stable"))
assert.False(t, IsPreviewSabilityLevel("invalid"))
func TestIsPreviewStabilityLevel(t *testing.T) {
assert.True(t, IsPreviewStabilityLevel("preview"))
assert.True(t, IsPreviewStabilityLevel("PREVIEW"))
assert.True(t, IsPreviewStabilityLevel("prEvIEW"))
assert.True(t, IsPreviewStabilityLevel("private-preview"))
assert.True(t, IsPreviewStabilityLevel("public-preview"))
assert.False(t, IsPreviewStabilityLevel("stable"))
assert.False(t, IsPreviewStabilityLevel("invalid"))
}

func TestIsPrivatePreviewSabilityLevel(t *testing.T) {
assert.True(t, IsPrivatePreviewSabilityLevel("private-preview"))
assert.False(t, IsPrivatePreviewSabilityLevel("public-preview"))
assert.False(t, IsPrivatePreviewSabilityLevel("preview"))
assert.False(t, IsPrivatePreviewSabilityLevel("stable"))
assert.False(t, IsPrivatePreviewSabilityLevel("invalid"))
func TestIsPrivatePreviewStabilityLevel(t *testing.T) {
assert.True(t, IsPrivatePreviewStabilityLevel("private-preview"))
assert.False(t, IsPrivatePreviewStabilityLevel("public-preview"))
assert.False(t, IsPrivatePreviewStabilityLevel("preview"))
assert.False(t, IsPrivatePreviewStabilityLevel("stable"))
assert.False(t, IsPrivatePreviewStabilityLevel("invalid"))
}

func TestIsPublicPreviewSabilityLevel(t *testing.T) {
assert.True(t, IsPublicPreviewSabilityLevel("public-preview"))
assert.True(t, IsPublicPreviewSabilityLevel("preview"))
assert.False(t, IsPublicPreviewSabilityLevel("private-preview"))
assert.False(t, IsPublicPreviewSabilityLevel("stable"))
assert.False(t, IsPublicPreviewSabilityLevel("invalid"))
func TestIsPublicPreviewStabilityLevel(t *testing.T) {
assert.True(t, IsPublicPreviewStabilityLevel("public-preview"))
assert.True(t, IsPublicPreviewStabilityLevel("preview"))
assert.False(t, IsPublicPreviewStabilityLevel("private-preview"))
assert.False(t, IsPublicPreviewStabilityLevel("stable"))
assert.False(t, IsPublicPreviewStabilityLevel("invalid"))
}

func TestIsStableSabilityLevel(t *testing.T) {
assert.True(t, IsStableSabilityLevel("stable"))
assert.False(t, IsStableSabilityLevel("preview"))
assert.False(t, IsStableSabilityLevel("private-preview"))
assert.False(t, IsStableSabilityLevel("public-preview"))
assert.False(t, IsStableSabilityLevel("invalid"))
func TestIsStableStabilityLevel(t *testing.T) {
assert.True(t, IsStableStabilityLevel("stable"))
assert.False(t, IsStableStabilityLevel("preview"))
assert.False(t, IsStableStabilityLevel("private-preview"))
assert.False(t, IsStableStabilityLevel("public-preview"))
assert.False(t, IsStableStabilityLevel("invalid"))
}

func TestValidateStabilityLevel(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions tools/cli/internal/apiversion/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func (v *APIVersion) newVersion(version string, date time.Time) {
v.stabilityVersion = StableStabilityLevel
v.versionDate = date

if IsPreviewSabilityLevel(version) {
if IsPreviewStabilityLevel(version) {
v.versionDate = time.Now().AddDate(10, 0, 0) // set preview date to the future
v.stabilityVersion = PreviewStabilityLevel
}
Expand Down Expand Up @@ -118,7 +118,7 @@ func WithFullContent(contentType string, contentValue *openapi3.MediaType) Optio
}

func DateFromVersion(version string) (time.Time, error) {
if IsPreviewSabilityLevel(version) {
if IsPreviewStabilityLevel(version) {
return time.Now(), nil
}
return time.Parse(dateFormat, version)
Expand Down Expand Up @@ -161,7 +161,7 @@ func (v *APIVersion) ExactMatchOnly() bool {
}

func (v *APIVersion) IsPreview() bool {
return IsPreviewSabilityLevel(v.version)
return IsPreviewStabilityLevel(v.version)
}

func (v *APIVersion) IsPrivatePreview() bool {
Expand Down
13 changes: 13 additions & 0 deletions tools/cli/internal/changelog/changelog.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"os"
"time"

"github.com/mongodb/openapi/tools/cli/internal/apiversion"
"github.com/mongodb/openapi/tools/cli/internal/openapi"
"github.com/tufin/oasdiff/checker"
"github.com/tufin/oasdiff/diff"
Expand Down Expand Up @@ -173,6 +174,11 @@ func NewEntries(basePath, revisionPath, exceptionFilePath string) ([]*Entry, err
}

for _, version := range changelog.RevisionMetadata.Versions {
// Skip preview versions
if apiversion.IsPreviewStabilityLevel(version) {
continue
}

changelog.RevisionMetadata.ActiveVersion = version
changelog.BaseMetadata.ActiveVersion = version
changelog.Revision, err = newOpeAPISpecFromPathAndVersion(changelog.RevisionMetadata.Path, version)
Expand Down Expand Up @@ -213,6 +219,10 @@ func NewEntriesBetweenRevisionVersions(revisionPath, exceptionFilePath string) (
entries := []*Entry{}
for idx, fromVersion := range revisionMetadata.Versions {
for _, toVersion := range revisionMetadata.Versions[idx+1:] {
// skip preview versions
if apiversion.IsPreviewStabilityLevel(fromVersion) || apiversion.IsPreviewStabilityLevel(toVersion) {
continue
}
entry, err := newEntriesBetweenVersion(revisionMetadata, fromVersion, toVersion, exceptionFilePath)
if err != nil {
return nil, err
Expand Down Expand Up @@ -420,6 +430,9 @@ func latestVersionActiveOnDate(date string, versions []string) (string, error) {

activeVersions := []time.Time{}
for _, version := range versions {
if apiversion.IsPreviewStabilityLevel(version) {
continue
}
versionTime, err := newDateFromString(version)
if err != nil {
return "", err
Expand Down
6 changes: 3 additions & 3 deletions tools/cli/internal/cli/versions/versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@ func (o *Opts) filterStabilityLevelVersions(apiVersions []string) []string {
var out []string
for _, v := range apiVersions {
for _, stabilityLevel := range o.stabilityLevel {
if (apiversion.IsStableSabilityLevel(stabilityLevel)) && !apiversion.IsPreviewSabilityLevel(v) {
if (apiversion.IsStableStabilityLevel(stabilityLevel)) && !apiversion.IsPreviewStabilityLevel(v) {
out = append(out, v)
}

if (apiversion.IsPrivatePreviewSabilityLevel(stabilityLevel)) && apiversion.IsPrivatePreviewSabilityLevel(v) {
if (apiversion.IsPrivatePreviewStabilityLevel(stabilityLevel)) && apiversion.IsPrivatePreviewStabilityLevel(v) {
out = append(out, v)
}

if (apiversion.IsPublicPreviewSabilityLevel(stabilityLevel)) && apiversion.IsPublicPreviewSabilityLevel(v) {
if (apiversion.IsPublicPreviewStabilityLevel(stabilityLevel)) && apiversion.IsPublicPreviewStabilityLevel(v) {
out = append(out, v)
}
}
Expand Down
2 changes: 1 addition & 1 deletion tools/cli/internal/openapi/versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func extractVersions(oas *openapi3.T) ([]string, error) {
continue
}

if apiversion.IsPreviewSabilityLevel(version) {
if apiversion.IsPreviewStabilityLevel(version) {
// parse if it is public or not
version, err = apiversion.GetPreviewVersionName(contentTypeValue)
if err != nil {
Expand Down
Loading
Loading