You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: text/1160-no-more-release-train.md
+32-1Lines changed: 32 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,6 +58,7 @@ We want a workflow where blueprint changes can ship as soon as they are merged,
58
58
- Blueprint packages ship continuously from `main`.
59
59
-`ember-cli` defaults to a known-good, pinned blueprint version.
60
60
- 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).
61
62
- If pinned and latest match, do not prompt.
62
63
63
64
### Non-goals
@@ -110,6 +111,7 @@ When a user runs `ember new` or `ember addon`, `ember-cli` must:
110
111
111
112
- Use bundled version (recommended): generate with the pinned version.
112
113
- 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.
113
115
114
116
4. If the versions are the same, proceed with no prompt.
115
117
@@ -119,6 +121,7 @@ The prompt should be explicit about the tradeoff:
119
121
120
122
- Bundled: maximizes stability and matches the `ember-cli` release.
121
123
- Latest: includes the newest blueprint improvements.
124
+
- Specific version: allows the user to pick any published version from a list.
122
125
123
126
If the registry lookup fails (offline, network errors, etc.), `ember-cli` should proceed with the bundled version and must not block generation.
124
127
@@ -127,7 +130,12 @@ If the registry lookup fails (offline, network errors, etc.), `ember-cli` should
127
130
If the bundled blueprint version and latest blueprint version differ:
128
131
129
132
-`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.
131
139
132
140
If the bundled blueprint version and latest blueprint version are the same:
133
141
@@ -139,6 +147,27 @@ If the user is offline or the registry is unavailable:
139
147
-`ember new my-app`
140
148
- No prompt; generation proceeds using the bundled version.
141
149
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
+
142
171
#### Non-interactive environments
143
172
144
173
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
147
176
148
177
-`--use-latest-blueprints` (or equivalent) to force using the latest blueprint version.
149
178
179
+
To use a specific blueprint version in automation, use `--blueprint @blueprint/name@version` (the existing mechanism).
180
+
150
181
### Implementation notes (non-normative)
151
182
152
183
- 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