Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
58e059c
starting to submodule glimmer-vm
ef4 Mar 17, 2025
959440a
committing other side
ef4 Mar 17, 2025
1442a7c
include glimmer-vm/packages in build
ef4 Mar 17, 2025
e4c26cf
working on directly loading @glimmer/compiler into node
ef4 Mar 17, 2025
49a1bb4
progress
ef4 Apr 29, 2025
8e06a94
Merge remote-tracking branch 'origin/main' into glimmervm-submodule
ef4 May 6, 2025
f4462e9
Merge remote-tracking branch 'origin/main' into glimmervm-submodule
ef4 Aug 12, 2025
f40db2f
post-merge dep update
ef4 Aug 12, 2025
c6cbe78
progress on running the glimmer-vm tests
ef4 Aug 12, 2025
581650f
back out the change that made the top-level vm dir a package
ef4 Aug 12, 2025
c959bda
update submodule ref
ef4 Aug 19, 2025
1ea8bbf
provide VM_LOCAL_DEV
ef4 Sep 2, 2025
699eebb
getting type-checking for glimmer-vm working here
ef4 Sep 2, 2025
b70be1f
adding separate type publishing config for vm
ef4 Sep 9, 2025
3974034
Merge branch 'main' into glimmervm-submodule
ef4 Sep 30, 2025
8038bf8
update glimmer-vm ref
ef4 Sep 30, 2025
1492d43
post-merge fixes
ef4 Sep 30, 2025
0235065
progress on build:types
ef4 Sep 30, 2025
28a0ac1
adding missing type dependencies
ef4 Sep 30, 2025
d54fc80
type tests are passing now
ef4 Sep 30, 2025
e950eb6
fix resolution of glimmer-vm packages during build
ef4 Sep 30, 2025
b5b0b7d
merged upstream
ef4 Oct 7, 2025
931104e
don't need this anymore
ef4 Oct 7, 2025
6dce10a
add submodule to type-checking ci
ef4 Oct 7, 2025
bfd8748
enabling submodules for more steps
ef4 Oct 7, 2025
cea0651
Merge remote-tracking branch 'origin/main' into glimmervm-submodule
ef4 Oct 7, 2025
c1ce12c
don't error on test entrypoints
ef4 Oct 7, 2025
2ab035d
Merge remote-tracking branch 'origin/main' into glimmervm-submodule
ef4 Oct 14, 2025
e7deb82
need NODE_ENV when building the test suite
ef4 Nov 4, 2025
991e95c
don't rebuild internal types under every TS in the matrix
ef4 Nov 4, 2025
6ab07d2
lift prettierignore rules up to top
ef4 Nov 4, 2025
58f2ba8
progress on linting
ef4 Nov 4, 2025
fc05b14
temporarily disable linting
ef4 Nov 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env.development
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VM_LOCAL_DEV = true
50 changes: 39 additions & 11 deletions .github/workflows/ci-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:

permissions:
contents: read

jobs:
lint:
name: Linting
Expand All @@ -14,9 +14,12 @@ jobs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: linting
run: pnpm lint
# Temporarily disabled to see the later parts of CI
# - name: linting
# run: pnpm lint
- id: set-matrix
working-directory: smoke-tests/scenarios
run: |
Expand All @@ -28,12 +31,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build types
run: pnpm build:types
- name: Check published and internal types
run: pnpm type-check

- name: Check internal types
run: pnpm type-check:internals
- name: Check published types
run: pnpm type-check:types

types-range:
name: Type Checking (other supported versions)
runs-on: ubuntu-latest
Expand All @@ -43,25 +50,31 @@ jobs:
ts-version: [ '5.2', '5.3', '5.4', '5.5', '5.6', '5.7', '5.8', '5.9' ]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build stable type definitions
run: pnpm build:types
- name: install TS@${{matrix.ts-version}}
run: pnpm add --save-dev --workspace-root typescript@${{ matrix.ts-version }}
- name: Check published and internal types with TS@${{matrix.ts-version}}
run: pnpm type-check
- name: Check published types
run: pnpm type-check:types

basic-test:
name: Basic Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build
run: pnpm vite build --mode=development
env:
NODE_ENV: development
- name: test
run: pnpm test

variant-tests:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
Expand All @@ -87,9 +100,13 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build
run: pnpm vite build --mode=${{ matrix.BUILD || 'development' }}
env:
NODE_ENV: ${{ matrix.BUILD || 'development' }}
- name: test
env:
ALL_DEPRECATIONS_ENABLED: ${{ matrix.ALL_DEPRECATIONS_ENABLED }}
Expand All @@ -98,17 +115,20 @@ jobs:
RAISE_ON_DEPRECATION: ${{ matrix.RAISE_ON_DEPRECATION }}

run: pnpm test

browserstack-test:
name: Browserstack Tests (Safari, Edge)
runs-on: ubuntu-latest
needs: [ basic-test, lint, types ]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build
env:
ALL_SUPPORTED_BROWSERS: true
NODE_ENV: development
run: pnpm vite build --mode=development

- name: Set BrowserStack Local Identifier
Expand All @@ -134,6 +154,8 @@ jobs:
matrix: ${{fromJson(needs.lint.outputs.matrix)}}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
with:
use_lockfile: "false"
Expand All @@ -150,6 +172,8 @@ jobs:
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build
env:
Expand All @@ -164,6 +188,8 @@ jobs:
needs: [lint]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: test
run: pnpm test:blueprints
Expand All @@ -174,6 +200,8 @@ jobs:
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build
run: pnpm vite build --mode=development
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ jobs:
if: github.event_name == 'push' && contains(github.ref, 'cron') != true
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build for publish
run: node bin/build-for-publishing.js
Expand All @@ -47,6 +49,8 @@ jobs:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: build for publish
run: node bin/build-for-publishing.js
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "glimmer-vm"]
path = glimmer-vm
url = git@github.com:glimmerjs/glimmer-vm.git
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ docs/
CHANGELOG.md
package.json
pnpm-lock.yaml
glimmer-vm/**/*.md
glimmer-vm/**/*.yaml
2 changes: 1 addition & 1 deletion babel.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default {
{
compilerPath: resolve(
dirname(fileURLToPath(import.meta.url)),
'./broccoli/glimmer-template-compiler'
'./broccoli/glimmer-template-compiler.mjs'
),
},
],
Expand Down
7 changes: 1 addition & 6 deletions babel.test.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
*/

import { createRequire } from 'node:module';
import vmBabelPlugins from '@glimmer/vm-babel-plugins';
import baseConfig from './babel.config.mjs';

// eslint-disable-next-line no-redeclare
Expand All @@ -28,9 +27,5 @@ export default {
],
],

plugins: [
...baseConfig.plugins,
buildDebugMacroPlugin(!isProduction),
...vmBabelPlugins({ isDebug: !isProduction }),
],
plugins: [...baseConfig.plugins, buildDebugMacroPlugin(!isProduction)],
};
4 changes: 0 additions & 4 deletions broccoli/glimmer-template-compiler.js

This file was deleted.

8 changes: 8 additions & 0 deletions broccoli/glimmer-template-compiler.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import '@swc-node/register/esm-register';

// this needs to be async because otherwise the esm-register above hasn't taken
// effect yet.
const minimal = await import('../packages/ember-template-compiler/minimal.ts');

const { precompile, _buildCompileOptions, _preprocess, _print } = minimal;
export { precompile, _buildCompileOptions, _preprocess, _print };
15 changes: 15 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ export default [
'**/smoke-tests/',
'**/types/',
'**/type-tests/',
'glimmer-vm/repo-metadata/',
'glimmer-vm/**/rollup.config.mjs',
'glimmer-vm/packages/@glimmer/vm-babel-plugins/',
],
},
pluginJs.configs.recommended,
Expand Down Expand Up @@ -130,6 +133,17 @@ export default [
'@typescript-eslint/no-unsafe-declaration-merging': 'off',
},
},
{
files: ['glimmer-vm/**/*.ts'],
languageOptions: {
ecmaVersion: 5,
sourceType: 'module',
parserOptions: {
project: './tsconfig-vm.json',
tsconfigRootDir: __dirname,
},
},
},
{
// TODO: files: ['packages/**/*.[jt]s'],
files: ['packages/**/*.js'],
Expand Down Expand Up @@ -208,6 +222,7 @@ export default [
'broccoli/**/*.js',
'**/ember-cli-build.js',
'**/*.cjs',
'glimmer-vm/server/**/*.js',
],
},
{
Expand Down
1 change: 1 addition & 0 deletions glimmer-vm
Submodule glimmer-vm added at fa05a1
24 changes: 4 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,30 +60,14 @@
"test:browserstack": "node bin/run-browserstack-tests.js",
"test:wip": "vite build --mode development --minify false && testem ci",
"type-check:internals": "tsc --noEmit",
"type-check:types": "pnpm build:types && tsc --noEmit --project type-tests",
"type-check:types": "tsc --noEmit --project type-tests",
"type-check": "npm-run-all type-check:*",
"unlink:all": "node bin/unlink-all.mjs"
},
"dependencies": {
"@babel/core": "^7.24.4",
"@ember/edition-utils": "^1.2.0",
"@embroider/addon-shim": "^1.9.0",
"@glimmer/compiler": "0.94.11",
"@glimmer/destroyable": "0.94.8",
"@glimmer/global-context": "0.93.4",
"@glimmer/interfaces": "0.94.6",
"@glimmer/manager": "0.94.10",
"@glimmer/node": "0.94.10",
"@glimmer/opcode-compiler": "0.94.10",
"@glimmer/owner": "0.93.4",
"@glimmer/program": "0.94.10",
"@glimmer/reference": "0.94.9",
"@glimmer/runtime": "0.94.11",
"@glimmer/syntax": "0.95.0",
"@glimmer/util": "0.94.8",
"@glimmer/validator": "0.95.0",
"@glimmer/vm": "0.94.8",
"@glimmer/vm-babel-plugins": "0.93.5",
"@simple-dom/interface": "^1.4.0",
"backburner.js": "^2.8.0",
"broccoli-file-creator": "^2.1.1",
Expand Down Expand Up @@ -114,7 +98,7 @@
"@embroider/macros": "^1.18.0",
"@embroider/shared-internals": "^2.5.0",
"@eslint/js": "^9.21.0",
"@glimmer/component": "workspace:^",
"@glimmer/component": "workspace:*",
"@rollup/plugin-babel": "^6.0.4",
"@simple-dom/document": "^1.4.0",
"@swc-node/register": "^1.6.8",
Expand All @@ -125,7 +109,7 @@
"ast-types": "^0.14.2",
"auto-dist-tag": "^2.1.1",
"babel-plugin-debug-macros": "1.0.0",
"babel-plugin-ember-template-compilation": "^2.1.1",
"babel-plugin-ember-template-compilation": "3.0.0-alpha.4",
"brotli": "^1.3.3",
"dag-map": "^2.0.2",
"decorator-transforms": "2.0.0",
Expand Down Expand Up @@ -167,7 +151,7 @@
"terser": "^5.42.0",
"testem": "^3.10.1",
"testem-failure-only-reporter": "^1.0.0",
"typescript": "5.2",
"typescript": "^5.7.3",
"typescript-eslint": "^8.26.0",
"vite": "^5.4.12"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import Service, { service } from '@ember/service';
import type Owner from '@ember/owner';

class RenderComponentTestCase extends AbstractStrictTestCase {
component: (RenderResult & { rerender: () => void }) | undefined;
declare component: (RenderResult & { rerender: () => void }) | undefined;
owner: Owner;

constructor(assert: QUnit['assert']) {
Expand Down
36 changes: 19 additions & 17 deletions packages/@ember/-internals/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,29 +37,31 @@
"@ember/modifier": "workspace:*",
"@ember/object": "workspace:*",
"@ember/owner": "workspace:*",
"@ember/reactive": "workspace:*",
"@ember/routing": "workspace:*",
"@ember/runloop": "workspace:*",
"@ember/service": "workspace:*",
"@ember/template-factory": "workspace:*",
"@ember/utils": "workspace:*",
"@ember/version": "workspace:*",
"@glimmer/compiler": "0.94.11",
"@glimmer/component": "workspace:^",
"@glimmer/destroyable": "0.94.8",
"@glimmer/env": "^0.1.7",
"@glimmer/global-context": "0.93.4",
"@glimmer/interfaces": "0.94.6",
"@glimmer/manager": "0.94.10",
"@glimmer/node": "0.94.10",
"@glimmer/opcode-compiler": "0.94.10",
"@glimmer/owner": "0.93.4",
"@glimmer/program": "0.94.10",
"@glimmer/reference": "0.94.9",
"@glimmer/runtime": "0.94.11",
"@glimmer/syntax": "0.95.0",
"@glimmer/util": "0.94.8",
"@glimmer/validator": "0.95.0",
"@glimmer/vm": "0.94.8",
"@glimmer/compiler": "workspace:*",
"@glimmer/component": "workspace:*",
"@glimmer/destroyable": "workspace:*",
"@glimmer/env": "workspace:*",
"@glimmer/global-context": "workspace:*",
"@glimmer/interfaces": "workspace:*",
"@glimmer/manager": "workspace:*",
"@glimmer/node": "workspace:*",
"@glimmer/opcode-compiler": "workspace:*",
"@glimmer/owner": "workspace:*",
"@glimmer/program": "workspace:*",
"@glimmer/reference": "workspace:*",
"@glimmer/runtime": "workspace:*",
"@glimmer/syntax": "workspace:*",
"@glimmer/tracking": "workspace:*",
"@glimmer/util": "workspace:*",
"@glimmer/validator": "workspace:*",
"@glimmer/vm": "workspace:*",
"@simple-dom/interface": "^1.4.0",
"backburner.js": "^2.7.0",
"dag-map": "^2.0.2",
Expand Down
10 changes: 5 additions & 5 deletions packages/@ember/application/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
"@ember/runloop": "workspace:*",
"@ember/service": "workspace:*",
"@ember/utils": "workspace:*",
"@glimmer/destroyable": "0.94.8",
"@glimmer/env": "^0.1.7",
"@glimmer/owner": "0.93.4",
"@glimmer/util": "0.94.8",
"@glimmer/validator": "0.95.0",
"@glimmer/destroyable": "workspace:*",
"@glimmer/env": "workspace:*",
"@glimmer/owner": "workspace:*",
"@glimmer/util": "workspace:*",
"@glimmer/validator": "workspace:*",
"backburner.js": "^2.7.0",
"dag-map": "^2.0.2",
"ember": "workspace:*",
Expand Down
Loading
Loading