mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-06-18 23:20:51 +00:00
Some checks are pending
/ release (push) Waiting to run
testing / test-unit (push) Blocked by required conditions
testing / test-e2e (push) Blocked by required conditions
testing / backend-checks (push) Waiting to run
testing / frontend-checks (push) Waiting to run
testing / test-remote-cacher (redis) (push) Blocked by required conditions
testing / test-remote-cacher (valkey) (push) Blocked by required conditions
testing / test-remote-cacher (garnet) (push) Blocked by required conditions
testing / test-remote-cacher (redict) (push) Blocked by required conditions
testing / test-mysql (push) Blocked by required conditions
testing / test-pgsql (push) Blocked by required conditions
testing / test-sqlite (push) Blocked by required conditions
testing / security-check (push) Blocked by required conditions
Second part of #6327 to fix the Maven package naming. This pull request includes: * Changing the group and artifact IDs from being separated by `-` to `:` as suggested by [Maven](https://maven.apache.org/pom.html#Maven_Coordinates). * Making Maven package names case-sensitive * Migrating the database to: * Handle collisions of package names (e.g., groupId: foo- with artifactId: bar and groupId: foo with artifactId: -bar) by moving them into their own packages. * Fix the missing group ID issue (#6329). * Update lower_name to match the name value for maven pkgs to make it case-sensetive. ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests - I added test coverage for Go changes... - [x] in their respective `*_test.go` for unit tests. - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I added test coverage for JavaScript changes... - [ ] in `web_src/js/*.test.js` if it can be unit tested. - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)). ### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [x] I did not document these changes and I do not expect someone else to do it. ### Release notes - [ ] I do not want this change to show in the release notes. - [x] I want the title to show in the release notes with a link to this pull request. - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6352 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Julian Schlarb <julian.schlarb@denktmit.de> Co-committed-by: Julian Schlarb <julian.schlarb@denktmit.de>
369 lines
24 KiB
Go
369 lines
24 KiB
Go
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package forgejo_migrations //nolint:revive
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"io"
|
|
"net/url"
|
|
"strings"
|
|
"testing"
|
|
|
|
migration_tests "forgejo.org/models/migrations/test"
|
|
"forgejo.org/models/packages"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type readSeekCloser struct {
|
|
*bytes.Reader
|
|
}
|
|
|
|
func (rsc readSeekCloser) Close() error {
|
|
// No resources to close, so we simply provide a no-op implementation.
|
|
return nil
|
|
}
|
|
|
|
func StringToReadSeekCloser(s string) io.ReadSeekCloser {
|
|
return readSeekCloser{Reader: bytes.NewReader([]byte(s))}
|
|
}
|
|
|
|
func Test_ChangeMavenArtifactConcatenation(t *testing.T) {
|
|
getPackage = func(ctx context.Context, pf *packages.PackageFile) (io.ReadSeekCloser, *url.URL, *packages.PackageFile, error) {
|
|
var data string
|
|
|
|
switch pf.BlobID {
|
|
case 1:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0-SNAPSHOT</version></project>`
|
|
case 3:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId></parent><groupId></groupId><artifactId>sub-module</artifactId><version>1.0-SNAPSHOT</version></project>`
|
|
case 6:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>7.0.0</version></project>`
|
|
case 7:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId></parent><groupId></groupId><artifactId>sub-module</artifactId><version>7.0.0</version></project>`
|
|
case 9:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>7.0.0</version></project>`
|
|
case 11:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo-</groupId><artifactId>bar</artifactId><version>1.0-SNAPSHOT</version></project>`
|
|
case 13:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo-</groupId><artifactId>bar</artifactId><version>7.0.0</version></project>`
|
|
case 14:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo</groupId><artifactId>-bar</artifactId><version>1.0-SNAPSHOT</version></project>`
|
|
case 16:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo</groupId><artifactId>-bar</artifactId><version>7.0.0</version></project>`
|
|
case 20:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>8.0.0</version></project>`
|
|
case 21:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId></parent><groupId></groupId><artifactId>sub-module</artifactId><version>8.0.0</version></project>`
|
|
case 23:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>8.0.0</version></project>`
|
|
case 26:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo-</groupId><artifactId>bar</artifactId><version>8.0.0</version></project>`
|
|
case 28:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo</groupId><artifactId>-bar</artifactId><version>8.0.0</version></project>`
|
|
case 32:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>9.0.0</version></project>`
|
|
case 33:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId></parent><groupId></groupId><artifactId>sub-module</artifactId><version>9.0.0</version></project>`
|
|
case 35:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>9.0.0</version></project>`
|
|
case 38:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo-</groupId><artifactId>bar</artifactId><version>9.0.0</version></project>`
|
|
case 40:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo</groupId><artifactId>-bar</artifactId><version>9.0.0</version></project>`
|
|
case 44:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>10.0.0</version></project>`
|
|
case 45:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId></parent><groupId></groupId><artifactId>sub-module</artifactId><version>10.0.0</version></project>`
|
|
case 47:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>10.0.0</version></project>`
|
|
case 50:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo-</groupId><artifactId>bar</artifactId><version>10.0.0</version></project>`
|
|
case 52:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo</groupId><artifactId>-bar</artifactId><version>10.0.0</version></project>`
|
|
case 56:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>11.0.0</version></project>`
|
|
case 57:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId></parent><groupId></groupId><artifactId>sub-module</artifactId><version>11.0.0</version></project>`
|
|
case 59:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>11.0.0</version></project>`
|
|
case 62:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo-</groupId><artifactId>bar</artifactId><version>11.0.0</version></project>`
|
|
case 64:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>foo</groupId><artifactId>-bar</artifactId><version>11.0.0</version></project>`
|
|
case 66:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.broken</groupId><artifactId>br-parent</artifactId></parent><groupId></groupId><artifactId>br-rest-webmvc</artifactId><version></version></project>`
|
|
case 68:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.broken</groupId><artifactId>br-parent</artifactId></parent><groupId></groupId><artifactId>br-openapi-base</artifactId><version></version></project>`
|
|
case 72:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><parent><groupId>de.loosetie</groupId><artifactId>lt-parent-kotlin</artifactId></parent><groupId>com.broken</groupId><artifactId>br-root</artifactId><version>1.2.4</version></project>`
|
|
case 74:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.broken</groupId><artifactId>br-parent</artifactId></parent><groupId></groupId><artifactId>br-repo-jooq</artifactId><version></version></project>`
|
|
case 76:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging></packaging><parent><groupId>com.broken</groupId><artifactId>br-parent</artifactId></parent><groupId></groupId><artifactId>br-repo-in-memory</artifactId><version></version></project>`
|
|
case 78:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><parent><groupId>com.broken</groupId><artifactId>br-root</artifactId></parent><groupId></groupId><artifactId>br-parent</artifactId><version></version></project>`
|
|
case 79:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>group</groupId><artifactId>bar-art</artifactId><version>11.0.0</version></project>`
|
|
case 80:
|
|
data = `<project><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>group-bar</groupId><artifactId>art</artifactId><version>11.0.0</version></project>`
|
|
case 55:
|
|
data = `<?xml version="1.0" encoding="UTF-8"?><metadata modelVersion="1.1.0"><groupId>com.example</groupId><artifactId>sub-module</artifactId><version>1.0-SNAPSHOT</version></metadata>`
|
|
case 53:
|
|
data = `<?xml version="1.0" encoding="UTF-8"?><metadata modelVersion="1.1.0"><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0-SNAPSHOT</version></metadata>`
|
|
case 63:
|
|
data = `<?xml version="1.0" encoding="UTF-8"?><metadata modelVersion="1.1.0"><groupId>foo</groupId><artifactId>-bar</artifactId><version>1.0-SNAPSHOT</version></metadata>`
|
|
default:
|
|
t.Fatalf("Unknown package file type: %d", pf.BlobID)
|
|
}
|
|
|
|
return StringToReadSeekCloser(data), nil, nil, nil
|
|
}
|
|
|
|
x, deferable := migration_tests.PrepareTestEnv(t, 0, new(packages.Package), new(packages.PackageFile), new(packages.PackageVersion), new(packages.PackageBlob))
|
|
defer deferable()
|
|
if x == nil || t.Failed() {
|
|
return
|
|
}
|
|
|
|
cnt, err := x.Table("package").Count()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, 8, cnt)
|
|
|
|
cnt, err = x.Table("package_file").Count()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, 87, cnt)
|
|
|
|
cnt, err = x.Table("package_version").Count()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, 31, cnt)
|
|
|
|
cnt, err = x.Table("package_blob").Count()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, 80, cnt)
|
|
|
|
require.NoError(t, ChangeMavenArtifactConcatenation(x))
|
|
|
|
var pks []*packages.Package
|
|
require.NoError(t, x.OrderBy("id").Find(&pks))
|
|
validatePackages(t, pks)
|
|
|
|
var pvs []*packages.PackageVersion
|
|
require.NoError(t, x.OrderBy("id").Find(&pvs))
|
|
validatePackageVersions(t, pvs)
|
|
|
|
var pfs []*packages.PackageFile
|
|
require.NoError(t, x.OrderBy("id").Find(&pfs))
|
|
validatePackageFiles(t, pfs)
|
|
}
|
|
|
|
func validatePackages(t *testing.T, pbs []*packages.Package) {
|
|
assertPackage := func(id, ownerID, repoID int64, name string) {
|
|
pb := pbs[id-1]
|
|
|
|
require.Equal(t, id, pb.ID)
|
|
require.Equal(t, ownerID, pb.OwnerID)
|
|
require.Equal(t, repoID, pb.RepoID)
|
|
require.Equal(t, name, pb.Name)
|
|
require.Equal(t, name, pb.LowerName)
|
|
require.Equal(t, packages.TypeMaven, pb.Type)
|
|
}
|
|
|
|
require.Len(t, pbs, 10)
|
|
|
|
assertPackage(1, 2, 0, "com.example:parent-project")
|
|
assertPackage(2, 2, 0, "com.example:sub-module")
|
|
assertPackage(3, 1, 0, "com.example:parent-project")
|
|
assertPackage(4, 1, 0, "com.example:sub-module")
|
|
assertPackage(5, 1, 0, "foo:-bar")
|
|
assertPackage(6, 8, 54, "com.broken:br-rest-webmvc")
|
|
// broken poms completely ignored as it is impossible to look up the correct metadata
|
|
assertPackage(7, 8, 54, "com.broken-br-openapi-base")
|
|
assertPackage(8, 1, 0, "group-bar:art")
|
|
|
|
// new created entries
|
|
assertPackage(9, 1, 0, "group:bar-art")
|
|
assertPackage(10, 1, 0, "foo-:bar")
|
|
}
|
|
|
|
func validatePackageVersions(t *testing.T, pvs []*packages.PackageVersion) {
|
|
require.Len(t, pvs, 38)
|
|
|
|
assertPackageVersion := func(id, packageId, creatorId, createdUnix int64, version, metadata string) {
|
|
pv := pvs[id-1]
|
|
|
|
require.Equal(t, id, pv.ID)
|
|
require.Equal(t, packageId, pv.PackageID)
|
|
|
|
require.Equal(t, creatorId, pv.CreatorID)
|
|
require.Equal(t, version, pv.Version)
|
|
require.Equal(t, strings.ToLower(version), pv.LowerVersion)
|
|
require.JSONEq(t, metadata, pv.MetadataJSON)
|
|
}
|
|
|
|
assertPackageVersion(1, 1, 1, 1746256357, "1.0-SNAPSHOT", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
assertPackageVersion(2, 2, 1, 1746256358, "1.0-SNAPSHOT", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(3, 1, 1, 1746256360, "7.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
// added groupId
|
|
assertPackageVersion(4, 2, 1, 1746256361, "7.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(5, 3, 1, 1746256364, "7.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
// added groupId
|
|
assertPackageVersion(6, 4, 1, 1746256365, "7.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(7, 5, 1, 1746256367, "1.0-SNAPSHOT", `{"artifact_id":"-bar","group_id":"foo"}`)
|
|
assertPackageVersion(8, 5, 1, 1746256370, "7.0.0", `{"artifact_id":"-bar","group_id":"foo"}`)
|
|
assertPackageVersion(9, 1, 1, 1746256389, "8.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
// added groupId
|
|
assertPackageVersion(10, 2, 1, 1746256390, "8.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(11, 3, 1, 1746256393, "8.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
// added groupId
|
|
assertPackageVersion(12, 4, 1, 1746256394, "8.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(13, 5, 1, 1746256399, "8.0.0", `{"artifact_id":"-bar","group_id":"foo"}`)
|
|
assertPackageVersion(14, 1, 1, 1746256419, "9.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
// added groupId
|
|
assertPackageVersion(15, 2, 1, 1746256420, "9.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(16, 3, 1, 1746256423, "9.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
// added groupId
|
|
assertPackageVersion(17, 4, 1, 1746256424, "9.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(18, 5, 1, 1746256429, "9.0.0", `{"artifact_id":"-bar","group_id":"foo"}`)
|
|
assertPackageVersion(19, 1, 1, 1746256449, "10.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
assertPackageVersion(20, 2, 1, 1746256450, "10.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(21, 3, 1, 1746256452, "10.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
assertPackageVersion(22, 4, 1, 1746256453, "10.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(23, 5, 1, 1746256459, "10.0.0", `{"artifact_id":"-bar","group_id":"foo"}`)
|
|
assertPackageVersion(24, 1, 1, 1746256478, "11.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
assertPackageVersion(25, 2, 1, 1746256479, "11.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(26, 3, 1, 1746256482, "11.0.0", `{"artifact_id":"parent-project","group_id":"com.example"}`)
|
|
assertPackageVersion(27, 4, 1, 1746256483, "11.0.0", `{"artifact_id":"sub-module","group_id":"com.example"}`)
|
|
assertPackageVersion(28, 5, 1, 1746256488, "11.0.0", `{"artifact_id":"-bar","group_id":"foo"}`)
|
|
// should be untouched at all. fixtures doesn't contain names
|
|
assertPackageVersion(29, 7, 6, 1746256488, "1.2.4", `{"group_id":"com.broken","artifact_id":"br-root","name":"Foo"}`)
|
|
// added group name
|
|
assertPackageVersion(30, 6, 6, 1746256488, "1.2.4", `{"artifact_id":"br-rest-webmvc", "group_id":"com.broken"}`)
|
|
assertPackageVersion(31, 8, 1, 1746256488, "11.0.0", `{"artifact_id":"art","group_id":"group-bar"}`)
|
|
|
|
// new entries
|
|
assertPackageVersion(32, 9, 1, 1746256488, "11.0.0", `{"artifact_id":"bar-art","group_id":"group"}`)
|
|
assertPackageVersion(33, 10, 1, 1746256488, "11.0.0", `{"artifact_id":"bar","group_id":"foo-"}`)
|
|
assertPackageVersion(34, 10, 1, 1746256488, "10.0.0", `{"artifact_id":"bar","group_id":"foo-"}`)
|
|
assertPackageVersion(35, 10, 1, 1746256488, "9.0.0", `{"artifact_id":"bar","group_id":"foo-"}`)
|
|
assertPackageVersion(36, 10, 1, 1746256488, "8.0.0", `{"artifact_id":"bar","group_id":"foo-"}`)
|
|
assertPackageVersion(37, 10, 1, 1746256488, "7.0.0", `{"artifact_id":"bar","group_id":"foo-"}`)
|
|
assertPackageVersion(38, 10, 1, 1746256488, "1.0-SNAPSHOT", `{"artifact_id":"bar","group_id":"foo-"}`)
|
|
}
|
|
|
|
func validatePackageFiles(t *testing.T, pfs []*packages.PackageFile) {
|
|
assertPackageVersion := func(pos, id, versionId, blobId, createdUnix int64, name string, isLead bool) {
|
|
pf := pfs[pos]
|
|
|
|
require.Equal(t, id, pf.ID)
|
|
require.Equal(t, versionId, pf.VersionID)
|
|
require.Equal(t, blobId, pf.BlobID)
|
|
require.Equal(t, name, pf.Name)
|
|
require.Equal(t, strings.ToLower(name), pf.LowerName)
|
|
require.Empty(t, pf.CompositeKey)
|
|
require.Equal(t, isLead, pf.IsLead)
|
|
require.EqualValues(t, createdUnix, pf.CreatedUnix)
|
|
|
|
require.Empty(t, pf.CompositeKey)
|
|
}
|
|
assertPackageVersion(0, 1, 1, 1, 1746256357, "parent-project-1.0-20250503.071237-1.pom", true)
|
|
assertPackageVersion(1, 3, 2, 3, 1746256358, "sub-module-1.0-20250503.071237-1.pom", true)
|
|
assertPackageVersion(2, 4, 2, 4, 1746256358, "sub-module-1.0-20250503.071237-1.jar", false)
|
|
assertPackageVersion(3, 6, 3, 6, 1746256360, "parent-project-7.0.0.pom", true)
|
|
assertPackageVersion(4, 7, 4, 7, 1746256361, "sub-module-7.0.0.pom", true)
|
|
assertPackageVersion(5, 8, 4, 8, 1746256361, "sub-module-7.0.0.jar", false)
|
|
assertPackageVersion(6, 9, 5, 9, 1746256364, "parent-project-7.0.0.pom", true)
|
|
assertPackageVersion(7, 10, 6, 7, 1746256365, "sub-module-7.0.0.pom", true)
|
|
assertPackageVersion(8, 11, 6, 10, 1746256365, "sub-module-7.0.0.jar", false)
|
|
// new versionId 7 -> 38
|
|
assertPackageVersion(9, 12, 38, 11, 1746256367, "bar-1.0-20250503.071248-1.pom", true)
|
|
// new versionId 37
|
|
assertPackageVersion(10, 14, 37, 13, 1746256370, "bar-7.0.0.pom", true)
|
|
assertPackageVersion(11, 15, 7, 14, 1746256373, "-bar-1.0-20250503.071253-2.pom", true)
|
|
assertPackageVersion(12, 17, 8, 16, 1746256375, "-bar-7.0.0.pom", true)
|
|
assertPackageVersion(13, 18, 1, 1, 1746256385, "parent-project-1.0-20250503.071306-2.pom", true)
|
|
assertPackageVersion(14, 20, 2, 3, 1746256386, "sub-module-1.0-20250503.071306-2.pom", true)
|
|
assertPackageVersion(15, 21, 2, 18, 1746256386, "sub-module-1.0-20250503.071306-2.jar", false)
|
|
assertPackageVersion(16, 23, 9, 20, 1746256389, "parent-project-8.0.0.pom", true)
|
|
assertPackageVersion(17, 24, 10, 21, 1746256390, "sub-module-8.0.0.pom", true)
|
|
assertPackageVersion(18, 25, 10, 22, 1746256390, "sub-module-8.0.0.jar", false)
|
|
assertPackageVersion(19, 26, 11, 23, 1746256393, "parent-project-8.0.0.pom", true)
|
|
assertPackageVersion(20, 27, 12, 21, 1746256394, "sub-module-8.0.0.pom", true)
|
|
assertPackageVersion(21, 28, 12, 24, 1746256394, "sub-module-8.0.0.jar", false)
|
|
// new versionId 7 -> 38
|
|
assertPackageVersion(22, 29, 38, 11, 1746256397, "bar-1.0-20250503.071317-3.pom", true)
|
|
assertPackageVersion(23, 31, 36, 26, 1746256399, "bar-8.0.0.pom", true)
|
|
assertPackageVersion(24, 32, 7, 14, 1746256402, "-bar-1.0-20250503.071323-4.pom", true)
|
|
assertPackageVersion(25, 34, 13, 28, 1746256405, "-bar-8.0.0.pom", true)
|
|
assertPackageVersion(26, 35, 1, 1, 1746256415, "parent-project-1.0-20250503.071335-3.pom", true)
|
|
assertPackageVersion(27, 37, 2, 3, 1746256416, "sub-module-1.0-20250503.071335-3.pom", true)
|
|
assertPackageVersion(28, 38, 2, 30, 1746256416, "sub-module-1.0-20250503.071335-3.jar", false)
|
|
assertPackageVersion(29, 40, 14, 32, 1746256419, "parent-project-9.0.0.pom", true)
|
|
assertPackageVersion(30, 41, 15, 33, 1746256420, "sub-module-9.0.0.pom", true)
|
|
assertPackageVersion(31, 42, 15, 34, 1746256420, "sub-module-9.0.0.jar", false)
|
|
assertPackageVersion(32, 43, 16, 35, 1746256423, "parent-project-9.0.0.pom", true)
|
|
assertPackageVersion(33, 44, 17, 33, 1746256424, "sub-module-9.0.0.pom", true)
|
|
assertPackageVersion(34, 45, 17, 36, 1746256424, "sub-module-9.0.0.jar", false)
|
|
// new versionId 7 -> 38
|
|
assertPackageVersion(35, 46, 38, 11, 1746256427, "bar-1.0-20250503.071347-5.pom", true)
|
|
// new versionId 18 -> 35
|
|
assertPackageVersion(36, 48, 35, 38, 1746256429, "bar-9.0.0.pom", true)
|
|
assertPackageVersion(37, 49, 7, 14, 1746256432, "-bar-1.0-20250503.071353-6.pom", true)
|
|
assertPackageVersion(38, 51, 18, 40, 1746256435, "-bar-9.0.0.pom", true)
|
|
assertPackageVersion(39, 52, 1, 1, 1746256445, "parent-project-1.0-20250503.071405-4.pom", true)
|
|
assertPackageVersion(40, 54, 2, 3, 1746256446, "sub-module-1.0-20250503.071405-4.pom", true)
|
|
assertPackageVersion(41, 55, 2, 42, 1746256446, "sub-module-1.0-20250503.071405-4.jar", false)
|
|
assertPackageVersion(42, 57, 19, 44, 1746256449, "parent-project-10.0.0.pom", true)
|
|
assertPackageVersion(43, 58, 20, 45, 1746256450, "sub-module-10.0.0.pom", true)
|
|
assertPackageVersion(44, 59, 20, 46, 1746256450, "sub-module-10.0.0.jar", false)
|
|
assertPackageVersion(45, 60, 21, 47, 1746256452, "parent-project-10.0.0.pom", true)
|
|
assertPackageVersion(46, 61, 22, 45, 1746256453, "sub-module-10.0.0.pom", true)
|
|
assertPackageVersion(47, 62, 22, 48, 1746256453, "sub-module-10.0.0.jar", false)
|
|
// new versionId 7 -> 38
|
|
assertPackageVersion(48, 63, 38, 11, 1746256456, "bar-1.0-20250503.071416-7.pom", true)
|
|
// new versionId 34
|
|
assertPackageVersion(49, 65, 34, 50, 1746256459, "bar-10.0.0.pom", true)
|
|
assertPackageVersion(50, 66, 7, 14, 1746256461, "-bar-1.0-20250503.071422-8.pom", true)
|
|
assertPackageVersion(51, 68, 23, 52, 1746256464, "-bar-10.0.0.pom", true)
|
|
assertPackageVersion(52, 69, 1, 1, 1746256474, "parent-project-1.0-20250503.071435-5.pom", true)
|
|
assertPackageVersion(53, 70, 1, 53, 1746256474, "maven-metadata.xml", false)
|
|
assertPackageVersion(54, 71, 2, 3, 1746256475, "sub-module-1.0-20250503.071435-5.pom", true)
|
|
assertPackageVersion(55, 72, 2, 54, 1746256475, "sub-module-1.0-20250503.071435-5.jar", false)
|
|
assertPackageVersion(56, 73, 2, 55, 1746256476, "maven-metadata.xml", false)
|
|
assertPackageVersion(57, 74, 24, 56, 1746256478, "parent-project-11.0.0.pom", true)
|
|
assertPackageVersion(58, 75, 25, 57, 1746256479, "sub-module-11.0.0.pom", true)
|
|
assertPackageVersion(59, 76, 25, 58, 1746256479, "sub-module-11.0.0.jar", false)
|
|
assertPackageVersion(60, 77, 26, 59, 1746256482, "parent-project-11.0.0.pom", true)
|
|
assertPackageVersion(61, 78, 27, 57, 1746256483, "sub-module-11.0.0.pom", true)
|
|
assertPackageVersion(62, 79, 27, 60, 1746256483, "sub-module-11.0.0.jar", false)
|
|
// new versionId 7 -> 38
|
|
assertPackageVersion(63, 80, 38, 11, 1746256486, "bar-1.0-20250503.071446-9.pom", true)
|
|
// new versionId 33
|
|
assertPackageVersion(64, 82, 33, 62, 1746256488, "bar-11.0.0.pom", true)
|
|
assertPackageVersion(65, 83, 7, 14, 1746256491, "-bar-1.0-20250503.071451-10.pom", true)
|
|
assertPackageVersion(66, 84, 7, 63, 1746256491, "maven-metadata.xml", false)
|
|
assertPackageVersion(67, 85, 28, 64, 1746256494, "-bar-11.0.0.pom", true)
|
|
assertPackageVersion(68, 86, 29, 75, 174625649444986, "br-repo-jooq-1.2.4-sources.jar", false)
|
|
assertPackageVersion(69, 87, 29, 65, 174625649446161, "br-rest-webmvc-1.2.4.jar", false)
|
|
assertPackageVersion(70, 88, 29, 68, 174625649444734, "br-openapi-base-1.2.4.pom", true)
|
|
assertPackageVersion(71, 89, 29, 69, 174625649444746, "br-openapi-base-1.2.4.jar", false)
|
|
assertPackageVersion(72, 90, 29, 70, 174625649444775, "br-openapi-base-1.2.4-sources.jar", false)
|
|
assertPackageVersion(73, 91, 29, 78, 174625649444852, "br-parent-1.2.4.pom", true)
|
|
assertPackageVersion(74, 92, 29, 76, 174625649444900, "br-repo-in-memory-1.2.4.pom", true)
|
|
assertPackageVersion(75, 93, 29, 73, 174625649444911, "br-repo-in-memory-1.2.4.jar", false)
|
|
assertPackageVersion(76, 94, 29, 77, 174625649444922, "br-repo-in-memory-1.2.4-sources.jar", false)
|
|
assertPackageVersion(77, 95, 29, 74, 174625649444953, "br-repo-jooq-1.2.4.pom", true)
|
|
assertPackageVersion(78, 96, 29, 67, 174625649444969, "br-repo-jooq-1.2.4.jar", false)
|
|
assertPackageVersion(79, 97, 29, 71, 174625649446161, "br-rest-webmvc-1.2.4-sources.jar", false)
|
|
assertPackageVersion(80, 98, 29, 66, 174625649446195, "br-rest-webmvc-1.2.4.pom", true)
|
|
assertPackageVersion(81, 99, 29, 72, 174625649446217, "br-root-1.2.4.pom", true)
|
|
assertPackageVersion(82, 100, 30, 66, 174625649446311, "br-rest-webmvc-1.2.4.pom", true)
|
|
assertPackageVersion(83, 101, 30, 65, 174625649446312, "br-rest-webmvc-1.2.4.jar", false)
|
|
assertPackageVersion(84, 102, 30, 71, 174625649446312, "br-rest-webmvc-1.2.4-sources.jar", false)
|
|
// new versionId 31 -> 32
|
|
assertPackageVersion(85, 103, 32, 79, 1746280832, "bar-art-11.0.0.pom", true)
|
|
assertPackageVersion(86, 104, 31, 80, 1746280843, "art-11.0.0.pom", true)
|
|
}
|