Skip to content

Commit 555f289

Browse files
authored
chore: update v3 release with main (#7507)
# Pull Request ## 📖 Description Brings `releases/fast-element-v3` up to date with `main`. Cherry-picks every commit landed on `main` after PR #7477 was merged (the last v3↔main sync) and adds an adaptation commit so the changes work with the v3 architecture (where `@microsoft/fast-html` was merged into `@microsoft/fast-element` under `src/declarative/`). Cherry-picked (in chronological order): - #7479 — feat: change default attribute-name-strategy from none to camelCase - #7494 — chore(deps): bump liquidjs 10.25.6 → 10.25.7 - #7501 — chore: migrate TypeScript compilation to `typescript/native-preview` (`tsgo`) - #7502 — feat: allow `fast-build` rendering without state - #7503 — docs: per-package documentation reorg (DESIGN.md/README.md and `docs/architecture/*`) - #7504 — feat: propagate shadowroot attributes - #7505 — chore: bump packages after failed publish (`fast-build` → 0.5.0) - #7469 — feat: add build utilities and SSR renderer to `@microsoft/fast-test-harness` - #7506 — chore: prepare `@microsoft/fast-test-harness` package for publishing The "applying package updates" beachball commit (`aad6f5481`) was intentionally skipped — v3 maintains its own versioning track (`fast-element@3.0.0-rc.1`, `fast-test-harness@0.0.1`) and runs its own publish. Adaptation commit highlights: - Adds a new `./declarative-syntax.js` subpath export to `@microsoft/fast-element` so tooling consumers (e.g. `fast-test-harness` build utilities) can access declarative HTML syntax constants from fast-element directly. Mirrors the existing `./declarative-utilities.js` subpath. - Re-points `fast-test-harness/src/build/generate-templates.ts` and `generate-webui-templates.ts` from `@microsoft/fast-html/syntax.js` to the new subpath. - Replaces the removed `RenderableFASTElement(...).defineAsync({ templateOptions })` pattern with v3's `Element.define()` in test fixtures and the README example. - Drops `@microsoft/fast-html` from the harness Vite optimizer exclude list. - Excludes `*.spec.ts` from the fast-element TS build (the declarative `.spec.ts` files import `@playwright/test`, whose `.d.ts` files are incompatible with `tsgo`'s stricter parser; these specs are still type-checked when run via the declarative Playwright config). - Adapted hydration marker handling in `crates/microsoft-fast-build/src/node.rs` for #7502 (kept v3's `inject_count_marker` / `data-fe="N"` style while merging in main's `Option<&mut HydrationScope>` flow). - All `packages/fast-html/*` paths from cherry-picks were dropped (the package no longer exists on v3); related `change/@microsoft-fast-html-*.json` files were either converted to `@microsoft-fast-element-*.json` or dropped where they no longer apply. ## 📑 Test Plan Run from the monorepo root on this branch: - `npm run build` — all 6 packages build successfully (fast-build, fast-element, fast-router, fast-test-harness, fast-site, fast-todo-app-example). - `@microsoft/fast-element` — 1410 chromium playwright tests + 176 declarative chromium tests pass. - `@microsoft/fast-test-harness` — 96 node unit tests + 43 chromium playwright tests pass. - `npm run biome:check` — clean. - `npm run checkchange` — passes. ## ✅ Checklist ### General - [x] I have included a change request file using `$ npm run change` - [ ] I have added tests for my changes. - [x] I have tested my changes. - [x] I have updated the project documentation to reflect my changes. - [x] I have read the [CONTRIBUTING](https://github.com/microsoft/fast/blob/main/CONTRIBUTING.md) documentation and followed the [standards](https://github.com/microsoft/fast/blob/main/CODE_OF_CONDUCT.md#our-standards) for this project.
1 parent 41800ca commit 555f289

163 files changed

Lines changed: 6383 additions & 1336 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@ Each package includes a DESIGN.md file, read that to gain a general understandin
4141
These contain domain-specific guidance. Read when performing related tasks:
4242

4343
- [TypeScript](./skills/typescript/SKILL.md) — compiler constraints, import/export conventions, decorator usage, testing patterns.
44+
- [Rust](./skills/rust/SKILL.md) — general guidance on performing updates between the crate and package.
4445
- [Shipping](./skills/shipping/SKILL.md) — pull request format, change file generation, documentation updates.
4546
- [Pull Request](./skills/fast-pull-request/SKILL.md) — generate a pull request description from the branch diff.
4647
- [Bug Report](./skills/fast-bug-report/SKILL.md) — generate a bug report issue from conversation context.
4748
- [Feature Request](./skills/fast-feature-request/SKILL.md) — generate a feature request issue from conversation context.
4849
- [Testing](./skills/testing/SKILL.md) — running tests locally and in CI, writing Playwright fixture tests.
50+
- [Documentation](./skills/documentation/SKILL.md) — adding documentation in code, markdown files in each package/crate, and the website.
4951

5052
## Commands
5153

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
name: documentation
3+
description: Add documentation for contributors and developers.
4+
---
5+
6+
Documentation exists in 3 forms, code comments, design/architectural documentation that is made up of markdown files describing code flow and core concepts (such as DESIGN.md), and the documentation website.
7+
8+
Design/architectural documentation such as DESIGN.md should always be kept up-to-date.
9+
10+
The website captures the documentation primarily for the `@microsoft/fast-element` package. Other packages are treated as tangential, so testing packages or other utilities should have their own sections.
11+
12+
The website has been written in 11ty and primarily consists of markdown files. When making changes, ensure that the website has been scanned on whichever latest major version is available. These are organized by folder, so if 1.x/2.x/3.x folders are available, you will update the documentation in the 3.x folder.
13+
14+
If you are making a breaking change, ensure the migration document has been updated.
15+
16+
All markdown documentation aside from the package/crate level DESIGN.md files are in that package/crates docs folder.
17+
18+
Any documentation created for the website should be written with the developer implementing the package in mind, it is not intended for other audiences.

.github/skills/rust/SKILL.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
description: Use this guide when working on Rust changes in the FAST monorepo.
3+
name: rust
4+
---
5+
6+
# Working with the Rust crate and the Rust NodeJS CLI
7+
8+
The primary location for the Rust logic should exist within a crate. If the logic is made accessible in the NodeJS environment via wrapping the crate and using a wasm bindgen, as much as possible any logic that exists in Rust should not be duplicated in JavaScript/TypeScript.
9+
10+
## Breaking changes
11+
12+
Understand [semver](https://semver.org/) and check the crate and package version. If the version is currently in a prerelease state, update the APIs with breaking changes as necessary and ensure that any generated pull request descriptions capture this.

.github/workflows/ci-validate-platforms.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ jobs:
7474
run: cargo install wasm-pack
7575

7676
- name: Build workspaces
77-
run: npx lage build ${{ github.event_name == 'pull_request' && '--since origin/main' || '' }} --allow-no-target-runs
77+
run: npx lage build ${{ github.event_name == 'pull_request' && '--since origin/main' || '' }} --allow-no-target-runs --verbose
7878

7979
- name: Install playwright dependencies and browsers
8080
run: |
8181
npx playwright install --with-deps
8282
8383
- name: Run tests in all Packages
84-
run: npx lage test:node test:playwright ${{ github.event_name == 'pull_request' && '--since origin/main' || '' }} --allow-no-target-runs
84+
run: npx lage test:node test:playwright ${{ github.event_name == 'pull_request' && '--since origin/main' || '' }} --allow-no-target-runs --verbose

.github/workflows/ci-validate-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ jobs:
5858
run: cargo install wasm-pack
5959

6060
- name: Build workspaces
61-
run: npx lage build ${{ github.event_name == 'pull_request' && format('--since origin/{0}', github.event.pull_request.base.ref) || '' }} --allow-no-target-runs
61+
run: npx lage build ${{ github.event_name == 'pull_request' && format('--since origin/{0}', github.event.pull_request.base.ref) || '' }} --allow-no-target-runs --verbose
6262

6363
- name: Install playwright dependencies and browsers
6464
run: |
6565
npx playwright install --with-deps
6666
6767
- name: Testing unit tests
68-
run: npx lage test:node test:chromium ${{ github.event_name == 'pull_request' && format('--since origin/{0}', github.event.pull_request.base.ref) || '' }} --allow-no-target-runs
68+
run: npx lage test:node test:chromium ${{ github.event_name == 'pull_request' && format('--since origin/{0}', github.event.pull_request.base.ref) || '' }} --allow-no-target-runs --verbose
6969

7070
- name: Testing final validation
7171
run: npm run test:validation

.github/workflows/ci-webui-integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
run: cargo install wasm-pack
4242

4343
- name: Build workspaces
44-
run: npm run build
44+
run: npm run build -- --verbose
4545

4646
- name: Install Playwright browsers
4747
run: npx playwright install --with-deps chromium
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "feat: propagate shadowroot attributes",
4+
"packageName": "@microsoft/fast-build",
5+
"email": "7559015+janechu@users.noreply.github.com",
6+
"dependentChangeType": "none"
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "none",
3+
"comment": "chore: bump packages after failed publish",
4+
"packageName": "@microsoft/fast-build",
5+
"email": "7559015+janechu@users.noreply.github.com",
6+
"dependentChangeType": "none"
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "feat: allow fast-build rendering without state; omitted CLI state no longer probes state.json",
4+
"packageName": "@microsoft/fast-build",
5+
"email": "7559015+janechu@users.noreply.github.com",
6+
"dependentChangeType": "none"
7+
}

change/@microsoft-fast-element-0e87a967-3dbb-4010-9c3f-c5dad8ef3532.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"type": "major",
3-
"comment": "remove FASTGlobal version tracking",
2+
"type": "prerelease",
3+
"comment": "BREAKING CHANGE: remove FASTGlobal version tracking",
44
"packageName": "@microsoft/fast-element",
55
"email": "7559015+janechu@users.noreply.github.com",
66
"dependentChangeType": "none"

0 commit comments

Comments
 (0)