Skip to content

Rename installer modes: Lite -> Maker (default), Standard -> Developer; consolidate installers - #296

Open
amilandi wants to merge 4 commits into
mainfrom
amilandin/installer-consolidation
Open

amilandi wants to merge 4 commits into
mainfrom
amilandin/installer-consolidation

Conversation

@amilandi

@amilandi amilandi commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Renames the installer modes and consolidates the Windows entry points, following PM + design review.

Why the rename

  • "Lite" undersold the mode. Nothing about the chat-first UX is cut-down or reduced - it's a full, streamlined Maker experience with the Quick Actions rail and a built-in tutorial. Calling it "Lite" made it read as a lesser option, which is the opposite of what the mode is optimized for.
  • "Standard" was misleading. The default developer view already modifies the UX (opens Copilot Chat in the sidebar and injects /setup on first launch). Calling it "Standard" implied "vanilla VS Code", which is not what users get. The name Developer is honest about the audience: makers who want the full IDE surface.

What changes

Modes

  • lite -> maker (new default when the user dismisses the first-launch QuickPick)
  • standard -> developer
  • prompt is unchanged; still the default for -InstallMode so the QuickPick fires on first VS Code launch.

Windows installer

  • Install-EssAdk.ps1: -InstallMode accepts maker|developer|prompt plus legacy lite|standard. -SkipMakerProfile now coerces to developer (was standard).
  • bootstrap-lite.ps1: kept at its existing URL for back-compat; pins InstallMode=maker.
  • bootstrap-dev.ps1 (NEW): Developer-mode shortcut, mirrors bootstrap-lite pattern.
  • Windows-side installer consolidation (the original PR scope) is retained: one Install-EssAdk.ps1 with a mode parameter, no separate lite entry-point script.

macOS installer

  • install-ess-adk.sh: new INSTALL_MODE env var (maker|developer|prompt + legacy lite|standard). SKIP_MAKER_PROFILE=true still works and is coerced to developer. Launch branches, MODE_LABEL, and settings-write are rewritten.
  • bootstrap-lite-mac.sh: pins INSTALL_MODE=maker.
  • bootstrap-dev-mac.sh (NEW): Developer-mode shortcut.

Extension (0.4.26 -> 0.4.27)

  • QuickPick shows Maker (recommended) and Developer; dismissal defaults to Maker (was Standard).
  • Internal identifiers renamed (isLiteMode -> isMakerLayout, button IDs, toast copy, config key semantics).
  • essMaker.mode config enum extended to ["maker","developer","lite","standard",""] so existing users' pinned settings still validate.
  • normalizeInstallerMode() maps legacy lite->maker and standard->developer at the top of firstInstallDispatch, so upgraded users are not re-prompted.
  • Command title essMaker.restoreStandardLayout -> "Restore Developer Layout"; command ID is preserved so keybindings and workflows keep working.
  • The on-disk globalState key essMaker.liteMode.v1 is preserved (renaming would silently reset every existing user's saved layout preference).

Telemetry

  • New installMode dimension emitted by both PowerShell and bash installers (maker | developer | prompt or legacy lite | standard).
  • installer identity stays flightcheck | adk (bash telemetry still guards out legacy lite installer identity until macOS consolidation ships; bootstrap-lite-mac.sh sets ESS_TEL_INSTALLER_OVERRIDE=lite to keep the guard working).

Docs

  • setup/README.md: Maker/Developer section, new bootstrap commands, updated file-table and testing snippets.
  • tools/ess-maker-profile/extension/CHANGELOG.md: 0.4.27 entry.

Back-compat guarantees

  • Existing installed users on essMaker.mode = lite | standard are silently normalized on next VS Code launch - no re-prompt, no reset of persisted layout.
  • Pinned CI / docs using -SkipMakerProfile on Windows or SKIP_MAKER_PROFILE=true on macOS keep working (both now coerce to developer).
  • bootstrap-lite.ps1 / bootstrap-lite-mac.sh URLs are unchanged (linked from external docs).
  • Extension command IDs and on-disk state keys are preserved.

Testing

  • pwsh -File setup/Install-EssAdk.Tests.ps1 -> 58/58 passing (added assertions for -InstallMode ValidateSet, legacy coercion, bootstrap-dev.ps1, bootstrap-dev-mac.sh, macOS INSTALL_MODE handling).
  • node tools/ess-maker-profile/extension/extension.test.js -> 48/48 passing (rewrote first-install prompt tests for new labels/values/default; added legacy-normalization + config-enum tests).

ADO: https://o365exchange.visualstudio.com/O365%20Core/_workitems/edit/7895603

Avery Milandin and others added 2 commits September 21, 2026 17:37
…n-VS-Code mode prompt

ADO #7895603.

Changes
- Install-EssAdk.ps1: new -InstallMode lite|standard|prompt parameter,
  default prompt. -SkipMakerProfile kept as a back-compat alias for
  -InstallMode standard. The launch section switches on the resolved
  modeLabel: standard runs "code chat /setup", lite/prompt open the
  workspace and let the ESS Maker Profile extension drive from there.
  Section 5c always installs the extension and writes essMaker.mode
  to VS Code user settings; prompt mode writes an empty string so the
  extension knows to ask the maker on first launch.
- bootstrap.ps1: stops passing SkipMakerProfile=true, so the single
  Windows one-liner now defaults to the in-VS-Code mode prompt.
- bootstrap-lite.ps1: reduced to a back-compat shim that pins
  -InstallMode lite so pre-existing lite-mode links keep working.
- extension.js (v0.4.26): on first launch, if essMaker.mode is empty
  or "prompt", show a QuickPick (Standard recommended / Lite chat-first);
  persist the choice to the global setting and dispatch to the matching
  layout/injection flow. Dismissing the QuickPick defaults to standard.
- install-telemetry.ps1: removed the "lite installer not instrumented"
  early return (lite is now the same installer with -InstallMode lite);
  added installMode dimension to every ESSMakerKit.Installer.* event.
- Tests: Install-EssAdk.Tests.ps1 asserts the new -InstallMode param,
  the SkipMakerProfile back-compat coercion, the essMaker.mode empty-on-
  prompt write, the installMode dim, and the removed PS lite guard.
  extension.test.js asserts promptForInstallMode is declared, offers
  Standard + Lite, defaults to standard on dismiss, and persists the
  chosen mode to ConfigurationTarget.Global.
- README.md (setup): updated to note the in-VS-Code prompt and keep the
  lite-mode link as a back-compat shortcut for scripts that must pin
  the choice up front.

macOS scripts intentionally unchanged (per AC on ADO #7895603); the
bash emitter's lite guard stays in place until a follow-up US migrates
bootstrap-lite-mac.sh.

Verified
- pwsh setup/Install-EssAdk.Tests.ps1 -> 48/48 pass
- node tools/ess-maker-profile/extension/extension.test.js -> 46/46 pass

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
User research surfaced that `Lite` undersold the mode (it's a full,
streamlined chat-first UX, not a cut-down one) and `Standard` was
misleading (it already modifies UX by opening Copilot Chat and running
/setup on first launch). Rename to Maker (default) / Developer across
the installer stack while preserving full back-compat for the legacy
lite/standard values written by previously-installed users and pinned
CI scripts.

Windows:
- Install-EssAdk.ps1: -InstallMode ValidateSet accepts
  maker|developer|prompt plus legacy lite|standard; -SkipMakerProfile
  coerces to developer (was standard); dismissal-fallback stays prompt.
- bootstrap-lite.ps1: now pins InstallMode=maker (back-compat URL).
- bootstrap-dev.ps1: NEW - Developer-mode shortcut.
- telemetry/install-telemetry.ps1: ValidateSet extended.
- Install-EssAdk.Tests.ps1: updated to 58 tests, all green.

macOS:
- install-ess-adk.sh: INSTALL_MODE env var (maker|developer|prompt +
  legacy lite|standard) with SKIP_MAKER_PROFILE=true back-compat;
  MODE_LABEL / settings-write / launch branches rewritten; installer
  identity collapsed to flightcheck|adk with ESS_TEL_INSTALLER_OVERRIDE
  escape hatch for the still-legacy bootstrap-lite-mac.sh emitter guard.
- bootstrap-lite-mac.sh: pins INSTALL_MODE=maker and sets
  ESS_TEL_INSTALLER_OVERRIDE=lite so the bash telemetry guard still
  drops these events until macOS consolidation ships.
- bootstrap-dev-mac.sh: NEW - Developer-mode shortcut.
- telemetry/install-telemetry.sh: ess_tel_init takes an install mode
  arg and emits it as the new installMode dimension; the
  ESS_TEL_INSTALLER=='lite' guard is retained.

Extension (0.4.26 -> 0.4.27):
- extension.js: rename isLiteMode -> isMakerLayout; button IDs
  btn-lite/btn-standard -> btn-maker/btn-developer; QuickPick shows
  Maker (recommended) / Developer with dismissal default = maker;
  normalizeInstallerMode() maps legacy lite->maker / standard->developer
  at the top of firstInstallDispatch so upgraded users don't get
  re-prompted; LITE_MODE_KEY = 'essMaker.liteMode.v1' on-disk name is
  preserved to protect existing users' persisted layout.
- extension.test.js: 48 tests, all green.
- package.json: essMaker.mode enum extended to include maker,
  developer, lite, standard, ''; command title
  `essMaker.restoreStandardLayout` -> `Restore Developer Layout`
  (command ID preserved for keybinding compat).
- CHANGELOG.md: 0.4.27 entry.

Docs:
- setup/README.md: Maker Mode / Developer Mode section, new
  bootstrap-dev.ps1 and bootstrap-dev-mac.sh commands, updated
  file-table and testing snippets.

Refs: #296

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
@amilandi amilandi changed the title feat(setup): consolidate Windows installers into one bootstrap with in-VS-Code mode prompt Rename installer modes: Lite -> Maker (default), Standard -> Developer; consolidate installers Sep 23, 2026
Avery Milandin and others added 2 commits September 23, 2026 15:09
…rofile

Two bugs discovered during a fresh install test on the branch:

1. All three ps1 bootstraps hard-coded `SourceBaseUrl` to
   `.../main/setup`, so passing `-Branch <feature>` still pulled
   `Install-EssAdk.ps1` from `main` - defeating the purpose of the
   `-Branch` param for testing feature branches. Fix: default
   `SourceBaseUrl` to `.../<Branch>/setup` when the caller does not
   pass an explicit override.

2. `bootstrap.ps1` was splatting `SkipMakerProfile = \True` when
   invoking `Install-EssAdk.ps1`. Pre-rename that pinned Standard mode;
   post-rename it pins Developer mode - either way it silently suppresses
   the first-launch QuickPick that this PR is centered on. Fix: drop the
   pin; forward a new `-InstallMode` param instead so callers can pin a
   mode explicitly when they want to, and everyone else lands on
   `prompt` (which fires the QuickPick).

Also aligns bootstrap-lite.ps1 and bootstrap-dev.ps1 with the same
Branch-derived SourceBaseUrl pattern.

Refs: #296

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
The Windows installer installs the extension by globbing
ess-maker-profile-*.vsix in the cloned repo, so the source-side rename
in this PR never reaches installed extensions unless the checked-in
vsix is rebuilt. Replaces the stale 0.4.25 vsix with a fresh 0.4.27
build (npx @vscode/vsce package).

Refs: #296

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
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