Skip to content

Commit 0451e1e

Browse files
Merge pull request #1172 from emberjs/copilot/sub-pr-1160
[WIP] Add prose to the proposal for moving blueprints off the release train
2 parents 9b7b4e9 + ef10415 commit 0451e1e

1 file changed

Lines changed: 32 additions & 1 deletion

File tree

text/1160-no-more-release-train.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ We want a workflow where blueprint changes can ship as soon as they are merged,
5858
- Blueprint packages ship continuously from `main`.
5959
- `ember-cli` defaults to a known-good, pinned blueprint version.
6060
- Users may choose the latest blueprint version at generation time.
61+
- Users may specify any specific blueprint version at generation time—interactively via a version selection UI, or non-interactively via `--blueprint @blueprint/name@version` (e.g. for testing).
6162
- If pinned and latest match, do not prompt.
6263

6364
### Non-goals
@@ -110,6 +111,7 @@ When a user runs `ember new` or `ember addon`, `ember-cli` must:
110111

111112
- Use bundled version (recommended): generate with the pinned version.
112113
- Use latest version: generate with the latest published blueprint version.
114+
- Choose a specific version: present a version selection UI (e.g. a list of recent published versions from the registry) so the user can pick an exact version.
113115

114116
4. If the versions are the same, proceed with no prompt.
115117

@@ -119,6 +121,7 @@ The prompt should be explicit about the tradeoff:
119121

120122
- Bundled: maximizes stability and matches the `ember-cli` release.
121123
- Latest: includes the newest blueprint improvements.
124+
- Specific version: allows the user to pick any published version from a list.
122125

123126
If the registry lookup fails (offline, network errors, etc.), `ember-cli` should proceed with the bundled version and must not block generation.
124127

@@ -127,7 +130,12 @@ If the registry lookup fails (offline, network errors, etc.), `ember-cli` should
127130
If the bundled blueprint version and latest blueprint version differ:
128131

129132
- `ember new my-app`
130-
- Prompt: Use bundled version (vX.Y.Z, recommended) / Use latest version (vX.Y.Z)
133+
- Prompt: Use bundled version (vX.Y.Z, recommended) / Use latest version (vX.Y.Z) / Choose a specific version…
134+
135+
If the user selects "Choose a specific version":
136+
137+
- `ember new my-app` → selects "Choose a specific version"
138+
- Secondary prompt: presents a list of recent published blueprint versions for selection; generation proceeds with the chosen version.
131139

132140
If the bundled blueprint version and latest blueprint version are the same:
133141

@@ -139,6 +147,27 @@ If the user is offline or the registry is unavailable:
139147
- `ember new my-app`
140148
- No prompt; generation proceeds using the bundled version.
141149

150+
If the user specifies a specific blueprint version:
151+
152+
- `ember new my-app --blueprint @ember/app-blueprint@1.2.3`
153+
- No prompt; generation proceeds using blueprint version `1.2.3`.
154+
155+
#### Specifying a specific blueprint version
156+
157+
Users can select an exact blueprint version in two ways:
158+
159+
**Interactive mode:** When the interactive prompt is shown, users may choose "Choose a specific version". `ember-cli` fetches a list of recent published versions from the registry and presents them as a selectable list. After the user picks a version, generation proceeds with that version and no further prompt is shown.
160+
161+
> **Note:** The interactive version selection UI described here is contingent on out-of-scope work to make blueprint generation generally interactive (i.e. the broader effort to add interactive prompting to `ember new`/`ember addon` flows). That work is a prerequisite for this UI and is not defined by this RFC.
162+
163+
**Non-interactive mode:** Users can pass a version-qualified package specifier to the existing `--blueprint` flag:
164+
165+
```
166+
ember new my-app --blueprint @ember/app-blueprint@1.2.3
167+
```
168+
169+
`ember-cli` must skip the interactive prompt when a versioned blueprint is explicitly specified this way.
170+
142171
#### Non-interactive environments
143172

144173
When `ember-cli` is running in a non-interactive environment (e.g. CI), the default must be bundled to preserve determinism.
@@ -147,6 +176,8 @@ This RFC recommends (but does not require) an explicit opt-in flag to avoid rely
147176

148177
- `--use-latest-blueprints` (or equivalent) to force using the latest blueprint version.
149178

179+
To use a specific blueprint version in automation, use `--blueprint @blueprint/name@version` (the existing mechanism).
180+
150181
### Implementation notes (non-normative)
151182

152183
- Blueprint packages can be installed into the project being generated (or into a temporary location) and executed similarly to how built-in blueprints work today.

0 commit comments

Comments
 (0)