Skip to content

Commit c616f45

Browse files
committed
schedule-builder: move model to it own package to export
Signed-off-by: Carlos Panato <[email protected]>
1 parent 30c6f38 commit c616f45

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

cmd/schedule-builder/cmd/markdown.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,15 @@ import (
2525

2626
"github.com/olekukonko/tablewriter"
2727
"github.com/sirupsen/logrus"
28+
29+
"k8s.io/release/cmd/schedule-builder/model"
2830
)
2931

3032
//go:embed templates/*.tmpl
3133
var tpls embed.FS
3234

3335
// runs with `--type=patch` to retrun the patch schedule
34-
func parseSchedule(patchSchedule PatchSchedule) string {
36+
func parseSchedule(patchSchedule model.PatchSchedule) string {
3537
output := []string{}
3638
output = append(output, "### Timeline\n")
3739
for _, releaseSchedule := range patchSchedule.Schedules {
@@ -68,19 +70,19 @@ func parseSchedule(patchSchedule PatchSchedule) string {
6870
}
6971

7072
// runs with `--type=release` to retrun the release cycle schedule
71-
func parseReleaseSchedule(releaseSchedule ReleaseSchedule) string {
73+
func parseReleaseSchedule(releaseSchedule model.ReleaseSchedule) string {
7274
type RelSched struct {
7375
K8VersionWithDot string
7476
K8VersionWithoutDot string
75-
Arr []Timeline
77+
Arr []model.Timeline
7678
TimelineOutput string
7779
}
7880

7981
var relSched RelSched
8082

8183
relSched.K8VersionWithDot = releaseSchedule.Releases[0].Version
8284
relSched.K8VersionWithoutDot = removeDotfromVersion(releaseSchedule.Releases[0].Version)
83-
relSched.Arr = []Timeline{}
85+
relSched.Arr = []model.Timeline{}
8486
for _, releaseSchedule := range releaseSchedule.Releases {
8587
for _, timeline := range releaseSchedule.Timeline {
8688
if timeline.Tldr {
@@ -113,7 +115,7 @@ func parseReleaseSchedule(releaseSchedule ReleaseSchedule) string {
113115
return scheduleOut
114116
}
115117

116-
func patchReleaseInPreviousList(a string, previousPatches []PreviousPatches) bool {
118+
func patchReleaseInPreviousList(a string, previousPatches []model.PreviousPatches) bool {
117119
for _, b := range previousPatches {
118120
if b.Release == a {
119121
return true

cmd/schedule-builder/cmd/markdown_test.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"testing"
2222

2323
"github.com/stretchr/testify/require"
24+
25+
"k8s.io/release/cmd/schedule-builder/model"
2426
)
2527

2628
const expectedPatchSchedule = `### Timeline
@@ -124,19 +126,19 @@ Please refer to the [release phases document](../release_phases.md).
124126
func TestParseSchedule(t *testing.T) {
125127
testcases := []struct {
126128
name string
127-
schedule PatchSchedule
129+
schedule model.PatchSchedule
128130
}{
129131
{
130132
name: "next patch is not in previous patch list",
131-
schedule: PatchSchedule{
132-
Schedules: []Schedule{
133+
schedule: model.PatchSchedule{
134+
Schedules: []model.Schedule{
133135
{
134136
Release: "X.Y",
135137
Next: "X.Y.ZZZ",
136138
CherryPickDeadline: "2020-06-12",
137139
TargetDate: "2020-06-17",
138140
EndOfLifeDate: "NOW",
139-
PreviousPatches: []PreviousPatches{
141+
PreviousPatches: []model.PreviousPatches{
140142
{
141143
Release: "X.Y.XXX",
142144
CherryPickDeadline: "2020-05-15",
@@ -155,15 +157,15 @@ func TestParseSchedule(t *testing.T) {
155157
},
156158
{
157159
name: "next patch is in previous patch list",
158-
schedule: PatchSchedule{
159-
Schedules: []Schedule{
160+
schedule: model.PatchSchedule{
161+
Schedules: []model.Schedule{
160162
{
161163
Release: "X.Y",
162164
Next: "X.Y.ZZZ",
163165
CherryPickDeadline: "2020-06-12",
164166
TargetDate: "2020-06-17",
165167
EndOfLifeDate: "NOW",
166-
PreviousPatches: []PreviousPatches{
168+
PreviousPatches: []model.PreviousPatches{
167169
{
168170
Release: "X.Y.ZZZ",
169171
CherryPickDeadline: "2020-06-12",
@@ -197,15 +199,15 @@ func TestParseSchedule(t *testing.T) {
197199
func TestParseReleaseSchedule(t *testing.T) {
198200
testcases := []struct {
199201
name string
200-
schedule ReleaseSchedule
202+
schedule model.ReleaseSchedule
201203
}{
202204
{
203205
name: "test of release cycle of X.Y version",
204-
schedule: ReleaseSchedule{
205-
Releases: []Release{
206+
schedule: model.ReleaseSchedule{
207+
Releases: []model.Release{
206208
{
207209
Version: "X.Y",
208-
Timeline: []Timeline{
210+
Timeline: []model.Timeline{
209211
{
210212
What: "Testing-A",
211213
Who: "tester",

cmd/schedule-builder/cmd/root.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/sirupsen/logrus"
2525
"github.com/spf13/cobra"
2626

27+
"k8s.io/release/cmd/schedule-builder/model"
2728
"sigs.k8s.io/release-utils/log"
2829
"sigs.k8s.io/yaml"
2930
)
@@ -121,8 +122,8 @@ func run(opts *options) error {
121122
}
122123

123124
var (
124-
patchSchedule PatchSchedule
125-
releaseSchedule ReleaseSchedule
125+
patchSchedule model.PatchSchedule
126+
releaseSchedule model.ReleaseSchedule
126127
scheduleOut string
127128
)
128129

cmd/schedule-builder/cmd/model.go renamed to cmd/schedule-builder/model/model.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package cmd
17+
package model
1818

1919
// PatchSchedule main struct to hold the schedules
2020
type PatchSchedule struct {
@@ -32,6 +32,7 @@ type PreviousPatches struct {
3232
// Schedule struct to define the release schedule for a specific version
3333
type Schedule struct {
3434
Release string `yaml:"release"`
35+
ReleaseDate string `yaml:"releaseDate"`
3536
Next string `yaml:"next"`
3637
CherryPickDeadline string `yaml:"cherryPickDeadline"`
3738
TargetDate string `yaml:"targetDate"`

0 commit comments

Comments
 (0)