Skip to content

Commit f387ed7

Browse files
ef4kategengler
authored andcommitted
[bugfix release] Fix implicit-modules naming
The bug here is: - in a classic build - with use-ember-modules enabled - a v1 addon that does not have a dependency on ember-auto-import - tries to access a module from ember that nobody else was already importing via ember-auto-import This case is supposed to work because of the implicit-modules list defined in lib/index.js. But that list had several mismatches between the actual files in `dist` and the way they're spelled in lib/index.js. ember-auto-import cares about the difference. If we backport this (possibly as far as 6.10, since that's where use-ember-modules is introduced), we need to be aware of making this list match the actual `dist` produced on that ember version. These files changed at the point where the glimmer packages moved into the monorepo. (cherry picked from commit cbb4e31)
1 parent 0cfdc73 commit f387ed7

4 files changed

Lines changed: 59 additions & 25 deletions

File tree

lib/index.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -175,31 +175,31 @@ const shim = addonV1Shim(path.join(__dirname, '..'), {
175175
'./dist/packages/@ember/utils/lib/is_present.js',
176176
'./dist/packages/@ember/utils/lib/type-of.js',
177177
'./dist/packages/@ember/version/index.js',
178-
'./dist/packages/@glimmer/destroyable.js',
179-
'./dist/packages/@glimmer/encoder.js',
180-
'./dist/packages/@glimmer/env.js',
181-
'./dist/packages/@glimmer/global-context.js',
182-
'./dist/packages/@glimmer/manager.js',
183-
'./dist/packages/@glimmer/node.js',
184-
'./dist/packages/@glimmer/opcode-compiler.js',
185-
'./dist/packages/@glimmer/owner.js',
186-
'./dist/packages/@glimmer/program.js',
187-
'./dist/packages/@glimmer/reference.js',
188-
'./dist/packages/@glimmer/runtime.js',
178+
'./dist/packages/@glimmer/destroyable/index.js',
179+
'./dist/packages/@glimmer/encoder/index.js',
180+
'./dist/packages/@glimmer/env/index.js',
181+
'./dist/packages/@glimmer/global-context/index.js',
182+
'./dist/packages/@glimmer/manager/index.js',
183+
'./dist/packages/@glimmer/node/index.js',
184+
'./dist/packages/@glimmer/opcode-compiler/index.js',
185+
'./dist/packages/@glimmer/owner/index.js',
186+
'./dist/packages/@glimmer/program/index.js',
187+
'./dist/packages/@glimmer/reference/index.js',
188+
'./dist/packages/@glimmer/runtime/index.js',
189189
'./dist/packages/@glimmer/tracking/index.js',
190-
'./dist/packages/@glimmer/tracking/primitives/cache.js',
191-
'./dist/packages/@glimmer/util.js',
192-
'./dist/packages/@glimmer/validator.js',
193-
'./dist/packages/@glimmer/vm.js',
194-
'./dist/packages/@glimmer/wire-format.js',
195-
'./dist/packages/@simple-dom/document.js',
190+
'./dist/packages/@glimmer/tracking/primitives/cache/index.js',
191+
'./dist/packages/@glimmer/util/index.js',
192+
'./dist/packages/@glimmer/validator/index.js',
193+
'./dist/packages/@glimmer/vm/index.js',
194+
'./dist/packages/@glimmer/wire-format/index.js',
195+
'./dist/packages/@simple-dom/document/index.js',
196196
'./dist/packages/backburner.js/index.js',
197-
'./dist/packages/dag-map.js',
197+
'./dist/packages/dag-map/index.js',
198198
'./dist/packages/ember/index.js',
199199
'./dist/packages/ember/version.js',
200-
'./dist/packages/route-recognizer.js',
201-
'./dist/packages/router_js.js',
202-
'./dist/packages/rsvp.js',
200+
'./dist/packages/route-recognizer/index.js',
201+
'./dist/packages/router_js/index.js',
202+
'./dist/packages/rsvp/index.js',
203203
],
204204
'implicit-test-modules': [
205205
'./dist/packages/ember-testing/index.js',

pnpm-lock.yaml

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

smoke-tests/scenarios/basic-test.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,20 @@ function basicTest(scenarios: Scenarios, appName: string) {
8686
},
8787
},
8888
tests: {
89+
unit: {
90+
'v1-addon-without-eai-test.js': `
91+
import { module, test } from 'qunit';
92+
import { accessGlimmerValidator } from 'v1-addon-without-eai';
93+
module('Acceptance | v1-addon-without-eai', function (hooks) {
94+
// a v1 addon without ember-auto-import needs to maintain access
95+
// to all the backward-compatible ember-provided packages, regardless
96+
// of our build environment and optional-features.
97+
test('can access things from ember', function(assert) {
98+
assert.strictEqual(accessGlimmerValidator(), 'it works');
99+
})
100+
});
101+
`,
102+
},
89103
acceptance: {
90104
'example-gjs-route-test.js': `
91105
import { module, test } from 'qunit';
@@ -226,6 +240,23 @@ function basicTest(scenarios: Scenarios, appName: string) {
226240
},
227241
},
228242
});
243+
244+
let v1AddonWithoutEAI = project.addDependency('v1-addon-without-eai');
245+
v1AddonWithoutEAI.pkg.keywords = ['ember-addon'];
246+
v1AddonWithoutEAI.linkDependency('ember-cli-babel', { baseDir: __dirname } );
247+
v1AddonWithoutEAI.mergeFiles({
248+
'index.js': 'module.exports = { name: "v1-addon-without-eai" }',
249+
addon: {
250+
'index.js': `
251+
import { consumeTag } from '@glimmer/validator';
252+
export function accessGlimmerValidator() {
253+
if (typeof consumeTag === 'function') {
254+
return "it works"
255+
}
256+
}
257+
`
258+
}
259+
});
229260
})
230261
.forEachScenario((scenario) => {
231262
Qmodule(scenario.name, function (hooks) {

smoke-tests/scenarios/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"@swc/core": "^1.4.17",
1010
"@swc/types": "^0.1.6",
1111
"@types/node": "^20.12.7",
12+
"ember-cli-babel": "^8.3.1",
1213
"ember-cli-htmlbars-6": "npm:ember-cli-htmlbars@^6.0.0",
1314
"qunit": "^2.20.1",
1415
"scenario-tester": "^4.0.0",

0 commit comments

Comments
 (0)