Skip to content

Commit 07f40c5

Browse files
CLOUDP-311382: Update foas changelog metadata command to support upcoming (#748)
1 parent 73888a5 commit 07f40c5

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

tools/cli/internal/changelog/changelog.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,8 @@ func NewEntries(basePath, revisionPath, exceptionFilePath string) ([]*Entry, err
180180
}
181181

182182
for _, version := range changelog.RevisionMetadata.Versions {
183-
// Skip preview versions
184-
if apiversion.IsPreviewStabilityLevel(version) {
183+
// Skip preview and upcoming versions
184+
if apiversion.IsPreviewStabilityLevel(version) || apiversion.IsUpcomingStabilityLevel(version) {
185185
continue
186186
}
187187

@@ -229,6 +229,12 @@ func NewEntriesBetweenRevisionVersions(revisionPath, exceptionFilePath string) (
229229
if apiversion.IsPreviewStabilityLevel(fromVersion) || apiversion.IsPreviewStabilityLevel(toVersion) {
230230
continue
231231
}
232+
233+
// Skip upcoming version. It will be included in CLOUDP-315486
234+
if apiversion.IsUpcomingStabilityLevel(fromVersion) || apiversion.IsUpcomingStabilityLevel(toVersion) {
235+
continue
236+
}
237+
232238
entry, err := newEntriesBetweenVersion(revisionMetadata, fromVersion, toVersion, exceptionFilePath)
233239
if err != nil {
234240
return nil, err

tools/cli/internal/cli/changelog/metadata/create.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"fmt"
2020
"time"
2121

22+
"github.com/mongodb/openapi/tools/cli/internal/apiversion"
2223
"github.com/mongodb/openapi/tools/cli/internal/changelog"
2324
"github.com/mongodb/openapi/tools/cli/internal/cli/flag"
2425
"github.com/mongodb/openapi/tools/cli/internal/cli/usage"
@@ -70,16 +71,18 @@ func (o *Opts) PreRun() error {
7071
}
7172
}
7273

74+
// Validate that the API version use the correct date format YYYY-MM-DD
7375
for _, version := range o.versions {
74-
if _, err := time.Parse("2006-01-02", version); err != nil {
76+
if _, err := apiversion.New(apiversion.WithVersion(version)); err != nil {
7577
return fmt.Errorf("invalid version date: %w. Make sure to use the format YYYY-MM-DD", err)
7678
}
7779
}
7880

7981
return nil
8082
}
8183

82-
// changelog metadata create [--run-date=2024-09-22] --sha=e624d716e86f6910757b60cefdf3aa3181582d38 versions=2023-01-01,2023-02-01.
84+
// CreateBuilder creates the Cobra command for changelog metadata create [--run-date=2024-09-22]
85+
// --sha=e624d716e86f6910757b60cefdf3aa3181582d38 versions=2023-01-01,2023-02-01.
8386
func CreateBuilder() *cobra.Command {
8487
opts := &Opts{
8588
fs: afero.NewOsFs(),

tools/cli/internal/cli/changelog/metadata/create_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestCreateBuild_Run(t *testing.T) {
2828
opts := &Opts{
2929
specRevision: "11110c256dffdb163be71a3ca70854a57fad5f6f",
3030
runDate: "2024-01-01",
31-
versions: []string{"2024-01-01"},
31+
versions: []string{"2024-01-01", "2024-01-01.upcoming"},
3232
fs: fs,
3333
}
3434

@@ -47,6 +47,18 @@ func TestCreateBuild_PreRun_InvalidVersion(t *testing.T) {
4747
require.ErrorContains(t, opts.PreRun(), "invalid version date")
4848
}
4949

50+
func TestCreateBuild_PreRun_UpcomingVersion(t *testing.T) {
51+
fs := afero.NewMemMapFs()
52+
opts := &Opts{
53+
specRevision: "test",
54+
runDate: "2024-01-01",
55+
versions: []string{"2024-01-01.upcoming", "2025-01-01"},
56+
fs: fs,
57+
}
58+
59+
require.NoError(t, opts.PreRun())
60+
}
61+
5062
func TestCreateBuilder(t *testing.T) {
5163
test.CmdValidator(
5264
t,

0 commit comments

Comments
 (0)