Skip to content

feat(spx): add driver-independent buildlauncher - #1767

Merged
joeykchen merged 1 commit into
goplus:devfrom
joeykchen:feat/buildlauncher
Aug 21, 2026
Merged

feat(spx): add driver-independent buildlauncher#1767
joeykchen merged 1 commit into
goplus:devfrom
joeykchen:feat/buildlauncher

Conversation

@joeykchen

Copy link
Copy Markdown
Contributor

Summary

  • add spx buildlauncher without starting Godot or requiring a local XGo driver
  • freeze and verify Go module graph metadata across bridge and launcher builds
  • protect project inputs with private staging and atomic output replacement
  • document the standalone launcher workflow in English and Chinese

Built on the launchpack service merged in #1766.

Verification

  • go test -count=1 -race ./...
  • go vet ./cmd/spx/internal/command ./internal/launchpack
  • Windows amd64 pure_engine cross-compile
  • gofmt and git diff checks

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the complete fixed diff for command dispatch, module-graph provenance, project metadata, output staging, platform-specific replacement, and the added tests/docs. The buildlauncher path is generally well-contained and the focused Linux package tests pass. One compatibility issue should be addressed before merging.

Validation: go test ./cmd/spx/internal/command ./internal/launchpack passed. A Windows cross-build was attempted but remains blocked by existing non-Windows package symbols in internal/gdengine.

cmd.Args.Mode = f.String("mode", "none", "mode: none, worker, minigame")
cmd.Args.Movie = f.Bool("movie", false, "record movie mode")
cmd.Args.Verbose = f.Bool("v", false, "print verbose information")
cmd.Args.Output = f.String("o", "", "launcher output path (buildlauncher)")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Scope the launcher output flag to buildlauncher

Registering -o in the shared flag set makes it valid for every command, but only buildlauncher consumes Args.Output; the legacy command paths ignore it (and ExtraArgs.String does not forward it). This changes previously rejected invocations such as spx run -o out into silently successful runs that discard the user's requested output, which can hide a typo or produce an unexpected artifact. Keep this flag scoped to buildlauncher, or explicitly reject it for the other command paths.

@joeykchen
joeykchen merged commit cf8e6bb into goplus:dev Aug 21, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant