Repository navigation
Replace loft-sh with Curity in the module path, app identifier and provider downloads - #39
Merged
Merged
Conversation
The module path was still upstream's github.com/loft-sh/devpod, so stack traces and -ldflags -X settings showed loft-sh. Rename it, and the dockerless module, to github.com/curityio/devpod, and update the build scripts, release and license workflows, and the gRPC go_package (the generated code only changes in its embedded package path, so the wire protocol is unchanged). The desktop app identifier sh.loft.devpod stays, as it is tied to the devpod:// deep links, the Flatpak id and existing installs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The desktop app still used upstream's sh.loft.devpod identifier. Use io.curity.devpod instead (io.curity.devpod.for.devpod.devs for dev builds), in the Tauri config, Info.plist, the deep link code, the Flatpak manifest and metainfo, and the FLATPAK_ID passed to the CLI, and make Curity the Windows publisher. Tauri names the app's data directories after the identifier, so on its first start the app copies the old directories (settings and provider stores, logs, the Windows CLI shims and the webview's storage) to the new ones. They are copied, not moved, so that a Windows PATH pointing at the old CLI shims keeps working. The Windows installer looks for the installed version's folder under Software\<publisher>\DevPod, which used to be Software\loft\DevPod. An installer hook copies that key to Software\Curity\DevPod before the pages are shown, so that upgrading can still uninstall the old version, and removes the old key after installing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A provider given by its name alone (devpod provider add <name>) was always downloaded from loft-sh/devpod-provider-<name>, so a mistyped or unknown name showed loft-sh in the error. Download it from curityio/devpod-provider-<name> instead, except for the providers that so far only exist under loft-sh (aws, azure, civo, digitalocean, dockerless, ecs, gcloud, kubernetes, ssh and terraform), which are kept in the LoftProviders whitelist until they're migrated (see TODO.md). devpod provider list-available listed only the first 30 loft-sh repositories, as "providers from loft". It now lists the whitelisted providers and the devpod-provider-* repositories of curityio. The provider update error and the desktop app's provider source placeholder no longer use loft-sh examples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Updating its imports to the new module path also ran a newer gofmt over it, which reindented a return statement in a way that the goimports in golangci-lint v1.60.1 rejects. Restore the formatting from main and keep only the import path change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes the remaining
loft-shidentity from the CLI and the desktop app.Go module path
github.com/loft-sh/devpodtogithub.com/curityio/devpod(anddockerless/togithub.com/curityio/devpod/dockerless). This changes every import, so stack traces now show the new path.-ldflags -X .../pkg/version.versionsettings inhack/rebuild.sh,hack/build-e2e.shand the release workflow, and the go-licenses workflows. The go-licenses step that rewrote links is gone because it no longer did anything.go_packageintunnel.protoand regeneratestunnel.pb.go. Only the descriptor's package path changes, so the wire protocol stays the same.Desktop app identifier
sh.loft.devpodbecomesio.curity.devpod(Tauri config,Info.plist,custom_protocol.rs, the Flatpak manifest andFLATPAK_ID), and the Windows publisher becomesCurity.identifier_migration.rs: on first start, the app copies the oldsh.loft.devpoddata, local data, log and WebKit directories to the new ones, skipping cache directories. The old directories are kept, so aPATHthat points at the old CLI shims still works.installer-hooks.nsh: the installer finds an install made underSoftware\loft\DevPod, then removes that registry key. Not tested: makensis isn't available locally, and CI only builds the Windows installer on release tags.Providers given by name
devpod provider add <name>downloads fromcurityio/devpod-provider-<name>. The providers that only exist underloft-shso far are allowlisted inworkspace.LoftProvidersand still come from there: aws, azure, civo, digitalocean, dockerless, ecs, gcloud, kubernetes, ssh and terraform.devpod provider list-availablelists those providers plus thedevpod-provider-*repositories incurityio. Before, it listed only the first 30 repositories ofloft-sh.TODO.mdtracks migrating those providers and then deleting the allowlist.Testing
go build ./...,go vet ./...andgo test ./pkg/... ./cmd/...pass. There are new unit tests for the provider repository resolution, the available-providers list and the directory migration (cargo test).go list -deps . | grep '^k8s.io/client-go/kubernetes'prints nothing.🤖 Generated with Claude Code