Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .fallowrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"examples/sdk/contracts-result.ts",
"examples/sdk/batch-orchestration.ts",
"examples/sdk/ai-sdk-tools.ts",
"test/integration/*.test.ts",
"test/integration/**/*.test.ts",
"website/docs/404.mdx",
"website/rspress.config.ts"
],
Expand Down Expand Up @@ -351,7 +351,7 @@
},
{
// Host-kit seam façades: same false-positive shape as the contracts façades above — each seam names every type its re-exported functions put in a public signature, and callers use those types structurally without importing the name. unused-exports (the VALUE check) stays on.
"files": ["packages/host-kit/src/*.ts"],
"files": ["packages/host-kit/src/**/*.ts"],
"rules": {
"unused-types": "off"
}
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,14 +148,15 @@ jobs:
- name: Setup toolchain
uses: ./.github/actions/setup-node-pnpm

# The fallow audit runs in the background beside the guards below. A cold fallow run costs
# several minutes on a hosted runner: since fallow 3.20 every import re-walks the root
# tsconfig's project references.
# Run the Fallow audit beside the guards below. Wait before production-exports uses
# the same cache directory.
- name: Run Fallow audit
id: fallow-audit
background: true
env:
FALLOW_BASE: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }}
# The event base can lag behind the merge tree checked out for a PR.
# Compare with its main parent so the audit measures only the PR changes.
FALLOW_BASE: ${{ github.event_name == 'pull_request' && 'HEAD^1' || github.event.before }}
uses: ./.github/actions/run-gate
with:
gate: fallow
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@
"ai": "^7.0.68",
"eslint-plugin-no-only-tests": "^3.4.0",
"eslint-plugin-perfectionist": "^5.10.1",
"fallow": "3.32.0",
"fallow": "3.34.0",
"fast-check": "^4.9.0",
"ipaddr.js": "^2.5.0",
"jpeg-js": "^0.4.4",
Expand Down
2 changes: 2 additions & 0 deletions packages/platform-harmonyos/src/__tests__/hdc.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ test('ensureHarmonyToolchainPathConfigured defaults to the host environment', as
const toolchains = await seedDirectToolchain(mkdtempForTestSync('agent-device-hdc-host-'));
vi.stubEnv('PATH', '/usr/bin');
vi.stubEnv('HDC_SDK_PATH', toolchains);
vi.stubEnv('DEVECO_SDK_HOME', undefined);
vi.stubEnv('HARMONYOS_COMMAND_LINE_TOOLS', undefined);

await ensureHarmonyToolchainPathConfigured();

Expand Down
82 changes: 41 additions & 41 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 4 additions & 9 deletions scripts/layering/project-references.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,11 @@ test('root and examples/sdk reference exactly the workspace package set', () =>
});

test('the root build node is tsconfig.json plus references, and tsconfig.json has none', () => {
// fallow >=3.20 walks the references of the tsconfig that owns each file on every import, which
// made its resolve stage ~14x slower here, and `fr` loads every referenced project as its own
// ts.Program, which exhausts Node's default heap (#3289 CI). `extends` does not inherit
// references, so the typecheck node carries them without fallow, fr, editors, or tsdown seeing them.
// `fr` loads every referenced project as its own ts.Program, which exhausts Node's default
// heap (#3289 CI). `extends` does not inherit references, so the typecheck node carries them
// without fr, editors, or tsdown seeing them.
const rootConfig = readTsconfig('tsconfig.json');
assert.equal(
rootConfig.references,
undefined,
'references on tsconfig.json slow every fallow gate and OOM freerange',
);
assert.equal(rootConfig.references, undefined, 'references on tsconfig.json OOM freerange');
const typecheckConfig = readTsconfig('tsconfig.typecheck.json');
assert.equal(typecheckConfig.extends, './tsconfig.json');
assert.equal(
Expand Down
4 changes: 2 additions & 2 deletions tsconfig.typecheck.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
// The `tsc -b` node for the root program. References live here, not in tsconfig.json, because
// fallow and freerange read tsconfig.json and slow down or run out of memory on references.
// The `tsc -b` node for the root program. References live here because freerange reads
// tsconfig.json and runs out of memory when it loads every referenced project.
// Its own build info keeps a `tsc -p tsconfig.json` run from marking this build up to date.
"extends": "./tsconfig.json",
"compilerOptions": { "tsBuildInfoFile": "./.tmp/tsconfig.typecheck.tsbuildinfo" },
Expand Down
Loading