Skip to content

Commit 7a6f29a

Browse files
authored
feat: add "latest" property to project versions (#1975)
Signed-off-by: Miguel Martinez <miguel@chainloop.dev>
1 parent 66d5470 commit 7a6f29a

15 files changed

+249
-23
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-- Modify "project_versions" table
2+
ALTER TABLE "project_versions" ADD COLUMN "latest" boolean NOT NULL DEFAULT false;
3+
4+
-- Reset all latest flags to false
5+
UPDATE "project_versions" SET "latest" = false;
6+
7+
-- Set latest to true for the most recent version of each project
8+
WITH latest_versions AS (
9+
SELECT DISTINCT ON (project_id) id
10+
FROM "project_versions"
11+
WHERE deleted_at IS NULL
12+
ORDER BY project_id, created_at DESC
13+
)
14+
UPDATE "project_versions" pv
15+
SET "latest" = true
16+
FROM latest_versions lv
17+
WHERE pv.id = lv.id;
18+
19+

app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
h1:6sY+6+wQ/2pBGPP/+t/PcZkL1HxZR2wcel340cIBLAo=
1+
h1:JyTOIqNoC4fnlehZxRclu3MD/5YT2eqUZpYUHAC6lFs=
22
20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M=
33
20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g=
44
20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI=
@@ -80,3 +80,4 @@ h1:6sY+6+wQ/2pBGPP/+t/PcZkL1HxZR2wcel340cIBLAo=
8080
20250303153626.sql h1:y38iNqTO+lutsb2hPu+gepPDgSDmsTcWbgu7kMpbIzE=
8181
20250326110627.sql h1:kTneMHSqpE7I8Gl88jjTy2olXpdg/np0yA45lqIxBic=
8282
20250327120254.sql h1:g7J945QzvonLcydhUryeIt2qXX/BLRo8XdClt2B6264=
83+
20250411122516.sql h1:OyL+DBJQyf+QYMQ8+6763c63MULo0roe8kC0niidCbk=

app/controlplane/pkg/data/ent/migrate/schema.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ var (
347347
{Name: "prerelease", Type: field.TypeBool, Default: true},
348348
{Name: "workflow_run_count", Type: field.TypeInt, Default: 0},
349349
{Name: "released_at", Type: field.TypeTime, Nullable: true},
350+
{Name: "latest", Type: field.TypeBool, Default: false},
350351
{Name: "project_id", Type: field.TypeUUID},
351352
}
352353
// ProjectVersionsTable holds the schema information for the "project_versions" table.
@@ -357,7 +358,7 @@ var (
357358
ForeignKeys: []*schema.ForeignKey{
358359
{
359360
Symbol: "project_versions_projects_versions",
360-
Columns: []*schema.Column{ProjectVersionsColumns[7]},
361+
Columns: []*schema.Column{ProjectVersionsColumns[8]},
361362
RefColumns: []*schema.Column{ProjectsColumns[0]},
362363
OnDelete: schema.Cascade,
363364
},
@@ -366,7 +367,7 @@ var (
366367
{
367368
Name: "projectversion_version_project_id",
368369
Unique: true,
369-
Columns: []*schema.Column{ProjectVersionsColumns[1], ProjectVersionsColumns[7]},
370+
Columns: []*schema.Column{ProjectVersionsColumns[1], ProjectVersionsColumns[8]},
370371
Annotation: &entsql.IndexAnnotation{
371372
Where: "deleted_at IS NULL",
372373
},

app/controlplane/pkg/data/ent/mutation.go

+55-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion.go

+12-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion/projectversion.go

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion/where.go

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion_create.go

+65
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)