From 3b803d558b536bdee96cc4cb84caf11d39abe39b Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Sun, 1 Nov 2026 14:37:41 +0000 Subject: [PATCH] Migrate ReleaseKit to the vanity module path and new Gitea host --- README.md | 4 ++ build.go | 10 ++-- build_test.go | 24 ++++---- buildinfo/version.go | 2 +- buildinfo/version_integration_test.go | 8 +-- check.go | 8 +-- cmd/releasekit/assets_test.go | 2 +- cmd/releasekit/committed_identity_test.go | 2 +- cmd/releasekit/example_source_test.go | 2 +- cmd/releasekit/internal/cli/config.go | 4 +- cmd/releasekit/internal/cli/receipt.go | 6 +- cmd/releasekit/local_module_test.go | 2 +- cmd/releasekit/main.go | 12 ++-- cmd/releasekit/main_test.go | 12 ++-- cmd/releasekit/multi_module_example_test.go | 10 ++-- .../multi_module_woodpecker_test.go | 10 ++-- cmd/releasekit/release_wrapper_test.go | 6 +- .../releasekit_delivery_workflow_test.go | 10 ++-- cmd/releasekit/woodpecker_test.go | 14 ++--- delivery.go | 6 +- delivery_reads_linux_test.go | 2 +- delivery_test.go | 6 +- docs/consumers/adoption.md | 40 ++++++++++++- docs/consumers/build.md | 2 +- docs/consumers/delivery.md | 8 ++- docs/consumers/runtime-version.md | 2 +- docs/internal/overview.md | 2 +- docs/release.md | 12 ++-- docs/releases/v0.5.0.md | 59 +++++++++++++++++++ docs/roadmap/migration.md | 4 +- examples/multi-module/README.md | 12 ++-- .../multi-module/integrations/core/v2/main.go | 2 +- examples/multi-module/release.sh | 2 +- examples/multi-module/woodpecker.yml | 2 +- examples/woodpecker/tag-delivery.yml | 2 +- go.mod | 2 +- internal/apicheck/main.go | 2 +- internal/build/build.go | 12 ++-- internal/build/candidate.go | 8 +-- internal/candidate/check.go | 12 ++-- internal/candidate/check_test.go | 4 +- internal/delivery/assets.go | 6 +- internal/delivery/assets_test.go | 6 +- internal/delivery/delivery.go | 16 ++--- internal/delivery/performance_test.go | 6 +- internal/git/blob_reader.go | 2 +- internal/git/remote.go | 2 +- internal/git/source.go | 2 +- internal/gitea/assets.go | 2 +- internal/gotool/gotool.go | 2 +- internal/preparation/preparation.go | 8 +-- internal/publish/publish.go | 8 +-- internal/releaseidentity/identity.go | 4 +- internal/validation/file_size.go | 2 +- internal/validation/file_size_test.go | 2 +- internal/validation/format_test.go | 2 +- internal/validation/local_replacements.go | 2 +- internal/validation/markdown_check.go | 2 +- internal/validation/scope_performance_test.go | 2 +- internal/validation/tree.go | 2 +- internal/validation/validation.go | 2 +- internal/validation/workspace_test.go | 2 +- internal/versioncontract/injection.go | 2 +- performance_benchmark_test.go | 2 +- performance_delivery_test.go | 4 +- preparation.go | 4 +- preparation_test.go | 2 +- publish.go | 2 +- publish_test.go | 4 +- releasekit.json | 6 +- repository_test.go | 2 +- source_inspection_test.go | 2 +- validation_error.go | 2 +- validation_error_test.go | 2 +- validation_scope_test.go | 2 +- validation_test.go | 2 +- 76 files changed, 287 insertions(+), 184 deletions(-) create mode 100644 docs/releases/v0.5.0.md diff --git a/README.md b/README.md index 1b4aefb..4e944bb 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ tagged-source delivery API, and the `version`, `check`, `publish`, `build`, maintainer procedure and prepared Woodpecker workflow for hosted note-page delivery are documented. ReleaseKit does not declare binary deliverables. +The Go module is `go.maximumdirect.net/releasekit`. The +[adoption guide](docs/consumers/adoption.md#migrating-from-the-original-module-path) +explains the v0.5.0 migration from the original Gitea module path. + Release operations can select one Go module within a repository. The repository root remains the default; a selected module's declared import path and physical directory determine its complete Git tag and module-local release note. See the diff --git a/build.go b/build.go index 4036663..55f75d1 100644 --- a/build.go +++ b/build.go @@ -5,11 +5,11 @@ import ( "fmt" "io" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/artifact" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/releaseidentity" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) // Target identifies one explicit Go operating-system and architecture pair. diff --git a/build_test.go b/build_test.go index 8e35e8b..6ffd474 100644 --- a/build_test.go +++ b/build_test.go @@ -15,7 +15,7 @@ import ( "testing" "time" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestBuildPreservesInvalidVersionAndDeclarationFailureEvidence(t *testing.T) { @@ -48,7 +48,7 @@ import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { @@ -127,7 +127,7 @@ func TestBuildUsesGoHostDespiteAmbientTargetEnvironment(t *testing.T) { import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { @@ -159,7 +159,7 @@ func TestBuildIgnoresAmbientAndPersistentArchitectureTuning(t *testing.T) { import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { if len(os.Args) == 2 && os.Args[1] == "version" { fmt.Printf("fixture %s\n", buildinfo.Version()) } } `) @@ -272,7 +272,7 @@ func TestBuildUsesNestedWorkingTreeModuleAndModuleRelativeOutput(t *testing.T) { import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { if len(os.Args) == 2 && os.Args[1] == "version" { @@ -406,7 +406,7 @@ func TestBuildResolvesDirtyWorkingTreeDeclaration(t *testing.T) { func TestBuildRegeneratesOwnedOutputsAndPreservesUnrelatedFiles(t *testing.T) { const source = `package main -import("fmt";"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo") +import("fmt";"go.maximumdirect.net/releasekit/buildinfo") func main(){fmt.Println("fixture",buildinfo.Version())} ` repository := newBuildConsumer(t, source) @@ -616,7 +616,7 @@ func TestCheckBuildsAfterValidationAndKeepsOutputOutsideWorktree(t *testing.T) { import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { if len(os.Args) == 2 && os.Args[1] == "version" { fmt.Printf("fixture %s\n", buildinfo.Version()) } } `) @@ -713,7 +713,7 @@ func newBuildConsumer(t *testing.T, mainSource string) string { if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module example.com/buildfixture\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) + module := fmt.Sprintf("module example.com/buildfixture\n\ngo 1.26.0\n\nrequire go.maximumdirect.net/releasekit v0.0.0\n\nreplace go.maximumdirect.net/releasekit => %s\n", filepath.ToSlash(root)) writeBuildFixture(t, repository, "go.mod", module) writeBuildFixture(t, repository, "cmd/app/main.go", mainSource) writeBuildFixture(t, repository, "cmd/app/main_test.go", "package main\nimport \"testing\"\nfunc TestCandidateFixture(t *testing.T) {}\n") @@ -731,7 +731,7 @@ func writeNestedBuildConsumer(t *testing.T, repository, moduleDir, modulePath, m if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module %s\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", modulePath, filepath.ToSlash(root)) + module := fmt.Sprintf("module %s\n\ngo 1.26.0\n\nrequire go.maximumdirect.net/releasekit v0.0.0\n\nreplace go.maximumdirect.net/releasekit => %s\n", modulePath, filepath.ToSlash(root)) writeBuildFixture(t, repository, filepath.ToSlash(filepath.Join(moduleDir, "go.mod")), module) writeBuildFixture(t, repository, filepath.ToSlash(filepath.Join(moduleDir, "cmd/app/main.go")), mainSource) return filepath.Join(repository, filepath.FromSlash(moduleDir)) @@ -743,7 +743,7 @@ func prepareCandidateBuild(t *testing.T, repository, mainSource string) { if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module example.com/candidatebuild\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) + module := fmt.Sprintf("module example.com/candidatebuild\n\ngo 1.26.0\n\nrequire go.maximumdirect.net/releasekit v0.0.0\n\nreplace go.maximumdirect.net/releasekit => %s\n", filepath.ToSlash(root)) writeFile(t, repository, "go.mod", module) writeFile(t, repository, ".gitignore", "dist/\n") writeFile(t, repository, "cmd/app/main.go", mainSource) @@ -777,7 +777,7 @@ func buildGit(t *testing.T, directory string, args ...string) string { func TestBuildSourceEligibilitySurvivesLaterCheckoutCleanup(t *testing.T) { const source = `package main -import("fmt";"os";"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo") +import("fmt";"os";"go.maximumdirect.net/releasekit/buildinfo") func main(){ if len(os.Args)>1 && os.Args[1]=="version" {fmt.Println("fixture",buildinfo.Version())} } ` for _, mode := range []string{"clean", "dirty before build", "changed during build", "commit during build"} { @@ -838,7 +838,7 @@ func TestCandidateBuildDoesNotRequireWritableRepositoryParent(t *testing.T) { t.Skip("requires ordinary Unix permission checks") } repository := newBuildConsumer(t, `package main -import("fmt";"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo") +import("fmt";"go.maximumdirect.net/releasekit/buildinfo") func main(){fmt.Println("fixture",buildinfo.Version())} `) writeBuildFixture(t, repository, "docs/releases/v1.2.3.md", "# Fixture v1.2.3\n") diff --git a/buildinfo/version.go b/buildinfo/version.go index 8da33c3..82e7d17 100644 --- a/buildinfo/version.go +++ b/buildinfo/version.go @@ -2,7 +2,7 @@ // built with ReleaseKit. package buildinfo -import "gitea.maximumdirect.net/eric/ReleaseKit/internal/runtimeinfo" +import "go.maximumdirect.net/releasekit/internal/runtimeinfo" // Version returns the injected release identifier when available. Otherwise, // it returns the executable's main module version, or "dev" when that metadata diff --git a/buildinfo/version_integration_test.go b/buildinfo/version_integration_test.go index 40c9ee5..9fc2930 100644 --- a/buildinfo/version_integration_test.go +++ b/buildinfo/version_integration_test.go @@ -7,7 +7,7 @@ import ( "path/filepath" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) func TestVersionInConsumerExecutable(t *testing.T) { @@ -21,9 +21,9 @@ func TestVersionInConsumerExecutable(t *testing.T) { go 1.26.0 -require gitea.maximumdirect.net/eric/ReleaseKit v0.0.0 +require go.maximumdirect.net/releasekit v0.0.0 -replace gitea.maximumdirect.net/eric/ReleaseKit => %s +replace go.maximumdirect.net/releasekit => %s `, filepath.ToSlash(repo)) if err := os.WriteFile(filepath.Join(dir, "go.mod"), []byte(module), 0o600); err != nil { t.Fatal(err) @@ -32,7 +32,7 @@ replace gitea.maximumdirect.net/eric/ReleaseKit => %s import ( "fmt" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { fmt.Print(buildinfo.Version()) } diff --git a/check.go b/check.go index c235dec..ebf767f 100644 --- a/check.go +++ b/check.go @@ -4,10 +4,10 @@ import ( "context" "io" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/candidate" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/publish" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + "go.maximumdirect.net/releasekit/internal/candidate" + "go.maximumdirect.net/releasekit/internal/publish" + "go.maximumdirect.net/releasekit/internal/validation" ) // ErrInvalidVersion reports a version that is not stable vMAJOR.MINOR.PATCH. diff --git a/cmd/releasekit/assets_test.go b/cmd/releasekit/assets_test.go index 25443d1..d970da3 100644 --- a/cmd/releasekit/assets_test.go +++ b/cmd/releasekit/assets_test.go @@ -7,7 +7,7 @@ import ( "path/filepath" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestBuildAndPrebuiltDeliveryUseSameDirectoryBase(t *testing.T) { diff --git a/cmd/releasekit/committed_identity_test.go b/cmd/releasekit/committed_identity_test.go index 4c0ac4f..c7dc007 100644 --- a/cmd/releasekit/committed_identity_test.go +++ b/cmd/releasekit/committed_identity_test.go @@ -9,7 +9,7 @@ import ( "path/filepath" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestCandidateCheckUsesCommittedDeclarationSymlink(t *testing.T) { diff --git a/cmd/releasekit/example_source_test.go b/cmd/releasekit/example_source_test.go index dec9dd1..c2fc040 100644 --- a/cmd/releasekit/example_source_test.go +++ b/cmd/releasekit/example_source_test.go @@ -12,7 +12,7 @@ func TestMultiModuleExampleSetupUsesCurrentSourceTool(t *testing.T) { root := cliRepositoryRoot(t) repository := newCLIRepository(t) copyExampleTree(t, filepath.Join(root, "examples", "multi-module"), repository) - const module = "gitea.maximumdirect.net/eric/ReleaseKit" + const module = "go.maximumdirect.net/releasekit" environment := append(os.Environ(), "GOTOOLCHAIN=local", "GOWORK=off", "GOPROXY=off", "GOSUMDB=off", "GOFLAGS=") goCommand := func(directory string, args ...string) string { t.Helper() diff --git a/cmd/releasekit/internal/cli/config.go b/cmd/releasekit/internal/cli/config.go index e95aefa..32be5f8 100644 --- a/cmd/releasekit/internal/cli/config.go +++ b/cmd/releasekit/internal/cli/config.go @@ -13,8 +13,8 @@ import ( "path/filepath" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/process" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/process" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) const Usage = "usage: releasekit version\n releasekit check [--repo DIR] [--config FILE] VERSION\n releasekit publish [--repo DIR] [--config FILE] [--expected-module DIR] VERSION\n releasekit build [--repo DIR] [--config FILE] [--output DIR] VERSION\n releasekit deliver [--repo DIR] [--config FILE] [--assets DIR] VERSION\n releasekit ci-deliver [--repo DIR] [--config FILE] [--remote NAME] [--prepared] [--expected-module DIR] --commit OID TAG" diff --git a/cmd/releasekit/internal/cli/receipt.go b/cmd/releasekit/internal/cli/receipt.go index e455afc..5b6a575 100644 --- a/cmd/releasekit/internal/cli/receipt.go +++ b/cmd/releasekit/internal/cli/receipt.go @@ -10,9 +10,9 @@ import ( "path/filepath" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/artifact" + "go.maximumdirect.net/releasekit/internal/releaseidentity" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) const BuildReceiptName = ".releasekit-build.json" diff --git a/cmd/releasekit/local_module_test.go b/cmd/releasekit/local_module_test.go index 4de8bc4..6a825ff 100644 --- a/cmd/releasekit/local_module_test.go +++ b/cmd/releasekit/local_module_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestMainModuleWithoutDomainSupportsCheckBuildAndPageDelivery(t *testing.T) { diff --git a/cmd/releasekit/main.go b/cmd/releasekit/main.go index d598cdb..3a243de 100644 --- a/cmd/releasekit/main.go +++ b/cmd/releasekit/main.go @@ -11,12 +11,12 @@ import ( "strings" "syscall" - "gitea.maximumdirect.net/eric/ReleaseKit" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" + "go.maximumdirect.net/releasekit" + "go.maximumdirect.net/releasekit/buildinfo" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/internal/artifact" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/releaseidentity" ) func main() { diff --git a/cmd/releasekit/main_test.go b/cmd/releasekit/main_test.go index 18d38bf..b1bb237 100644 --- a/cmd/releasekit/main_test.go +++ b/cmd/releasekit/main_test.go @@ -18,9 +18,9 @@ import ( "sync" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + releasekit "go.maximumdirect.net/releasekit" + "go.maximumdirect.net/releasekit/buildinfo" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestVersionCommand(t *testing.T) { @@ -472,7 +472,7 @@ import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { @@ -1375,7 +1375,7 @@ func newCLIBuildRepository(t *testing.T, mainSource string) string { if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module example.com/cli-candidate\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) + module := fmt.Sprintf("module example.com/cli-candidate\n\ngo 1.26.0\n\nrequire go.maximumdirect.net/releasekit v0.0.0\n\nreplace go.maximumdirect.net/releasekit => %s\n", filepath.ToSlash(root)) write := func(name, contents string) { t.Helper() path := filepath.Join(repository, filepath.FromSlash(name)) @@ -1530,7 +1530,7 @@ func TestUnreadableAssetsDoNotClaimAnUnknownWrite(t *testing.T) { func TestFailedRebuildInvalidatesPreviousReceipt(t *testing.T) { const source = `package main -import("fmt";"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo") +import("fmt";"go.maximumdirect.net/releasekit/buildinfo") func main(){fmt.Println("fixture",buildinfo.Version())} ` repository := newCLIBuildRepository(t, source) diff --git a/cmd/releasekit/multi_module_example_test.go b/cmd/releasekit/multi_module_example_test.go index 87978b5..f425854 100644 --- a/cmd/releasekit/multi_module_example_test.go +++ b/cmd/releasekit/multi_module_example_test.go @@ -59,11 +59,11 @@ func TestMultiModuleLauncherUsesSelectedModuleAndProfile(t *testing.T) { repository := newCLIRepository(t) copyExampleTree(t, example, repository) - rootModule := "module example.com/multi-module-consumer\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.2.197\n" - selectedModule := "module example.com/multi-module-consumer/integrations/ckconfig\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.2.198\n" + rootModule := "module example.com/multi-module-consumer\n\ngo 1.25.0\n\nrequire go.maximumdirect.net/releasekit v0.2.197\n" + selectedModule := "module example.com/multi-module-consumer/integrations/ckconfig\n\ngo 1.25.0\n\nrequire go.maximumdirect.net/releasekit v0.2.198\n" writeRepositoryFile(t, repository, "go.mod", rootModule) writeRepositoryFile(t, repository, "integrations/ckconfig/go.mod", selectedModule) - spaceModule := "module example.com/multi-module-consumer/integrations/ckconfig\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.2.299\n" + spaceModule := "module example.com/multi-module-consumer/integrations/ckconfig\n\ngo 1.25.0\n\nrequire go.maximumdirect.net/releasekit v0.2.299\n" writeRepositoryFile(t, repository, "integrations/ck config/go.mod", spaceModule) writeRepositoryFile(t, repository, "profiles/core release.json", `{"product":"Example Consumer Integration","module_dir":"integrations/ck config"}`) cliGitRun(t, repository, "add", ".") @@ -138,8 +138,8 @@ func TestMultiModuleLauncherBuildsToolFromSelectedDependency(t *testing.T) { example := filepath.Join(cliRepositoryRoot(t), "examples", "multi-module") repository := newCLIRepository(t) copyExampleTree(t, example, repository) - writeRepositoryFile(t, repository, "go.mod", "module example.com/multi-module-consumer\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.2.197\n") - writeRepositoryFile(t, repository, "integrations/ckconfig/go.mod", "module example.com/multi-module-consumer/integrations/ckconfig\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.2.198\n") + writeRepositoryFile(t, repository, "go.mod", "module example.com/multi-module-consumer\n\ngo 1.25.0\n\nrequire go.maximumdirect.net/releasekit v0.2.197\n") + writeRepositoryFile(t, repository, "integrations/ckconfig/go.mod", "module example.com/multi-module-consumer/integrations/ckconfig\n\ngo 1.25.0\n\nrequire go.maximumdirect.net/releasekit v0.2.198\n") cliGitRun(t, repository, "add", ".") cliGitRun(t, repository, "commit", "-m", "prepare selected tool module") diff --git a/cmd/releasekit/multi_module_woodpecker_test.go b/cmd/releasekit/multi_module_woodpecker_test.go index 1005fd4..ff1e908 100644 --- a/cmd/releasekit/multi_module_woodpecker_test.go +++ b/cmd/releasekit/multi_module_woodpecker_test.go @@ -15,7 +15,7 @@ import ( "sync" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestMultiModuleWoodpeckerDelivery(t *testing.T) { @@ -302,7 +302,7 @@ func buildWorkflowCLI(t *testing.T, root string) string { func writeWorkflowToolProxy(t *testing.T) string { t.Helper() - const module = "gitea.maximumdirect.net/eric/ReleaseKit" + const module = "go.maximumdirect.net/releasekit" const helper = "example.com/releasekit-helper" proxyDir := t.TempDir() moduleFile := "module " + module + "\n\ngo 1.25.0\n\nrequire " + helper + " v1.0.0\n" @@ -331,7 +331,7 @@ func main() { `, helper, version) files := map[string]string{ "cmd/releasekit/main.go": main, - "buildinfo/version.go": "package buildinfo\nimport \"gitea.maximumdirect.net/eric/ReleaseKit/internal/runtimeinfo\"\nfunc Version() string { return runtimeinfo.Version() }\n", + "buildinfo/version.go": "package buildinfo\nimport \"go.maximumdirect.net/releasekit/internal/runtimeinfo\"\nfunc Version() string { return runtimeinfo.Version() }\n", "internal/runtimeinfo/version.go": "package runtimeinfo\nvar injectedVersion string\nfunc Version() string { if injectedVersion != \"\" { return injectedVersion }; return \"dev\" }\n", } writeModuleProxyVersion(t, proxyDir, module, version, moduleFile, files) @@ -362,7 +362,7 @@ func newWorkflowRepository(t *testing.T, example string) string { } func workflowModuleFile(module, version string) string { - return fmt.Sprintf("module %s\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit %s\n", module, version) + return fmt.Sprintf("module %s\n\ngo 1.25.0\n\nrequire go.maximumdirect.net/releasekit %s\n", module, version) } func workflowDeliverySettings(baseURL string) *cli.DeliverySettings { @@ -421,7 +421,7 @@ func prepareWorkflowModuleSum(t *testing.T, repository, moduleDir, proxy string) return nil }) }) - command := exec.Command("go", "mod", "download", "gitea.maximumdirect.net/eric/ReleaseKit@v0.2.197") + command := exec.Command("go", "mod", "download", "go.maximumdirect.net/releasekit@v0.2.197") command.Dir = filepath.Join(repository, filepath.FromSlash(moduleDir)) command.Env = append(os.Environ(), "GOMODCACHE="+cache, "GOPROXY=file://"+filepath.ToSlash(proxy), "GOSUMDB=off", "GOWORK=off", "GOTOOLCHAIN=local", "GOFLAGS=-modcacherw") if output, err := command.CombinedOutput(); err != nil { diff --git a/cmd/releasekit/release_wrapper_test.go b/cmd/releasekit/release_wrapper_test.go index e1c98c0..a8fe9b2 100644 --- a/cmd/releasekit/release_wrapper_test.go +++ b/cmd/releasekit/release_wrapper_test.go @@ -79,9 +79,9 @@ func TestReleaseCandidate(t *testing.T) { "product": "ReleaseKit", "checks": []map[string]any{{"args": []string{"sh", "-c", "if [ -n \"$RELEASEKIT_TEST_ARM_GIT_SHIM\" ]; then : > \"$RELEASEKIT_TEST_ARM_GIT_SHIM\"; fi"}}}, "delivery": map[string]any{ - "base_url": "https://gitea.maximumdirect.net", - "owner": "eric", - "repository": "ReleaseKit", + "base_url": "https://forge.maximumdirect.net", + "owner": "base-layer", + "repository": "releasekit", "token_env": "RELEASEKIT_GITEA_TOKEN", }, } diff --git a/cmd/releasekit/releasekit_delivery_workflow_test.go b/cmd/releasekit/releasekit_delivery_workflow_test.go index f413e7b..64354a6 100644 --- a/cmd/releasekit/releasekit_delivery_workflow_test.go +++ b/cmd/releasekit/releasekit_delivery_workflow_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestReleaseKitSourceDeliveryWorkflowFromTaggedCheckout(t *testing.T) { @@ -24,7 +24,7 @@ func TestReleaseKitSourceDeliveryWorkflowFromTaggedCheckout(t *testing.T) { if profile.Build != nil && len(profile.Build.Targets) != 0 { t.Fatalf("ReleaseKit profile declares binary targets: %#v", profile.Build.Targets) } - if profile.Delivery == nil || profile.Delivery.BaseURL != "https://gitea.maximumdirect.net" || profile.Delivery.Owner != "eric" || profile.Delivery.Repository != "ReleaseKit" || profile.Delivery.TokenEnv != "RELEASEKIT_GITEA_TOKEN" { + if profile.Delivery == nil || profile.Delivery.BaseURL != "https://forge.maximumdirect.net" || profile.Delivery.Owner != "base-layer" || profile.Delivery.Repository != "releasekit" || profile.Delivery.TokenEnv != "RELEASEKIT_GITEA_TOKEN" { t.Fatalf("ReleaseKit delivery profile = %#v", profile.Delivery) } repository := filepath.Join(t.TempDir(), "tagged ReleaseKit") @@ -37,9 +37,9 @@ func TestReleaseKitSourceDeliveryWorkflowFromTaggedCheckout(t *testing.T) { const version = "v1.2.3" note := "# ReleaseKit v1.2.3\n\nSource-only delivery fixture.\n\n" + - "[COPYRIGHT](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v1.2.3/COPYRIGHT) |\n" + - "[LICENSE](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v1.2.3/LICENSE) |\n" + - "[ATTRIBUTION](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v1.2.3/docs/oss/attribution.md)\n" + "[COPYRIGHT](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v1.2.3/COPYRIGHT) |\n" + + "[LICENSE](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v1.2.3/LICENSE) |\n" + + "[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v1.2.3/docs/oss/attribution.md)\n" notePath := filepath.Join(repository, "docs", "releases", version+".md") if err := os.MkdirAll(filepath.Dir(notePath), 0o700); err != nil { t.Fatal(err) diff --git a/cmd/releasekit/woodpecker_test.go b/cmd/releasekit/woodpecker_test.go index fb2945c..b7748da 100644 --- a/cmd/releasekit/woodpecker_test.go +++ b/cmd/releasekit/woodpecker_test.go @@ -15,7 +15,7 @@ import ( "sync/atomic" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" + "go.maximumdirect.net/releasekit/cmd/releasekit/internal/cli" ) func TestWoodpeckerTagDeliveryTemplate(t *testing.T) { @@ -205,7 +205,7 @@ func TestWoodpeckerTagDeliveryUsesTaggedModuleVersion(t *testing.T) { t.Run("older tag retry uses its committed module selection", func(t *testing.T) { goDir, goLog := installGoBootstrapShim(t) repository := newCLIRepository(t) - const module = "gitea.maximumdirect.net/eric/ReleaseKit" + const module = "go.maximumdirect.net/releasekit" writeRepositoryFile(t, repository, "go.mod", "module example.com/cli-candidate\n\ngo 1.25.0\n\nrequire "+module+" v0.2.197\n") cliGitRun(t, repository, "add", "go.mod") cliGitRun(t, repository, "commit", "-m", "select the earlier ReleaseKit version") @@ -239,7 +239,7 @@ func TestWoodpeckerTagDeliveryUsesTaggedModuleVersion(t *testing.T) { t.Run("versioned replacement selects its declared source", func(t *testing.T) { goDir, goLog := installGoBootstrapShim(t) repository := newCLIRepository(t) - const module = "gitea.maximumdirect.net/eric/ReleaseKit" + const module = "go.maximumdirect.net/releasekit" goMod := "module example.com/cli-candidate\n\ngo 1.25.0\n\nrequire " + module + " v0.2.197\n\nreplace " + module + " v0.2.197 => " + module + " v0.2.198\n" writeRepositoryFile(t, repository, "go.mod", goMod) cliGitRun(t, repository, "add", "go.mod") @@ -480,7 +480,7 @@ func templateEnvironment(repository, commit, shimDir, goLog string) map[string]s "CI_COMMIT_SHA": commit, "CI_COMMIT_TAG": "v1.2.3", "RELEASEKIT_GITEA_TOKEN": "fixture-token", - "RELEASEKIT_MODULE": "gitea.maximumdirect.net/eric/ReleaseKit", + "RELEASEKIT_MODULE": "go.maximumdirect.net/releasekit", "RELEASEKIT_REAL_GO": realGo, "RELEASEKIT_GO_LOG": goLog, "GOTOOLCHAIN": "local", @@ -513,7 +513,7 @@ func executeWoodpeckerBlock(block, repository string, environment map[string]str func selectReleaseKitModule(t *testing.T, repository, releaseKitSource string, includeSum bool) { t.Helper() - const module = "gitea.maximumdirect.net/eric/ReleaseKit" + const module = "go.maximumdirect.net/releasekit" goMod := fmt.Sprintf("module example.com/tagged-app\n\ngo 1.26.0\n\nrequire %s v0.2.0\n\nreplace %s => %s\n", module, module, strconv.Quote(releaseKitSource)) writeRepositoryFile(t, repository, "go.mod", goMod) cliGitRun(t, repository, "add", "go.mod") @@ -526,7 +526,7 @@ func selectReleaseKitModule(t *testing.T, repository, releaseKitSource string, i func writeReleaseKitModuleProxy(t *testing.T) string { t.Helper() - const module = "gitea.maximumdirect.net/eric/ReleaseKit" + const module = "go.maximumdirect.net/releasekit" const toolDependency = "example.com/releasekit-helper" proxyDir := t.TempDir() toolModule := "module " + module + "\n\ngo 1.25.0\n\nrequire " + toolDependency + " v1.0.0\n" @@ -634,7 +634,7 @@ func assertGoSelection(t *testing.T, repository, goLog string) { log := readWoodpeckerFixtureFile(t, goLog) list := "list -mod=mod -modfile=" build := "build -mod=mod -modfile=" - module := "gitea.maximumdirect.net/eric/ReleaseKit" + module := "go.maximumdirect.net/releasekit" if !strings.Contains(log, "GOWORK=off GOTOOLCHAIN=local") || !strings.Contains(log, list) || !strings.Contains(log, "-m "+module) { t.Fatalf("Go module selection command is missing required settings: %q", log) } diff --git a/delivery.go b/delivery.go index d2a8d02..f31ab4e 100644 --- a/delivery.go +++ b/delivery.go @@ -4,9 +4,9 @@ import ( "context" "io" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - internaldelivery "gitea.maximumdirect.net/eric/ReleaseKit/internal/delivery" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + internaldelivery "go.maximumdirect.net/releasekit/internal/delivery" + "go.maximumdirect.net/releasekit/internal/gitea" ) // DeliveryState describes the result of one delivery invocation. diff --git a/delivery_reads_linux_test.go b/delivery_reads_linux_test.go index 2d9b9fb..ae2fdd4 100644 --- a/delivery_reads_linux_test.go +++ b/delivery_reads_linux_test.go @@ -8,7 +8,7 @@ import ( "syscall" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestDeliverReadsLocalBinaryOnceForVerificationAndOnceForUpload(t *testing.T) { diff --git a/delivery_test.go b/delivery_test.go index ace7799..d831771 100644 --- a/delivery_test.go +++ b/delivery_test.go @@ -16,7 +16,7 @@ import ( "sync" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestDeliverManagedBuildUploadsArtifactsAndCleansTemporaryOutput(t *testing.T) { @@ -323,7 +323,7 @@ func newTwoModuleDeliveryConsumer(t *testing.T) string { import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { if len(os.Args) == 2 && os.Args[1] == "version" { fmt.Println("fixture", buildinfo.Version()) } } `) @@ -564,7 +564,7 @@ func newTaggedDeliveryConsumerWithNote(t *testing.T, note string) string { import ( "fmt" "os" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { if len(os.Args) == 2 && os.Args[1] == "version" { fmt.Println("fixture", buildinfo.Version()) } } `) diff --git a/docs/consumers/adoption.md b/docs/consumers/adoption.md index c72a7a2..c6828e2 100644 --- a/docs/consumers/adoption.md +++ b/docs/consumers/adoption.md @@ -10,12 +10,14 @@ From the consumer module's root, select the ReleaseKit version to adopt: ```sh : "${RELEASEKIT_TOOL_VERSION:?Set the released ReleaseKit version to adopt}" -go get -tool "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@${RELEASEKIT_TOOL_VERSION}" +go get -tool "go.maximumdirect.net/releasekit/cmd/releasekit@${RELEASEKIT_TOOL_VERSION}" go mod tidy go tool releasekit version ``` Select a release that implements the API, profile, and workflow you are adopting. +The vanity module path starts with v0.5.0. Versions through v0.4.2 declare the +original module path and use their corresponding historical instructions. The module-release interface requires a release containing that feature; pre-feature versions through v0.3.0 use their corresponding historical interface. Go records the executable package in @@ -43,13 +45,47 @@ required imports and select the module version: ```sh : "${RELEASEKIT_TOOL_VERSION:?Set the released ReleaseKit version to adopt}" -go get "gitea.maximumdirect.net/eric/ReleaseKit@${RELEASEKIT_TOOL_VERSION}" +go get "go.maximumdirect.net/releasekit@${RELEASEKIT_TOOL_VERSION}" go mod tidy ``` API consumers can also register the CLI with `go get -tool` as above. Both uses share the module-selected ReleaseKit version. +## Migrating from the original module path + +Starting with v0.5.0, ReleaseKit's module is `go.maximumdirect.net/releasekit`. +Earlier releases declare `gitea.maximumdirect.net/eric/ReleaseKit`. The migration +is a direct cutover with the existing facade roles and command behavior. + +For API consumers, update imports of the root facade and `buildinfo` to +`go.maximumdirect.net/releasekit` and +`go.maximumdirect.net/releasekit/buildinfo`, including generated code and tests. +Select v0.5.0 or a later compatible release using the package-dependency command +above. Packages imported through the old and new paths have distinct Go +identities; coordinate updates in packages that exchange ReleaseKit facade +types. Builders and applications using `buildinfo` should adopt the new path +together so version injection addresses the runtime implementation they use. + +For CLI tool consumers, remove the old tool declaration before registering the +new CLI package with the tool-dependency command above: + +```sh +go mod edit -droptool=gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit +``` + +Update copied release launchers and Woodpecker workflows so their +`releasekit_module` value is `go.maximumdirect.net/releasekit`. Use the maintained +examples matching the selected tool version. Run `go mod tidy` after updating +imports and tool declarations, review any old-path dependencies retained +transitively, and commit the resulting module files with the workflow changes. + +Existing consumer tags retain their recorded module files, tool selection, and +matching workflows for retries. Apply these migration steps to new consumer +revisions. Source repository and hosted release URLs use +`https://forge.maximumdirect.net/base-layer/releasekit`; the vanity path is the +Go module identity. The Go consumer minimum remains 1.26.0. + ## CI adoption The maintained [consumer tag-delivery workflow](delivery.md#woodpecker-tag-workflows) diff --git a/docs/consumers/build.md b/docs/consumers/build.md index a15a426..3d893da 100644 --- a/docs/consumers/build.md +++ b/docs/consumers/build.md @@ -8,7 +8,7 @@ import ( "context" "fmt" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func build(ctx context.Context) error { diff --git a/docs/consumers/delivery.md b/docs/consumers/delivery.md index 77d25a5..4b81765 100644 --- a/docs/consumers/delivery.md +++ b/docs/consumers/delivery.md @@ -244,7 +244,7 @@ and application artifact compilation retain their separate environments. The normal Go module and build caches are sufficient. Cache mounts may be added as deployment configuration when they help the runner; they are not needed by the template. A separately installed executable can be installed with -`go install gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@PIN`, then run +`go install go.maximumdirect.net/releasekit/cmd/releasekit@PIN`, then run with the same arguments. With the event object available in the CI checkout, resolve it to its source commit before invocation: @@ -286,7 +286,9 @@ describes these checks. To isolate a public ReleaseKit download from application settings and the existing module cache, run the following with a compatible local Go toolchain. -Replace `v0.2.0` with the affected version. This diagnostic accesses the public +Replace `v0.5.0` with the affected vanity-path version. For an earlier release, +use its original `gitea.maximumdirect.net/eric/ReleaseKit` module path instead. +This diagnostic accesses the public Go proxy and checksum database and retains its temporary directory for inspection. ```sh @@ -298,7 +300,7 @@ Go proxy and checksum database and retains its temporary directory for inspectio GOPRIVATE= GONOPROXY= GONOSUMDB= \ GOPROXY=https://proxy.golang.org GOSUMDB=sum.golang.org \ GOMODCACHE="$checksum_dir/modules" \ - go mod download -json gitea.maximumdirect.net/eric/ReleaseKit@v0.2.0 + go mod download -json go.maximumdirect.net/releasekit@v0.5.0 ) ``` diff --git a/docs/consumers/runtime-version.md b/docs/consumers/runtime-version.md index e2ddecd..ecc699e 100644 --- a/docs/consumers/runtime-version.md +++ b/docs/consumers/runtime-version.md @@ -4,7 +4,7 @@ Applications can read their embedded version through the public `buildinfo` package: ```go -import "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" +import "go.maximumdirect.net/releasekit/buildinfo" version := buildinfo.Version() ``` diff --git a/docs/internal/overview.md b/docs/internal/overview.md index 163fd4f..7a638a5 100644 --- a/docs/internal/overview.md +++ b/docs/internal/overview.md @@ -24,7 +24,7 @@ Go declarations and GoDoc remain the owners of exact exported contracts. ## Module and dependencies -The module is `gitea.maximumdirect.net/eric/ReleaseKit`, with Go language +The module is `go.maximumdirect.net/releasekit`, with Go language version `1.26.0`. `go.mod` requires `golang.org/x/mod` and Goldmark for internal validation; public facades do not expose either dependency. `go list ./...` reports these implemented packages: diff --git a/docs/release.md b/docs/release.md index 22d375a..ec0c090 100644 --- a/docs/release.md +++ b/docs/release.md @@ -5,8 +5,10 @@ the complete checked-in release note. The page is delivered asynchronously by the prepared [Woodpecker workflow](../examples/woodpecker/releasekit-source-delivery.yml); it is not a source-release completion check and carries no binary assets. The authoritative repository is `origin` at -`https://gitea.maximumdirect.net/eric/ReleaseKit.git`, and the release branch -is `main`. A release completes when the intended annotated tag is successfully +`ssh://git@forge.maximumdirect.net:22222/base-layer/releasekit.git`, and the release +branch is `main`. The hosted Gitea destination is +`https://forge.maximumdirect.net/base-layer/releasekit`. A release completes +when the intended annotated tag is successfully pushed, or when one exact-object recovery query confirms that the push succeeded. CI and consumer installation are not completion checks. @@ -43,9 +45,9 @@ the exact version. Summarize the change and any compatibility or upgrade impact. End the note with the three license links at the immutable source tag: ```markdown -[COPYRIGHT](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/vX.Y.Z/COPYRIGHT) | -[LICENSE](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/vX.Y.Z/LICENSE) | -[ATTRIBUTION](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/vX.Y.Z/docs/oss/attribution.md) +[COPYRIGHT](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/vX.Y.Z/COPYRIGHT) | +[LICENSE](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/vX.Y.Z/LICENSE) | +[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/vX.Y.Z/docs/oss/attribution.md) ``` Replace every `vX.Y.Z` with the selected version. These are links to the same diff --git a/docs/releases/v0.5.0.md b/docs/releases/v0.5.0.md new file mode 100644 index 0000000..a4e9ffc --- /dev/null +++ b/docs/releases/v0.5.0.md @@ -0,0 +1,59 @@ +# ReleaseKit v0.5.0 + +## Summary + +ReleaseKit adopts `go.maximumdirect.net/releasekit` as its Go module identifier. +The vanity path resolves to the Gitea repository at +`https://forge.maximumdirect.net/base-layer/releasekit`. + +## Changes + +- The orchestration facade is `go.maximumdirect.net/releasekit`, the runtime + facade is `go.maximumdirect.net/releasekit/buildinfo`, and the executable + package is `go.maximumdirect.net/releasekit/cmd/releasekit`. +- Imports, version-injection linkage, compiled API checks, consumer fixtures, + and maintained release launchers and Woodpecker workflows use the new module + identity. +- ReleaseKit's hosted-page delivery profile and maintainer guidance use Gitea + at `forge.maximumdirect.net`, owner `base-layer`, repository `releasekit`. + +## Compatibility + +This pre-1.0 minor release changes package import paths and requires consumer +migration. Facade roles, command behavior, configuration formats, and the Go +1.26.0 consumer minimum retain their existing definitions. The runtime version +accessor and builder use the new module's runtime implementation for injection. + +Packages imported through different module paths have distinct Go identities. +Coordinate import changes in packages that exchange ReleaseKit facade types, +and update builders and applications using `buildinfo` together. + +Published versions through v0.4.2 retain the original +`gitea.maximumdirect.net/eric/ReleaseKit` module declaration. Those versions +continue to describe their original source and use their matching historical +instructions. A vanity-path download of an older tag does not change its module +declaration. + +## Upgrade guidance + +1. Update application, library, test, and generated imports for the root facade + and `buildinfo` to the new paths. Select v0.5.0 or a later compatible release + using the [adoption guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.5.0/docs/consumers/adoption.md#migrating-from-the-original-module-path). +2. For CLI tool dependencies, remove the old tool declaration and register + `go.maximumdirect.net/releasekit/cmd/releasekit` at the selected version. +3. Update copied launchers and Woodpecker workflows together with the module + selection. The maintained examples use + `releasekit_module=go.maximumdirect.net/releasekit`. +4. Run `go mod tidy`, review any old-path dependencies retained transitively, + and commit module and workflow changes together. Keep existing consumer tags + intact; their delivery retries use their recorded module files and matching + workflows. + +Source repository and hosted release URLs use the Gitea host; Go imports and +tool dependencies use the vanity path. ReleaseKit's source publication and +hosted-page delivery retain their separate outcomes under the +[maintainer procedure](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.5.0/docs/release.md). + +[COPYRIGHT](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.5.0/COPYRIGHT) | +[LICENSE](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.5.0/LICENSE) | +[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.5.0/docs/oss/attribution.md) diff --git a/docs/roadmap/migration.md b/docs/roadmap/migration.md index 2a10c28..74ba89b 100644 --- a/docs/roadmap/migration.md +++ b/docs/roadmap/migration.md @@ -1,6 +1,6 @@ # Roadmap: migrate to the ReleaseKit vanity module path -Status: proposed; implementation has not started. +Status: implementation in place; final verification and completion review underway. ## Objective @@ -10,7 +10,7 @@ Prepare the change for v0.5.0, with migration instructions for existing consumer The [release policy](../policy/release.md#versioning-and-compatibility) governs version selection and compatibility. -## Current baseline +## Baseline at start of migration The baseline is v0.4.2, commit `7d033c5ca1c95aec7db9690293638a0a1ac887b8`. diff --git a/examples/multi-module/README.md b/examples/multi-module/README.md index 8b8ae86..ee9531a 100644 --- a/examples/multi-module/README.md +++ b/examples/multi-module/README.md @@ -15,13 +15,13 @@ minimum. ## Select the release tool The module files are setup skeletons. Set `RELEASEKIT_TOOL_VERSION` to a released -ReleaseKit version containing module-release support, then register that tool in -each consumer module before running the launcher or workflow: +ReleaseKit version at or after the v0.5.0 vanity-path migration, then register +that tool in each consumer module before running the launcher or workflow: ```sh : "${RELEASEKIT_TOOL_VERSION:?Select a ReleaseKit release with module-release support}" for module_dir in . integrations/ckconfig integrations/core/v2; do - go -C "$module_dir" get -tool "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@${RELEASEKIT_TOOL_VERSION}" + go -C "$module_dir" get -tool "go.maximumdirect.net/releasekit/cmd/releasekit@${RELEASEKIT_TOOL_VERSION}" go -C "$module_dir" mod tidy done ``` @@ -108,9 +108,9 @@ modules: : "${RELEASEKIT_SOURCE:?Set the absolute ReleaseKit checkout path}" for module_dir in . integrations/ckconfig integrations/core/v2; do go -C "$module_dir" mod edit \ - -require=gitea.maximumdirect.net/eric/ReleaseKit@v0.0.0 \ - -replace="gitea.maximumdirect.net/eric/ReleaseKit=$RELEASEKIT_SOURCE" \ - -tool=gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit + -require=go.maximumdirect.net/releasekit@v0.0.0 \ + -replace="go.maximumdirect.net/releasekit=$RELEASEKIT_SOURCE" \ + -tool=go.maximumdirect.net/releasekit/cmd/releasekit GOTOOLCHAIN=local GOWORK=off go -C "$module_dir" mod tidy done ``` diff --git a/examples/multi-module/integrations/core/v2/main.go b/examples/multi-module/integrations/core/v2/main.go index 7911a24..435fa92 100644 --- a/examples/multi-module/integrations/core/v2/main.go +++ b/examples/multi-module/integrations/core/v2/main.go @@ -3,7 +3,7 @@ package main import ( "fmt" - "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" + "go.maximumdirect.net/releasekit/buildinfo" ) func main() { diff --git a/examples/multi-module/release.sh b/examples/multi-module/release.sh index cfd1f52..629f3df 100755 --- a/examples/multi-module/release.sh +++ b/examples/multi-module/release.sh @@ -31,7 +31,7 @@ else : > "$bootstrap_dir/releasekit.sum" fi -releasekit_module=gitea.maximumdirect.net/eric/ReleaseKit +releasekit_module=go.maximumdirect.net/releasekit ( cd "$module_path" export GOWORK=off diff --git a/examples/multi-module/woodpecker.yml b/examples/multi-module/woodpecker.yml index dc8e99b..38e11ee 100644 --- a/examples/multi-module/woodpecker.yml +++ b/examples/multi-module/woodpecker.yml @@ -51,7 +51,7 @@ steps: export GOWORK=off export GOTOOLCHAIN=local - releasekit_module=gitea.maximumdirect.net/eric/ReleaseKit + releasekit_module=go.maximumdirect.net/releasekit ( cd "$${module_path}" go list -mod=mod -modfile="$${bootstrap_dir}/releasekit.mod" -m "$${releasekit_module}" diff --git a/examples/woodpecker/tag-delivery.yml b/examples/woodpecker/tag-delivery.yml index 8d99e07..fce5958 100644 --- a/examples/woodpecker/tag-delivery.yml +++ b/examples/woodpecker/tag-delivery.yml @@ -43,7 +43,7 @@ steps: export GOWORK=off export GOTOOLCHAIN=local - releasekit_module=gitea.maximumdirect.net/eric/ReleaseKit + releasekit_module=go.maximumdirect.net/releasekit go list -mod=mod -modfile="$${bootstrap_dir}/releasekit.mod" -m "$${releasekit_module}" go build -mod=mod -modfile="$${bootstrap_dir}/releasekit.mod" \ -o "$${bootstrap_dir}/releasekit" "$${releasekit_module}/cmd/releasekit" diff --git a/go.mod b/go.mod index 6d7773f..2733c9c 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module gitea.maximumdirect.net/eric/ReleaseKit +module go.maximumdirect.net/releasekit go 1.26.0 diff --git a/internal/apicheck/main.go b/internal/apicheck/main.go index ea06582..0314aa3 100644 --- a/internal/apicheck/main.go +++ b/internal/apicheck/main.go @@ -15,7 +15,7 @@ import ( "strings" ) -const modulePath = "gitea.maximumdirect.net/eric/ReleaseKit" +const modulePath = "go.maximumdirect.net/releasekit" var facades = []string{modulePath, modulePath + "/buildinfo"} diff --git a/internal/build/build.go b/internal/build/build.go index 657e060..2ecedaa 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -13,12 +13,12 @@ import ( "path/filepath" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/candidate" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/tempdir" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/artifact" + "go.maximumdirect.net/releasekit/internal/candidate" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/releaseidentity" + "go.maximumdirect.net/releasekit/internal/tempdir" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) type Target = artifact.Target diff --git a/internal/build/candidate.go b/internal/build/candidate.go index 6336f3e..b291f11 100644 --- a/internal/build/candidate.go +++ b/internal/build/candidate.go @@ -7,10 +7,10 @@ import ( "os" "path/filepath" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/candidate" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/tempdir" + "go.maximumdirect.net/releasekit/internal/candidate" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/releaseidentity" + "go.maximumdirect.net/releasekit/internal/tempdir" ) func CandidateCallback(spec *Spec, output io.Writer) func(context.Context, candidate.Candidate, *gotool.Owner) error { diff --git a/internal/candidate/check.go b/internal/candidate/check.go index 603049e..a1424ce 100644 --- a/internal/candidate/check.go +++ b/internal/candidate/check.go @@ -10,12 +10,12 @@ import ( "os/exec" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/process" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/process" + "go.maximumdirect.net/releasekit/internal/releaseidentity" + "go.maximumdirect.net/releasekit/internal/validation" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) var ErrInvalidVersion = errors.New("invalid stable version") diff --git a/internal/candidate/check_test.go b/internal/candidate/check_test.go index f6195e0..f76e5c2 100644 --- a/internal/candidate/check_test.go +++ b/internal/candidate/check_test.go @@ -13,8 +13,8 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/validation" ) const testVersion = "v1.2.3" diff --git a/internal/delivery/assets.go b/internal/delivery/assets.go index 0b2289f..c7020b6 100644 --- a/internal/delivery/assets.go +++ b/internal/delivery/assets.go @@ -5,9 +5,9 @@ import ( "os" "path/filepath" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea" + "go.maximumdirect.net/releasekit/internal/artifact" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + "go.maximumdirect.net/releasekit/internal/gitea" ) func declaredBuildAssets(result internalbuild.Result) ([]gitea.ExpectedAsset, error) { diff --git a/internal/delivery/assets_test.go b/internal/delivery/assets_test.go index 7cb316c..9de7881 100644 --- a/internal/delivery/assets_test.go +++ b/internal/delivery/assets_test.go @@ -8,9 +8,9 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea" + "go.maximumdirect.net/releasekit/internal/artifact" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + "go.maximumdirect.net/releasekit/internal/gitea" ) func TestDeclaredBuildAssetsGenerateManifestFromBuildResult(t *testing.T) { diff --git a/internal/delivery/delivery.go b/internal/delivery/delivery.go index 43dd184..1edcd29 100644 --- a/internal/delivery/delivery.go +++ b/internal/delivery/delivery.go @@ -9,14 +9,14 @@ import ( "path/filepath" "strings" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/candidate" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/tempdir" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + "go.maximumdirect.net/releasekit/internal/candidate" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/gitea" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/releaseidentity" + "go.maximumdirect.net/releasekit/internal/tempdir" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) type State string diff --git a/internal/delivery/performance_test.go b/internal/delivery/performance_test.go index 44b16a2..6cb918f 100644 --- a/internal/delivery/performance_test.go +++ b/internal/delivery/performance_test.go @@ -8,9 +8,9 @@ import ( "path/filepath" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" - internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea" + "go.maximumdirect.net/releasekit/internal/artifact" + internalbuild "go.maximumdirect.net/releasekit/internal/build" + "go.maximumdirect.net/releasekit/internal/gitea" ) const performanceArtifactSize = 16 << 20 diff --git a/internal/git/blob_reader.go b/internal/git/blob_reader.go index 44c579f..01fa29a 100644 --- a/internal/git/blob_reader.go +++ b/internal/git/blob_reader.go @@ -12,7 +12,7 @@ import ( "strings" "sync" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/process" + "go.maximumdirect.net/releasekit/internal/process" ) var errBlobObjectMissing = errors.New("Git object is missing") diff --git a/internal/git/remote.go b/internal/git/remote.go index 130e068..4755b1e 100644 --- a/internal/git/remote.go +++ b/internal/git/remote.go @@ -9,7 +9,7 @@ import ( "fmt" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/process" + "go.maximumdirect.net/releasekit/internal/process" ) var ( diff --git a/internal/git/source.go b/internal/git/source.go index 7fc9fa0..7cbb44f 100644 --- a/internal/git/source.go +++ b/internal/git/source.go @@ -10,7 +10,7 @@ import ( "strconv" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/process" + "go.maximumdirect.net/releasekit/internal/process" ) // TreeEntry records one committed path and its Git object metadata. diff --git a/internal/gitea/assets.go b/internal/gitea/assets.go index db95276..9eac60a 100644 --- a/internal/gitea/assets.go +++ b/internal/gitea/assets.go @@ -14,7 +14,7 @@ import ( "strconv" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/artifact" + "go.maximumdirect.net/releasekit/internal/artifact" ) const ManifestFilename = artifact.ManifestFilename diff --git a/internal/gotool/gotool.go b/internal/gotool/gotool.go index e9db27a..e4348cb 100644 --- a/internal/gotool/gotool.go +++ b/internal/gotool/gotool.go @@ -12,7 +12,7 @@ import ( "strings" "sync" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/process" + "go.maximumdirect.net/releasekit/internal/process" ) // Mode selects the target environment for a Go command. diff --git a/internal/preparation/preparation.go b/internal/preparation/preparation.go index 3374456..434c917 100644 --- a/internal/preparation/preparation.go +++ b/internal/preparation/preparation.go @@ -8,10 +8,10 @@ import ( "fmt" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/candidate" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/candidate" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/versioncontract" ) type TaggedCheckoutRequest struct { diff --git a/internal/publish/publish.go b/internal/publish/publish.go index 7e497a1..1411263 100644 --- a/internal/publish/publish.go +++ b/internal/publish/publish.go @@ -8,10 +8,10 @@ import ( "io" "time" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/candidate" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" + "go.maximumdirect.net/releasekit/internal/candidate" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/validation" ) type State string diff --git a/internal/releaseidentity/identity.go b/internal/releaseidentity/identity.go index 9318e7e..5512be7 100644 --- a/internal/releaseidentity/identity.go +++ b/internal/releaseidentity/identity.go @@ -10,8 +10,8 @@ import ( "path/filepath" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/versioncontract" + "go.maximumdirect.net/releasekit/internal/git" + "go.maximumdirect.net/releasekit/internal/versioncontract" "golang.org/x/mod/modfile" "golang.org/x/mod/module" ) diff --git a/internal/validation/file_size.go b/internal/validation/file_size.go index daa54fe..fdb8f5a 100644 --- a/internal/validation/file_size.go +++ b/internal/validation/file_size.go @@ -6,7 +6,7 @@ import ( "path" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) const defaultFileSizeLimit int64 = 1_000_000 diff --git a/internal/validation/file_size_test.go b/internal/validation/file_size_test.go index 84509f8..5c1e163 100644 --- a/internal/validation/file_size_test.go +++ b/internal/validation/file_size_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) func TestCheckFileSizeUsesStrictLimitsAndDefault(t *testing.T) { diff --git a/internal/validation/format_test.go b/internal/validation/format_test.go index fe0190f..63ed23b 100644 --- a/internal/validation/format_test.go +++ b/internal/validation/format_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) func TestCheckGoFormatUsesCapturedRegularGoBlobs(t *testing.T) { diff --git a/internal/validation/local_replacements.go b/internal/validation/local_replacements.go index 9207146..c7273f8 100644 --- a/internal/validation/local_replacements.go +++ b/internal/validation/local_replacements.go @@ -6,7 +6,7 @@ import ( "path" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" "golang.org/x/mod/modfile" ) diff --git a/internal/validation/markdown_check.go b/internal/validation/markdown_check.go index 959caa1..91d9c39 100644 --- a/internal/validation/markdown_check.go +++ b/internal/validation/markdown_check.go @@ -8,7 +8,7 @@ import ( "path" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) func checkMarkdownLinks(ctx context.Context, tree *CandidateTree, enforceCheckoutBoundary bool, output io.Writer) error { diff --git a/internal/validation/scope_performance_test.go b/internal/validation/scope_performance_test.go index 97d733e..b0a21f4 100644 --- a/internal/validation/scope_performance_test.go +++ b/internal/validation/scope_performance_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) func BenchmarkSelectInputEntriesByModuleCount(b *testing.B) { diff --git a/internal/validation/tree.go b/internal/validation/tree.go index 8bc217b..81067bd 100644 --- a/internal/validation/tree.go +++ b/internal/validation/tree.go @@ -8,7 +8,7 @@ import ( "sort" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) // CandidateTree is an inventory of one captured commit with blob contents diff --git a/internal/validation/validation.go b/internal/validation/validation.go index 8b75526..f433ca1 100644 --- a/internal/validation/validation.go +++ b/internal/validation/validation.go @@ -12,7 +12,7 @@ import ( "path" "strings" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gotool" + "go.maximumdirect.net/releasekit/internal/gotool" ) // Settings selects shared validation behavior. diff --git a/internal/validation/workspace_test.go b/internal/validation/workspace_test.go index 4d0f917..6c766c9 100644 --- a/internal/validation/workspace_test.go +++ b/internal/validation/workspace_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + "go.maximumdirect.net/releasekit/internal/git" ) func TestCheckWorkspaceFilesReportsCommittedBlobNames(t *testing.T) { diff --git a/internal/versioncontract/injection.go b/internal/versioncontract/injection.go index 9a52e6b..13df2e8 100644 --- a/internal/versioncontract/injection.go +++ b/internal/versioncontract/injection.go @@ -4,4 +4,4 @@ package versioncontract // InjectedVersionLinkerSymbol is the -X linker target used to set the runtime // version. Keep it in sync with runtimeinfo.injectedVersion. -const InjectedVersionLinkerSymbol = "gitea.maximumdirect.net/eric/ReleaseKit/internal/runtimeinfo.injectedVersion" +const InjectedVersionLinkerSymbol = "go.maximumdirect.net/releasekit/internal/runtimeinfo.injectedVersion" diff --git a/performance_benchmark_test.go b/performance_benchmark_test.go index fba8bf1..0aa844e 100644 --- a/performance_benchmark_test.go +++ b/performance_benchmark_test.go @@ -6,7 +6,7 @@ import ( "path/filepath" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit" + "go.maximumdirect.net/releasekit" ) func BenchmarkPerformanceFacadeCheck(b *testing.B) { diff --git a/performance_delivery_test.go b/performance_delivery_test.go index 16d9de7..e49230a 100644 --- a/performance_delivery_test.go +++ b/performance_delivery_test.go @@ -18,8 +18,8 @@ import ( "sync" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea" + releasekit "go.maximumdirect.net/releasekit" + "go.maximumdirect.net/releasekit/internal/gitea" ) const performanceDeliveryArtifactSize = 16 << 20 diff --git a/preparation.go b/preparation.go index e005da9..5b3639e 100644 --- a/preparation.go +++ b/preparation.go @@ -6,8 +6,8 @@ import ( "fmt" "strings" - internalpreparation "gitea.maximumdirect.net/eric/ReleaseKit/internal/preparation" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/releaseidentity" + internalpreparation "go.maximumdirect.net/releasekit/internal/preparation" + "go.maximumdirect.net/releasekit/internal/releaseidentity" ) // TaggedCheckoutRequest selects a full Git tag and the Git object ID expected diff --git a/preparation_test.go b/preparation_test.go index 7cfbcb8..0a080cf 100644 --- a/preparation_test.go +++ b/preparation_test.go @@ -9,7 +9,7 @@ import ( "strings" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestPrepareTaggedCheckoutFetchesExpectedCommitAndDetaches(t *testing.T) { diff --git a/publish.go b/publish.go index 32ac7b5..b9431f0 100644 --- a/publish.go +++ b/publish.go @@ -3,7 +3,7 @@ package releasekit import ( "context" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/publish" + "go.maximumdirect.net/releasekit/internal/publish" ) type PublicationState string diff --git a/publish_test.go b/publish_test.go index bb506b2..7dc4a07 100644 --- a/publish_test.go +++ b/publish_test.go @@ -12,8 +12,8 @@ import ( "testing" "time" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/git" + releasekit "go.maximumdirect.net/releasekit" + "go.maximumdirect.net/releasekit/internal/git" ) const releaseNote = "# Sample App v1.2.3\n\nA source release.\n\nUpgrade notes stay intact.\n" diff --git a/releasekit.json b/releasekit.json index d67d1c8..fb35cd6 100644 --- a/releasekit.json +++ b/releasekit.json @@ -2,9 +2,9 @@ "product": "ReleaseKit", "remote": "origin", "delivery": { - "base_url": "https://gitea.maximumdirect.net", - "owner": "eric", - "repository": "ReleaseKit", + "base_url": "https://forge.maximumdirect.net", + "owner": "base-layer", + "repository": "releasekit", "token_env": "RELEASEKIT_GITEA_TOKEN" } } diff --git a/repository_test.go b/repository_test.go index 5c9d4ea..4a666f1 100644 --- a/repository_test.go +++ b/repository_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestModuleSelectionFollowsSymlinkBeforeParentAcrossOperations(t *testing.T) { diff --git a/source_inspection_test.go b/source_inspection_test.go index 4dd3448..432ee0d 100644 --- a/source_inspection_test.go +++ b/source_inspection_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestSourceOperationsRejectUnavailableNoteWithoutTransport(t *testing.T) { diff --git a/validation_error.go b/validation_error.go index a4928be..a542c7b 100644 --- a/validation_error.go +++ b/validation_error.go @@ -4,7 +4,7 @@ import ( "errors" "slices" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" + "go.maximumdirect.net/releasekit/internal/validation" ) // ValidationCheck identifies a shared validation check that failed. diff --git a/validation_error_test.go b/validation_error_test.go index 157a28e..69a8c0c 100644 --- a/validation_error_test.go +++ b/validation_error_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - releasekit "gitea.maximumdirect.net/eric/ReleaseKit" + releasekit "go.maximumdirect.net/releasekit" ) func TestValidationErrorPresentsFindingsAlongsideCause(t *testing.T) { diff --git a/validation_scope_test.go b/validation_scope_test.go index 6d904b7..1d5630e 100644 --- a/validation_scope_test.go +++ b/validation_scope_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" + "go.maximumdirect.net/releasekit/internal/validation" ) func TestSharedFileFailureKeepsPublicIdentityPathAndCause(t *testing.T) { diff --git a/validation_test.go b/validation_test.go index d6960f7..252cef6 100644 --- a/validation_test.go +++ b/validation_test.go @@ -4,7 +4,7 @@ import ( "errors" "testing" - "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" + "go.maximumdirect.net/releasekit/internal/validation" ) func TestCandidateRequestMapsGoValidation(t *testing.T) {