chore: update v3 release with main#7477
Merged
Merged
Conversation
# Pull Request ## 📖 Description This change updates the `webui` dependency to 0.0.10. ## 📑 Test Plan This will allow for us to update our integration tests. ## ✅ 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. - [ ] 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.
# Pull Request ## 📖 Description This change adds an "all" benchmark that includes all other benchmark components to allow for better performance benchmarking against multiple components. ### 🎫 Issues Further work on #7248 ## 👩💻 Reviewer Notes This fills a gap where instead of multiple of the same component being iterated on this is all of the components. This should show more meaningful results for performance checking against things like many different components on a page. ## ✅ Checklist ### General - [ ] I have included a change request file using `$ npm run change` - [ ] I have added tests for my changes. - [x] I have tested my changes. - [ ] 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.
…7459) # Pull Request ## 📖 Description Moves the private `@microsoft/fast-bench` package from `packages/bench/` to `sites/benchmarks/` to better reflect its role as an internal site/tool rather than a publishable package. Also simplifies the root `package.json` workspaces by using glob patterns (`sites/*`, `examples/*`) instead of listing each workspace explicitly. **Changes:** - Move `packages/bench/` → `sites/benchmarks/` via `git mv` - Update root `package.json` workspaces to use `sites/*` and `examples/*` globs - Update `copilot-instructions.md` to reflect new location - Update `README.md` folder path reference - Regenerate `package-lock.json` ## 📑 Test Plan - All existing tests pass — the bench package is private with no dependents - `npm run checkchange` confirms no change files are needed (private package excluded from beachball scope) - Workspace resolution verified via `npm ls` ## ✅ 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.
# Pull Request ## 📖 Description As the `@microsoft/fast-element` package moves towards a declarative templating solution, the `@microsoft/fast-ssr` is being removed. We have posted and published a deprecation notice with a project that will fill this gap. ## 👩💻 Reviewer Notes This is a simple removal. ## ✅ 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.
# Pull Request
## 📖 Description
Adds a `properties` key to the `ObserverMapConfig` interface in `@microsoft/fast-html` so that developers can opt specific root properties and nested sub-paths in or out of automatic observer-map observation, rather than the current all-or-nothing approach.
Each path entry can be:
- **`true`** — observe this path and all descendants
- **`false`** — skip this path and all descendants
- **`ObserverMapPathNode`** — an object with optional `$observe` boolean and child overrides, enabling alternating opt-in/opt-out to arbitrary depth
When `properties` is omitted (`observerMap: {}` or `observerMap: "all"`), current behavior is preserved. When `properties` is present but empty (`{ properties: {} }`), no root properties are observed.
### 🎫 Issues
- Resolves #7445
## 👩💻 Reviewer Notes
Key areas to review:
- **`observer-map.ts`**: New `hasObservedPath` helper and config filtering logic in `defineProperties()`
- **`utilities.ts`**: Config threading through the proxy system (`assignObservables`, `assignProxyToItemsInObject`, `assignProxy`), particularly the `set` trap changes that skip notification for excluded properties
- **`template.ts`**: New types (`ObserverMapPathEntry`, `ObserverMapPathNode`) and config extraction for `ObserverMap` constructor
## 📑 Test Plan
- All 289 existing + new Chromium tests pass
- New unit tests in `observer-map.spec.ts` covering:
- Skipping unlisted root properties
- Skipping `false` root properties
- Observe-all with empty config (`{}`)
- Observe-nothing with empty properties (`{ properties: {} }`)
- New fixture tests in `observer-map-properties/` covering:
- Selective root property observation
- Excluded subtrees (`false`)
- Re-included leaf within `$observe: false` branch
- Unlisted root properties remaining unobserved
- Array observation with selective config
- Empty config object backward compatibility
## ✅ Checklist
### General
- [x] I have included a change request file using `$ npm run change`
- [x] 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.
# Pull Request ## 📖 Description Adds a contributor-oriented `DESIGN.md` architecture document for the `@microsoft/fast-test-harness` package. This document describes the internal architecture of the test harness, covering: - High-level overview of CSR and SSR rendering modes - Module map and package structure - Fixture system (`CSRFixture`, `SSRFixture`, fixture options) - Custom Playwright assertions (`toHaveCustomState`) - Express + Vite server architecture and request flows - Consumer-owned SSR contract (required test directory files) - SSR rendering utilities and DSD template processing - Asset resolution helpers - Shared Playwright and Vite configuration ## 👩💻 Reviewer Notes This is a documentation-only change. The `DESIGN.md` follows the same structure and conventions as the existing `DESIGN.md` files in `packages/fast-build`, `packages/fast-element`, `packages/fast-html`, and `crates/microsoft-fast-build`. ## 📑 Test Plan Documentation-only change — no code changes. All existing tests continue to pass. ## ✅ Checklist ### General - [ ] I have included a change request file using `$ npm run change` - [ ] I have added tests for my changes. - [ ] 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.
…derstanding of the project (#7468) # Pull Request ## 📖 Description This change updates skills and instructions for AI to better understand the project and update it when making changes. ## ✅ Checklist ### General - [ ] 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.
…ng (#7473) # Pull Request ## 📖 Description Replace `rollup-plugin-filesize` with an esbuild-based bundle size measurement script. The new script (`packages/fast-element/scripts/measure-sizes.js`) measures minified, gzip, and brotli sizes for the core bundle and 13 individually tree-shaken exports (FASTElement, Updates, Observable, observable, attr, children, css, ref, slotted, volatile, when, html, repeat). Results are saved to `SIZES.md` and surfaced on the documentation site as a new Package Sizes page under Resources. ### 🎫 Issues * Resolves #7249 ## 👩💻 Reviewer Notes The `generate-docs.cjs` prebuild script copies `SIZES.md` from the fast-element package and wraps it with 11ty frontmatter to create the docs page. The introduction page now links to the Package Sizes page instead of hardcoding size numbers. ## 📑 Test Plan All existing tests pass. Build produces `SIZES.md` with correct size data and the website builds the new package-sizes page successfully. ## ✅ 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. ## ⏭ Next Steps * Investigate reducing size due to the use of `requestIdleCallback` (per issue #7249) * Consider adding type exports to the size tracking (per issue #7249, under consideration)
# Pull Request ## 📖 Description The GitHub pages deploy pipeline uses NodeJS version 20 which fails on scripts that use globSync, this change updates to version 22 with separate actions to pin the version. ## ✅ Checklist ### General - [ ] I have included a change request file using `$ npm run change` - [ ] I have added tests for my changes. - [x] I have tested my changes. - [ ] 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. ## ⏭ Next Steps - Deploy GitHub pages
Resolve merge conflicts keeping main's latest changes including RenderableFASTElement pattern, export sizes docs, parameterized version in generate-docs, and updated schema reference. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The release branch has a different API surface than main for fast-element (HydrationTracker vs HydratableElementController, register vs registerAsync, no RenderableFASTElement). Use the release branch versions for files that depend on these APIs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Include the buildSizesPage function and parameterized version support from commit 9f575eb, with the default major version set to 3 for the release branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
janechu
commented
Apr 22, 2026
- Address review comment: update README export sizes link to 3.x - Update website prebuild to pass version 3 to generate-docs.cjs - Update SIZES.md from build - Add generated 3.x export-sizes.md page Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The release branch uses FASTElement.define() instead of defineAsync(). The fixture was added from main and still used the old API. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The fixture already exists under fixtures/extensions/observer-map-properties/ with the correct path and templateOptions. Remove the stale root-level copy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
5 tasks
janechu
added a commit
that referenced
this pull request
May 1, 2026
# 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
📖 Description
Pull the latest updates from
maininto the release branch. Replaces #7475 with merge conflicts resolved.✅ Checklist
General
$ npm run change