Module and Repository Rename (gtb to go-tool-base)¶
- Authors
- Matt Cockayne, Claude (claude-opus-4-6) (AI drafting assistant)
- Date
- 23 March 2026
- Status
- IMPLEMENTED
Problem Statement¶
The current Go module and GitHub repository are named gtb (gitlab.com/phpboyscout/go-tool-base). Market research has shown that the acronym "GTB" is heavily overloaded across multiple industries (cybersecurity, bioinformatics, spatial analysis). This creates significant brand confusion and SEO issues. To effectively position the framework as the premier "Intelligent Application Lifecycle Framework for Go", the public presence, module path, and repository name must correctly reflect the full unabbreviated name: Go Tool Base.
Goals¶
- Rename the GitHub repository from
gtbtogo-tool-base. - Rename the Go module path from
gitlab.com/phpboyscout/go-tool-basetogitlab.com/phpboyscout/go-tool-base. - Ensure all internal import paths within the repository are updated to the new module path.
- Update the CLI generator (
gtb generate skeleton/command) to output the new module path in generated projects. - Preserve
gtbas the executable binary name for brevity in the terminal.
Non-Goals¶
- We are not renaming the executing binary. It will remain
gtb. - We are not changing the core architecture, interfaces, or logic in this workstream.
Public API¶
This is a massive breaking change (v2 semantic scale, or handled carefully pre-v1 release) for any consumers already importing gitlab.com/phpboyscout/go-tool-base.
Every occurrence of:
import "gitlab.com/phpboyscout/go-tool-base/pkg/..."
Must become:
import "gitlab.com/phpboyscout/go-tool-base/pkg/..."
Data Models¶
No changes to structured types or databases.
Error Cases¶
- Stale imports in user projects: Existing projects importing
gitlab.com/phpboyscout/go-tool-basewill eventually fail if GitHub removes the automated redirect, or if they attempt to upgrade to a version tagged only on the new module path.
Testing Strategy¶
- A global find-and-replace will be executed.
go build ./...andgo test ./...must pass.- The generator must be invoked to create a skeleton project in a temporary directory, and the generated project's
go mod tidyandgo buildmust succeed to ensure the generator templates were correctly updated.
Implementation Phases¶
- Repository Level: Rename the repository in GitHub Settings from
gtbtogo-tool-base. - Module Level: Update
go.modtomodule gitlab.com/phpboyscout/go-tool-base. - Internal Imports: Execute a global sed/find-replace for
"gitlab.com/phpboyscout/go-tool-base/->"gitlab.com/phpboyscout/go-tool-base/across all.gofiles. - Generator Templates: Ensure
internal/generator/templates/files output the correct import paths. - CI/CD: Update GitHub Actions workflows,
install.sh,install.ps1, and GoReleaser configurations to reflect the new repository name.
Open Questions¶
- Providing a transition period: Should we cut a final
v1.2.xtag on the old module path with a deprecation warning before committing thego.modchange to main?