Conversation
…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
…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
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.
Renames the installer modes and consolidates the Windows entry points, following PM + design review.
Why the rename
/setupon 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->developerpromptis unchanged; still the default for-InstallModeso the QuickPick fires on first VS Code launch.Windows installer
Install-EssAdk.ps1:-InstallModeacceptsmaker|developer|promptplus legacylite|standard.-SkipMakerProfilenow coerces todeveloper(wasstandard).bootstrap-lite.ps1: kept at its existing URL for back-compat; pinsInstallMode=maker.bootstrap-dev.ps1(NEW): Developer-mode shortcut, mirrors bootstrap-lite pattern.Install-EssAdk.ps1with a mode parameter, no separate lite entry-point script.macOS installer
install-ess-adk.sh: newINSTALL_MODEenv var (maker|developer|prompt+ legacylite|standard).SKIP_MAKER_PROFILE=truestill works and is coerced todeveloper. Launch branches,MODE_LABEL, and settings-write are rewritten.bootstrap-lite-mac.sh: pinsINSTALL_MODE=maker.bootstrap-dev-mac.sh(NEW): Developer-mode shortcut.Extension (0.4.26 -> 0.4.27)
isLiteMode->isMakerLayout, button IDs, toast copy, config key semantics).essMaker.modeconfig enum extended to["maker","developer","lite","standard",""]so existing users' pinned settings still validate.normalizeInstallerMode()maps legacylite->makerandstandard->developerat the top offirstInstallDispatch, so upgraded users are not re-prompted.essMaker.restoreStandardLayout-> "Restore Developer Layout"; command ID is preserved so keybindings and workflows keep working.essMaker.liteMode.v1is preserved (renaming would silently reset every existing user's saved layout preference).Telemetry
installModedimension emitted by both PowerShell and bash installers (maker | developer | promptor legacylite | standard).installeridentity staysflightcheck | adk(bash telemetry still guards out legacyliteinstaller identity until macOS consolidation ships;bootstrap-lite-mac.shsetsESS_TEL_INSTALLER_OVERRIDE=liteto 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
essMaker.mode = lite | standardare silently normalized on next VS Code launch - no re-prompt, no reset of persisted layout.-SkipMakerProfileon Windows orSKIP_MAKER_PROFILE=trueon macOS keep working (both now coerce todeveloper).bootstrap-lite.ps1/bootstrap-lite-mac.shURLs are unchanged (linked from external docs).Testing
pwsh -File setup/Install-EssAdk.Tests.ps1-> 58/58 passing (added assertions for-InstallModeValidateSet, legacy coercion,bootstrap-dev.ps1,bootstrap-dev-mac.sh, macOSINSTALL_MODEhandling).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