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
2 changes: 2 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@ Each package includes a DESIGN.md file, read that to gain a general understandin
These contain domain-specific guidance. Read when performing related tasks:

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

## Commands

Expand Down
18 changes: 18 additions & 0 deletions .github/skills/documentation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: documentation
description: Add documentation for contributors and developers.
---

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.

Design/architectural documentation such as DESIGN.md should always be kept up-to-date.

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.

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.

If you are making a breaking change, ensure the migration document has been updated.

All markdown documentation aside from the package/crate level DESIGN.md files are in that package/crates docs folder.

Any documentation created for the website should be written with the developer implementing the package in mind, it is not intended for other audiences.
12 changes: 12 additions & 0 deletions .github/skills/rust/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
description: Use this guide when working on Rust changes in the FAST monorepo.
name: rust
---

# Working with the Rust crate and the Rust NodeJS CLI

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.

## Breaking changes

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.
4 changes: 2 additions & 2 deletions .github/workflows/ci-validate-platforms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,11 @@ jobs:
run: cargo install wasm-pack

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

- name: Install playwright dependencies and browsers
run: |
npx playwright install --with-deps

- name: Run tests in all Packages
run: npx lage test:node test:playwright ${{ github.event_name == 'pull_request' && '--since origin/main' || '' }} --allow-no-target-runs
run: npx lage test:node test:playwright ${{ github.event_name == 'pull_request' && '--since origin/main' || '' }} --allow-no-target-runs --verbose
4 changes: 2 additions & 2 deletions .github/workflows/ci-validate-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@ jobs:
run: cargo install wasm-pack

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

- name: Install playwright dependencies and browsers
run: |
npx playwright install --with-deps

- name: Testing unit tests
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
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

- name: Testing final validation
run: npm run test:validation
2 changes: 1 addition & 1 deletion .github/workflows/ci-webui-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
run: cargo install wasm-pack

- name: Build workspaces
run: npm run build
run: npm run build -- --verbose

- name: Install Playwright browsers
run: npx playwright install --with-deps chromium
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "minor",
"comment": "feat: propagate shadowroot attributes",
"packageName": "@microsoft/fast-build",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "chore: bump packages after failed publish",
"packageName": "@microsoft/fast-build",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "minor",
"comment": "feat: allow fast-build rendering without state; omitted CLI state no longer probes state.json",
"packageName": "@microsoft/fast-build",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "remove FASTGlobal version tracking",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove FASTGlobal version tracking",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Remove hydration view template side effect and unused export paths",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove hydration view template side effect and unused export paths",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "minor",
"comment": "Add schema-driven attributeMap and observerMap extension subpaths, optional definition schema, and observerMap schema configuration.",
"type": "prerelease",
"comment": "feat: add schema-driven attributeMap and observerMap extension subpaths, optional definition schema, and observerMap schema configuration.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "none",
"comment": "chore: replace rollup-plugin-filesize with esbuild bundle size reporting",
"comment": "docs: update the documentation for agents and move relevant code docs into a per-package docs folder",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Move optional helpers to dedicated flat fast-element subpath exports such as @microsoft/fast-element/children.js, @microsoft/fast-element/repeat.js, @microsoft/fast-element/two-way.js, @microsoft/fast-element/signal.js, @microsoft/fast-element/attribute-map.js, and @microsoft/fast-element/observer-map.js while keeping controller and definition internals on the root entrypoint.",
"type": "prerelease",
"comment": "BREAKING CHANGE: move optional helpers to dedicated flat fast-element subpath exports such as @microsoft/fast-element/children.js, @microsoft/fast-element/repeat.js, @microsoft/fast-element/two-way.js, @microsoft/fast-element/signal.js, @microsoft/fast-element/attribute-map.js, and @microsoft/fast-element/observer-map.js while keeping controller and definition internals on the root entrypoint.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "feat: propagate shadowroot attributes from f-template to declarative shadow DOM template",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Remove the public declarative TemplateElement configuration APIs and make declarative templates use an internal native f-template publisher with explicit hydration opt-in.",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove the public declarative TemplateElement configuration APIs and make declarative templates use an internal native f-template publisher with explicit hydration opt-in.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Replace HydratableElementController with automatic prerendered content optimization. When a component connects with an existing shadow root, bindings skip attribute/booleanAttribute DOM updates during initial render while still setting up event listeners, observers, and dependency tracking. Added isPrerendered flag to ElementController and ViewController. Added template-pending guard for defineAsync flow.",
"type": "prerelease",
"comment": "BREAKING CHANGE: replace HydratableElementController with automatic prerendered content optimization. When a component connects with an existing shadow root, bindings skip attribute/booleanAttribute DOM updates during initial render while still setting up event listeners, observers, and dependency tracking. Added isPrerendered flag to ElementController and ViewController. Added template-pending guard for defineAsync flow.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "patch"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Move declarative HTML APIs into @microsoft/fast-element/declarative.js, expose schema map helpers from extension subpaths, and remove the @microsoft/fast-html package.",
"type": "prerelease",
"comment": "BREAKING CHANGE: move declarative HTML APIs into @microsoft/fast-element/declarative.js, expose schema map helpers from extension subpaths, and remove the @microsoft/fast-html package.",
"packageName": "@microsoft/fast-element",
"dependentChangeType": "none",
"email": "7559015+janechu@users.noreply.github.com"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "chore: migrate typescript compiltation to typescript/native-preview",
"packageName": "@microsoft/fast-element",
"email": "13071055+chrisdholt@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "minor",
"comment": "add declarativeTemplate for auto-resolving <f-template> markup",
"type": "prerelease",
"comment": "BREAKING CHANGE: add declarativeTemplate for auto-resolving <f-template> markup",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Remove ElementStyles.withBehaviors, CSS style behaviors, and CSS bindings in fast-element.",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove ElementStyles.withBehaviors, CSS style behaviors, and CSS bindings in fast-element.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "minor",
"comment": "Add extensions array argument to FASTElement.define() and FASTElementDefinition.define()",
"type": "prerelease",
"comment": "feat: add extensions array argument to FASTElement.define() and FASTElementDefinition.define()",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "patch"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "feat: add ./declarative-syntax.js subpath export exposing declarative HTML syntax constants",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Remove TemplateOptions from fast-element definitions and drop templateOptions-based connection/define waiting.",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove TemplateOptions from fast-element definitions and drop templateOptions-based connection/define waiting.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Simplify hydration markers to data-free sequential format (fe:b, fe:/b, fe:r, fe:/r, fe:e, fe:/e). Replace regex parsing with string equality checks. Single data-fe attribute replaces three old formats. Breaking change: SSR output format changed.",
"type": "prerelease",
"comment": "BREAKING CHANGE: simplify hydration markers to data-free sequential format (fe:b, fe:/b, fe:r, fe:/r, fe:e, fe:/e). Replace regex parsing with string equality checks. Single data-fe attribute replaces three old formats. Breaking change: SSR output format changed.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "remove deprecated declarative event e support",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove deprecated declarative event e support",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Make declarative runtime setup lazy and change @microsoft/fast-element/debug.js to require an explicit enableDebug() call.",
"type": "prerelease",
"comment": "BREAKING CHANGE: make declarative runtime setup lazy and change @microsoft/fast-element/debug.js to require an explicit enableDebug() call.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "minor",
"comment": "feat: modularize hydration and expose lifecycle callbacks via enableHydration() and declarativeTemplate()",
"type": "prerelease",
"comment": "BREAKING CHANGE: modularize hydration and expose lifecycle callbacks via enableHydration() and declarativeTemplate()",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "feat: change default attribute-name-strategy from none to camelCase",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Remove defineAsync and composeAsync β€” define() and compose() now return Promises",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove defineAsync and composeAsync β€” define() and compose() now return Promises",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "patch"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "minor",
"comment": "add function-based template resolver sequencing",
"type": "prerelease",
"comment": "BREAKING CHANGE: add function-based template resolver sequencing",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "Remove the built-in globalThis polyfill; fast-element v3 now requires native globalThis",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove the built-in globalThis polyfill; fast-element v3 now requires native globalThis",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "patch"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "major",
"comment": "fix: remove the fast-kernel multi-kernel modes. Breaking change: FAST no longer supports configuring isolated or version-scoped kernels via the script attribute.",
"type": "prerelease",
"comment": "BREAKING CHANGE: remove the fast-kernel multi-kernel modes. Breaking change: FAST no longer supports configuring isolated or version-scoped kernels via the script attribute.",
"packageName": "@microsoft/fast-element",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"type": "prerelease",
"comment": "Update imports for styles.js subpath export",
"comment": "minor: update imports for styles.js subpath export",
"packageName": "@microsoft/fast-router",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "chore: migrate typescript compiltation to typescript/native-preview",
"packageName": "@microsoft/fast-router",
"email": "13071055+chrisdholt@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "minor",
"comment": "fix: migrate build utilities to consume declarative HTML syntax from @microsoft/fast-element",
"packageName": "@microsoft/fast-test-harness",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "chore: prepare package for publish",
"packageName": "@microsoft/fast-test-harness",
"email": "863023+radium-v@users.noreply.github.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "minor",
"comment": "feat: enhance SSR renderer and CLI with new template generation capabilities",
"packageName": "@microsoft/fast-test-harness",
"email": "863023+radium-v@users.noreply.github.com",
"dependentChangeType": "none"
}
Loading
Loading