Skip to content

Add func setup design proposal#4908

Open
liliankasem wants to merge 3 commits intodocsfrom
liliankasem/docs/setup-proposal
Open

Add func setup design proposal#4908
liliankasem wants to merge 3 commits intodocsfrom
liliankasem/docs/setup-proposal

Conversation

@liliankasem
Copy link
Copy Markdown
Member

@liliankasem liliankasem commented Apr 30, 2026

Purpose of this design is to figure out the onboarding story for the new CLI now that a lot of base functionality from v4 is coming from workloads. Given that workloads are essential to the use of the new CLI - we need to make it easy for users to onboard in the CLI, whether that is setting up a new local environment, or CI environment.

@liliankasem liliankasem marked this pull request as ready for review May 5, 2026 21:03
Reframes func setup based on architectural review:

- Identity: machine readiness orchestrator, not a UX wrapper or
  project bootstrapper. Coordinates workload install, profile
  pre-install, cache priming, first-run hints.
- Drops the setup-side 'profile' concept. The word is reserved for
  cli-profiles.md (PR #4913). Replaced by --workloads.
- User-level mutations only. No writes to .func/config.json or other
  project files (avoids collision with the profiles proposal).
- Telemetry consent moved out of scope; it is a global first-CLI-
  invocation concern, not setup's job.
- Re-run model pinned to idempotent additive reconciliation; adds
  --check. No manifest, no removal.
- Explicit boundary section: init, setup, and start each own one
  verb and never call each other.
- Progress: TTY spinner, plain-text periodic in CI, opt-in --output json
- Offline: deferred to a separate CLI-wide proposal
- Picker UX: categorized; pre-select curated recommendations per
  detected language
- Discoverability: post-install message + 'func' with no args
- --check exit codes: single non-zero; details to stdout/stderr
- Project inference: read broadly, surface as info; pre-selection
  comes from curated recommendations, not raw inference
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