Open
Conversation
The interactive setup wizard hasn't been touched in ~21 months and ships ~2-year-old pinned SDK versions in its embedded snippets. Removing it along with the bubbletea TUI package, the embedded SDK markdown, and the go.mod entries it was the sole consumer of. BREAKING CHANGE: `ldcli setup` is no longer available. See the README and LaunchDarkly docs for the recommended onboarding path. Co-authored-by: Cursor <cursoragent@cursor.com>
The setup wizard was the sole consumer of SendSetupStepStartedEvent, SendSetupSDKSelectedEvent, and SendSetupFlagToggledEvent. With the wizard gone, shrink the Tracker interface and remove the methods from all four implementations and the corresponding test. Co-authored-by: Cursor <cursoragent@cursor.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.
https://launchdarkly.atlassian.net/browse/REL-13478
Summary
Hard-removes the
ldcli setupinteractive onboarding wizard that hasn't been meaningfully touched in ~21 months and ships ~2-year-old pinned SDK versions in its embedded snippets. Along with the wizard goes the bubbletea TUI package, the 23 embedded SDK markdown snippets, the analytics tracker methods only it consumed, and the six direct go.mod requires it was the sole importer of.Net diff: -3,965 LOC across 45 files in two commits.
What changes for users
ldcli setupno longer exists; running it returns cobra'sunknown command "setup" for "ldcli"error.--helpoutput no longer mentionsetup.## [Unreleased]→### ⚠ BREAKING CHANGESinCHANGELOG.mdpoints users to the LaunchDarkly docs for SDK install guidance and toldcli flags create/ldcli flags toggle-on/ldcli flags toggle-offfor the operations the wizard wrapped.Why now
launchdarkly-server-sdk==9.4.0, Reactlaunchdarkly-react-client-sdk@3.1.0, and the React example still uses the deprecatednpx create-react-app.sdk-metapackage; that never happened.dev-server,sourcemaps).How it's split
Two commits, single PR:
feat!: remove ldcli setup interactive wizard— 39 files, -3,869 LOC. Deletescmd/quickstart.go, all ofinternal/quickstart/andinternal/sdks/, removes thecmd.AddCommandregistration incmd/root.go, removes thesetupline from the usage template incmd/templates.go, drops the two README mentions, adds the[Unreleased]CHANGELOG bullet, and runsgo mod tidy. Repo is buildable and shippable at this commit.refactor(analytics): drop wizard-only tracker methods— 6 files, -96 LOC. Shrinks theTrackerinterface (removesSendSetupStepStartedEvent,SendSetupSDKSelectedEvent,SendSetupFlagToggledEvent) and removes the methods from all four implementations (Client,NoopClient,LogClient,MockTracker) plus the corresponding subtest inclient_test.go.Dependency cleanup
Of the six predicted direct-require drops, three left
go.modentirely (bubbletea,bubbles,sdk-meta/api); three were demoted to// indirectbecause they are still pulled in transitively byglamour(lipgloss,muesli/reflow,golang.org/x/exp). Six previously-indirect deps disappeared completely:atotto/clipboard,erikgeiser/coninput,mattn/go-localereader,muesli/ansi,muesli/cancelreader,sahilm/fuzzy. Net:go.mod-16 lines,go.sum-21 lines.glamourstays — it's also imported bycmd/resources/.Release-please / versioning
Commit 1 uses
feat!:with aBREAKING CHANGE:footer so release-please bumps the major version (3.x → 4.0.0) on the next release and surfaces this in the auto-generated changelog under### ⚠ BREAKING CHANGES.Test plan
make build— cleanmake test— 569 passed in 38 packages (was 570; one less due to the removedSendSetupStepStartedEventsubtest ininternal/analytics/client_test.go)go mod tidyis idempotent (re-running produces no furthergo.mod/go.sumdiff)./ldcli --helpno longer listssetup; surrounding column alignment is preserved (cobra'srpadpads each line independently)./ldcli setupreturnsunknown command "setup" for "ldcli"gofmtcleanOut of scope (explicitly)
These were considered and deferred to keep the diff focused:
MockedTrackerhelper ininternal/analytics/events.go(zero callers in the repo, and its mock setup passes 4 args to a 2-argCalled). Already dead, not made dead by this PR.AGENTS.md/CLAUDE.md/CONTRIBUTING.mdstaleness (they claimgetUsageTemplate()lives incmd/root.go, and reference pre-commit hooks that are not actually wired up).make vendorMakefile target (the repo doesn't vendor; the target predates the deliberatevendor/removal).Made with Cursor
Note
Medium Risk
Removes a user-facing command and associated analytics/interface surface; risk is mostly around breaking existing scripts/docs expectations and potential leftover references, but core API/resource commands are untouched.
Overview
Removes the interactive onboarding wizard by deleting the
ldcli setupcommand and all supporting TUI/quickstart code (including embedded SDK instruction markdown). CLI help/usage output and the README no longer referencesetup, and the changelog adds a breaking change note pointing users to docs andflags create/flags toggle-*.Cleans up analytics and dependencies by dropping wizard-only tracker methods/events and removing/demoting the Go module dependencies that were only needed for the TUI flow (with corresponding
go.mod/go.sumtidy).Reviewed by Cursor Bugbot for commit fa6d683. Bugbot is set up for automated code reviews on this repo. Configure here.