|
7 | 7 |
|
8 | 8 | --- |
9 | 9 |
|
10 | | -## Command Verb — Decision Required |
| 10 | +## Command Verb — Under Discussion |
11 | 11 |
|
12 | | -> **This decision drives the rest of the document.** The verb chosen here determines the command or subcommand name, class names, CLI surface, and whether it collides with the in-flight templates workload. |
| 12 | +> **This decision drives the rest of the document.** The verb chosen here determines the command name, class names, CLI surface, and whether it collides with the in-flight templates workload. |
13 | 13 |
|
14 | | -This design proposes **`templates`** as the subcommand verb (`func new templates`). However, there is a naming conflict: a separate templates workload is in flight that provides templating (engine, parameterization, etc.). Using `templates` for this command risks conceptual and CLI-surface collision with that workload. |
| 14 | +Development is proceeding with **`quickstart`** as the working name. This is a **top-level command** (`func quickstart`) delivered as a workload — not a subcommand of `func new`. The final verb is still under discussion. |
15 | 15 |
|
16 | 16 | | Candidate | Full Command | Subcommands | Pros | Cons | |
17 | 17 | | --- | --- | --- | --- | --- | |
18 | | -| **`templates`** (proposed) | `func new templates` | `list`, `info` | Familiar term; matches industry use for e2e prod ready apps | Collides with templates workload; | |
19 | | -| **`sample`** | `func new sample` | `list`, `info` | These are sample repos; no overloading of "template" | Might imply "not production-ready" | |
20 | | -| **`quickstart`** | `func quickstart` | `list`, `info` | Clear intent; aligns with Azure Samples naming (`*-quickstart-*-azd`) | Longer to type; top-level only (not under `func new`) | |
21 | | -| **`bootstrap`** | `func new bootstrap` | `list`, `info` | Accurate for "set up a project from scratch" | Less discoverable; not a common Azure CLI verb | |
22 | | -| **`clone`** | `func new clone` | `list`, `info` | Technically accurate (it clones a repo) | Implies git; doesn't convey curation or discovery | |
| 18 | +| **`quickstart`** (working name) | `func quickstart` | `list`, `info` | Clear intent; aligns with Azure Samples naming (`*-quickstart-*-azd`); top-level; no collision with templates workload | Longer to type; may imply "beginner-only" and limit room for advanced samples | |
| 19 | +| **`templates`** | `func templates` | `list`, `info` | Industry standard (Vercel, bolt.new, AZD Templates, AI Template Gallery all use "templates"); VS Code extension already calls it "Template Gallery"; doesn't limit scope to quickstarts | Collides conceptually with in-flight templates workload that provides parameterized per-function scaffolding | |
| 20 | +| **`sample`** | `func sample` | `list`, `info` | These are sample repos; no overloading of "template" | Might imply "not production-ready" | |
| 21 | +| **`bootstrap`** | `func bootstrap` | `list`, `info` | Accurate for "set up a project from scratch" | Less discoverable; not a common Azure CLI verb | |
23 | 22 |
|
24 | | -**Recommendation:** `templates` — this is the industry used term for scaffolding a new project, including production-ready starting points. We will need resolve conflict with the in-flight templates workload and establish distinction. |
25 | | - |
26 | | -> **Impact of verb change:** The verb is used in the subcommand name, class names (`TemplatesCommand` → `SampleCommand`), service names, and all CLI examples throughout this document. The design is otherwise identical regardless of verb chosen. Swapping the verb is a find-and-replace — no architectural changes. |
| 23 | +> **Impact of verb change:** The verb is used in the command name, class names (`QuickstartCommand` → `TemplatesCommand`), service names, and all CLI examples throughout this document. The design is otherwise identical regardless of verb chosen. Swapping the verb is a find-and-replace — no architectural changes. |
27 | 24 |
|
28 | 25 | --- |
29 | 26 |
|
30 | 27 | ## Table of Contents |
31 | 28 |
|
32 | | -- [Command Verb — Decision Required](#command-verb--decision-required) |
| 29 | +- [Command Verb — Under Discussion](#command-verb--under-discussion) |
33 | 30 | - [Problem Statement](#problem-statement) |
34 | 31 | - [Goals / Non-Goals](#goals--non-goals) |
35 | 32 | - [Proposed Design](#proposed-design) |
36 | 33 | - [Command Tree](#command-tree) |
37 | 34 | - [New Services](#new-services) |
38 | 35 | - [ITemplateManifestService](#itemplatemanifestservice) |
| 36 | + - [Release & Compliance Model](#release--compliance-model) |
39 | 37 | - [Runtime-to-Language Mapping](#runtime-to-language-mapping) |
40 | 38 | - [ITemplateFunctionScaffolder](#itemplatefunctionscaffolder) |
| 39 | + - [Download Strategy](#download-strategy---fetch-githttp) |
| 40 | + - [Git Process Requirements](#git-process-requirements) |
41 | 41 | - [User Experience Flow](#user-experience-flow) |
42 | 42 | - [Execution Flow](#execution-flow) |
43 | 43 | - [Manifest Cache Flow](#manifest-cache-flow) |
|
0 commit comments