From 30ca91666ebd3168923baa82b4a17b039039d0a9 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Fri, 7 Oct 2022 06:22:05 +0200 Subject: [PATCH] Set SemverCompatible to false for Conan packages (#21275) Fixes #21250 Related #20414 Conan packages don't have to follow SemVer. The migration fixes the setting for all existing Conan and Generic (#20414) packages. --- models/migrations/migrations.go | 2 ++ models/migrations/v226.go | 15 +++++++++++++++ routers/api/packages/conan/conan.go | 3 +-- tests/integration/api_packages_conan_test.go | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 models/migrations/v226.go diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 28ffc99886..2a38772180 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -413,6 +413,8 @@ var migrations = []Migration{ NewMigration("Add badges to users", createUserBadgesTable), // v225 -> v226 NewMigration("Alter gpg_key/public_key content TEXT fields to MEDIUMTEXT", alterPublicGPGKeyContentFieldsToMediumText), + // v226 -> v227 + NewMigration("Conan and generic packages do not need to be semantically versioned", fixPackageSemverField), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v226.go b/models/migrations/v226.go new file mode 100644 index 0000000000..2f85bca21f --- /dev/null +++ b/models/migrations/v226.go @@ -0,0 +1,15 @@ +// Copyright 2022 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package migrations + +import ( + "xorm.io/builder" + "xorm.io/xorm" +) + +func fixPackageSemverField(x *xorm.Engine) error { + _, err := x.Exec(builder.Update(builder.Eq{"semver_compatible": false}).From("`package`").Where(builder.In("`type`", "conan", "generic"))) + return err +} diff --git a/routers/api/packages/conan/conan.go b/routers/api/packages/conan/conan.go index 90924c7c4b..c57f80ac2f 100644 --- a/routers/api/packages/conan/conan.go +++ b/routers/api/packages/conan/conan.go @@ -342,8 +342,7 @@ func uploadFile(ctx *context.Context, fileFilter stringSet, fileKey string) { Name: rref.Name, Version: rref.Version, }, - SemverCompatible: true, - Creator: ctx.Doer, + Creator: ctx.Doer, } pfci := &packages_service.PackageFileCreationInfo{ PackageFileInfo: packages_service.PackageFileInfo{ diff --git a/tests/integration/api_packages_conan_test.go b/tests/integration/api_packages_conan_test.go index 5b34417343..40c8b70883 100644 --- a/tests/integration/api_packages_conan_test.go +++ b/tests/integration/api_packages_conan_test.go @@ -267,7 +267,7 @@ func TestPackageConan(t *testing.T) { pd, err := packages.GetPackageDescriptor(db.DefaultContext, pvs[0]) assert.NoError(t, err) - assert.NotNil(t, pd.SemVer) + assert.Nil(t, pd.SemVer) assert.Equal(t, name, pd.Package.Name) assert.Equal(t, version1, pd.Version.Version) assert.IsType(t, &conan_module.Metadata{}, pd.Metadata)