From 800cad5d6e55dcc9d4cc9dbb3a229b1e451051b2 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Thu, 3 Apr 2025 17:04:35 -0700 Subject: [PATCH 01/12] Add vale configuration --- .changeset/blue-eels-invite.md | 4 +- .changeset/cuddly-donuts-guess.md | 26 +- .changeset/empty-wasps-smile.md | 6 +- .changeset/fancy-gifts-jam.md | 6 +- .changeset/petite-bags-cheer.md | 6 +- .changeset/plenty-olives-speak.md | 4 +- .changeset/strong-dragons-build.md | 4 +- .changeset/stuffed-bears-relax.md | 4 +- .changeset/vast-paths-begin.md | 8 +- .gitignore | 9 + .vale.ini | 21 ++ .vale/config/vocabularies/fluid/accept.txt | 5 + .vale/config/vocabularies/fluid/reject.txt | 1 + package.json | 1 + pnpm-lock.yaml | 297 ++++++++++++++++++--- 15 files changed, 316 insertions(+), 86 deletions(-) create mode 100644 .vale.ini create mode 100644 .vale/config/vocabularies/fluid/accept.txt create mode 100644 .vale/config/vocabularies/fluid/reject.txt diff --git a/.changeset/blue-eels-invite.md b/.changeset/blue-eels-invite.md index 49894caf71f8..6a9ec54d7fb1 100644 --- a/.changeset/blue-eels-invite.md +++ b/.changeset/blue-eels-invite.md @@ -1,9 +1,7 @@ --- "fluid-framework": minor "@fluidframework/tree": minor ---- ---- -"section": tree +"__section": tree --- Better type errors for invalid recursive schema diff --git a/.changeset/cuddly-donuts-guess.md b/.changeset/cuddly-donuts-guess.md index 1b69fe03b28c..9c278f207296 100644 --- a/.changeset/cuddly-donuts-guess.md +++ b/.changeset/cuddly-donuts-guess.md @@ -1,30 +1,8 @@ --- "@fluidframework/core-utils": minor ---- ---- -"section": feature +"__section": feature --- New alpha `onAssertionFailure` API -A new `@alpha` API is added called `onAssertionFailure` which can be used to get a callback when an assertion fails indicating a bug in the Fluid Framework. -This callback is invoked before the exception is thrown, reducing the chances of the exception being lost or replaced with a different exception before making it to a catch block which reports it. -It can also be used to break into the debugger when the assertion occurs to aid in debugging the cause. - -```ts -import { onAssertionFailure } from "fluid-framework/alpha"; - -let firstAssertion: Error | undefined; - -onAssertionFailure((error: Error) => { - const priorErrorNote = - firstAssertion === undefined - ? "Please report this bug." - : `Might be caused due to prior error ${JSON.stringify(firstAssertion.message)} which should be investigated first.`; - const message = `Encountered Bug in Fluid Framework: ${error.message}\n${priorErrorNote}\n${error.stack}`; - console.error(message); - - debugger; - firstAssertion ??= error; -}); -``` +A new `@alpha` diff --git a/.changeset/empty-wasps-smile.md b/.changeset/empty-wasps-smile.md index 1ef570f0c70e..306250dba1c0 100644 --- a/.changeset/empty-wasps-smile.md +++ b/.changeset/empty-wasps-smile.md @@ -1,9 +1,7 @@ --- "fluid-framework": minor "@fluidframework/tree": minor ---- ---- -"section": tree +"__section": tree --- Improved type checking for recursive object schema Fields @@ -52,4 +50,4 @@ This change will also result in much nicer IntelliSense and type errors while fi There are still several cases which compile but violate this policy regarding recursive schema and can cause issues when exporting schema; these should be migrated to the above pattern as well. -It is still valid to use non-recursive structurally named array and map schema inline; this change does not impact them. +It is still valid to use non-recursive structurally named array and map schema inline. This change does not impact them. diff --git a/.changeset/fancy-gifts-jam.md b/.changeset/fancy-gifts-jam.md index 2eb6862adb38..e2f0a32aeb3b 100644 --- a/.changeset/fancy-gifts-jam.md +++ b/.changeset/fancy-gifts-jam.md @@ -1,12 +1,10 @@ --- "@fluidframework/tree": minor "fluid-framework": minor ---- ---- -"section": tree +"__section": tree --- -Performance enhancements in SharedTree branch-related ops processing +Performance enhancements in Shared Tree branch-related ops processing SharedTree leverages the "op bunching" feature where contiguous ops in a grouped batch are bunched and processed together to asymptotically improve the performance of processing ops. diff --git a/.changeset/petite-bags-cheer.md b/.changeset/petite-bags-cheer.md index 9951d993dacc..f573ab53e76e 100644 --- a/.changeset/petite-bags-cheer.md +++ b/.changeset/petite-bags-cheer.md @@ -1,11 +1,9 @@ --- "@fluidframework/tree": minor ---- ---- -"section": tree +"__section": tree --- -Improve tree shaking for code which imports `SharedTreeAttributes` +Improve Tree Shaking For Code Which Imports `SharedTreeAttributes` Bundling code that imports `SharedTreeAttributes` from `@fluidframework/tree/legacy` should now better prune out the rest of the tree package's code. This change reduced the dependency on webpack's diff --git a/.changeset/plenty-olives-speak.md b/.changeset/plenty-olives-speak.md index d97a15438e5a..1b0c53bade25 100644 --- a/.changeset/plenty-olives-speak.md +++ b/.changeset/plenty-olives-speak.md @@ -1,9 +1,7 @@ --- "fluid-framework": minor "@fluidframework/tree": minor ---- ---- -"section": tree +"__section": tree --- `TreeAlpha.exportConcise` now supports `undefined` diff --git a/.changeset/strong-dragons-build.md b/.changeset/strong-dragons-build.md index 56cc97fb1d64..625daa9b57f5 100644 --- a/.changeset/strong-dragons-build.md +++ b/.changeset/strong-dragons-build.md @@ -1,9 +1,7 @@ --- "fluid-framework": minor "@fluidframework/tree": minor ---- ---- -"section": tree +"__section": tree --- Improvements to typing of object node schema diff --git a/.changeset/stuffed-bears-relax.md b/.changeset/stuffed-bears-relax.md index 5985490d98ec..d5d172dc26d0 100644 --- a/.changeset/stuffed-bears-relax.md +++ b/.changeset/stuffed-bears-relax.md @@ -1,8 +1,6 @@ --- "@fluid-experimental/tree-react-api": minor ---- ---- -"section": other +"__section": other --- Simplify experimental tree data object implementation diff --git a/.changeset/vast-paths-begin.md b/.changeset/vast-paths-begin.md index e3c1313549a0..ed42d88a4f79 100644 --- a/.changeset/vast-paths-begin.md +++ b/.changeset/vast-paths-begin.md @@ -1,10 +1,8 @@ --- "@fluidframework/datastore": minor "@fluidframework/test-runtime-utils": minor ---- ---- -"section": legacy -includeInReleaseNotes: false +"__section": legacy +"__includeInReleaseNotes": false --- New ILayerCompatDetails property on FluidDataStoreRuntime, MockFluidDataStoreContext and MockFluidDataStoreRuntime @@ -15,4 +13,4 @@ A new optional property, `ILayerCompatDetails`, has been added to `FluidDataStor `ILayerCompatDetails` has also been added to `MockFluidDataStoreRuntime` and `MockFluidDataStoreContext` which are used for testing. -Important: this property is intended for use by Fluid Framework code only. No code outside the Fluid Framework should use or depend on this property in any way. +Important: this property is intended for use by fluid Framework code only. No code outside the FluidFramework should use or depend on this property in any way. diff --git a/.gitignore b/.gitignore index 0ae5d92b3e41..8e8c827afafe 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,15 @@ nyc *.log .DS_Store +.vale/* +!.vale/config/ + +.vale/config/* +!.vale/config/vocabularies/ + +.vale/config/vocabularies/* +!.vale/config/vocabularies/fluid/ + # Generated Node10 module resolution compatibility files alpha.d.ts beta.d.ts diff --git a/.vale.ini b/.vale.ini new file mode 100644 index 000000000000..2e87e8cd5655 --- /dev/null +++ b/.vale.ini @@ -0,0 +1,21 @@ +StylesPath = .vale + +MinAlertLevel = suggestion + +Packages = Microsoft, MDX, proselint + +Vocab = fluid + +[*README.md] +Microsoft.We = NO + +[*.{md}] +BasedOnStyles = Vale, Microsoft, proselint + +Vale.Spelling = NO + +Microsoft.Contractions = NO +Microsoft.Passive = NO +Microsoft.Semicolon = warning +Microsoft.Terms = suggestion +Microsoft.Vocab = NO diff --git a/.vale/config/vocabularies/fluid/accept.txt b/.vale/config/vocabularies/fluid/accept.txt new file mode 100644 index 000000000000..397de93e955a --- /dev/null +++ b/.vale/config/vocabularies/fluid/accept.txt @@ -0,0 +1,5 @@ +Fluid Framework +FluidFramework +JavaScript +SharedTree +TypeScript diff --git a/.vale/config/vocabularies/fluid/reject.txt b/.vale/config/vocabularies/fluid/reject.txt new file mode 100644 index 000000000000..5c9c88be50c3 --- /dev/null +++ b/.vale/config/vocabularies/fluid/reject.txt @@ -0,0 +1 @@ +shared tree diff --git a/package.json b/package.json index 701e45dbb6e0..6130bdabfa28 100644 --- a/package.json +++ b/package.json @@ -171,6 +171,7 @@ "@fluidframework/test-tools": "^1.0.195075", "@microsoft/api-documenter": "^7.21.6", "@microsoft/api-extractor": "7.50.1", + "@vvago/vale": "^3.10.0", "auto-changelog": "^2.4.0", "c8": "^8.0.1", "changesets-format-with-issue-links": "^0.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2645edd84e14..411103e3d026 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,7 +40,7 @@ importers: version: link:packages/tools/changelog-generator-wrapper '@fluid-tools/build-cli': specifier: ^0.54.0 - version: 0.54.0(@types/node@22.10.1)(encoding@0.1.13)(typescript@5.4.5)(webpack-cli@5.1.4) + version: 0.54.0(@types/node@18.19.67)(encoding@0.1.13)(typescript@5.4.5) '@fluid-tools/markdown-magic': specifier: workspace:~ version: link:tools/markdown-magic @@ -49,7 +49,7 @@ importers: version: 2.0.3 '@fluidframework/build-tools': specifier: ^0.54.0 - version: 0.54.0(@types/node@22.10.1) + version: 0.54.0(@types/node@18.19.67) '@fluidframework/eslint-config-fluid': specifier: ^5.7.3 version: 5.7.3(eslint@8.55.0)(typescript@5.4.5) @@ -58,10 +58,13 @@ importers: version: 1.0.195075 '@microsoft/api-documenter': specifier: ^7.21.6 - version: 7.26.2(@types/node@22.10.1) + version: 7.26.2(@types/node@18.19.67) '@microsoft/api-extractor': specifier: 7.50.1 - version: 7.50.1(patch_hash=ldzfpsbo3oeejrejk775zxplmi)(@types/node@22.10.1) + version: 7.50.1(patch_hash=ldzfpsbo3oeejrejk775zxplmi)(@types/node@18.19.67) + '@vvago/vale': + specifier: ^3.10.0 + version: 3.10.0 auto-changelog: specifier: ^2.4.0 version: 2.5.0(encoding@0.1.13) @@ -85,7 +88,7 @@ importers: version: 8.55.0 jest: specifier: ^29.6.2 - version: 29.7.0(@types/node@22.10.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.4.5)) + version: 29.7.0(@types/node@18.19.67)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.4.5)) mocha: specifier: ^10.8.2 version: 10.8.2 @@ -19863,6 +19866,10 @@ packages: '@vue/shared@3.4.38': resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + '@vvago/vale@3.10.0': + resolution: {integrity: sha512-Ma3yzOprxkRLaXc52AiE1O2g/01ePqaqt8HnLqot6N+eRZbxnbCTTILXtMDvkKl3H20n8JAAQdTmyRhGQRUmxg==} + hasBin: true + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -20417,6 +20424,10 @@ packages: resolution: {integrity: sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==} engines: {node: '>= 8.0.0'} + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -20424,6 +20435,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -20432,6 +20446,9 @@ packages: engines: {node: '>= 0.8.0'} hasBin: true + bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -20497,12 +20514,20 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} + buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -20615,6 +20640,9 @@ packages: resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + chalk-template@1.1.0: resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} engines: {node: '>=14.16'} @@ -21589,6 +21617,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -22455,6 +22486,11 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -23982,6 +24018,9 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} @@ -27147,6 +27186,9 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + traverse@0.6.10: resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==} engines: {node: '>= 0.4'} @@ -27573,6 +27615,9 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} + unzipper@0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} + update-browserslist-db@1.1.1: resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true @@ -30191,6 +30236,84 @@ snapshots: transitivePeerDependencies: - supports-color + '@fluid-tools/build-cli@0.54.0(@types/node@18.19.67)(encoding@0.1.13)(typescript@5.4.5)': + dependencies: + '@andrewbranch/untar.js': 1.0.3 + '@fluid-tools/build-infrastructure': 0.54.0(@types/node@18.19.67) + '@fluid-tools/version-tools': 0.54.0(@types/node@18.19.67) + '@fluidframework/build-tools': 0.54.0(@types/node@18.19.67) + '@fluidframework/bundle-size-tools': 0.54.0 + '@inquirer/prompts': 7.2.0(@types/node@18.19.67) + '@microsoft/api-extractor': 7.50.1(patch_hash=ldzfpsbo3oeejrejk775zxplmi)(@types/node@18.19.67) + '@oclif/core': 4.0.36 + '@oclif/plugin-autocomplete': 3.2.13 + '@oclif/plugin-commands': 4.1.13 + '@oclif/plugin-help': 6.2.19 + '@oclif/plugin-not-found': 3.2.30(@types/node@18.19.67) + '@octokit/core': 5.2.0 + '@octokit/rest': 21.0.2 + '@rushstack/node-core-library': 5.11.0(@types/node@18.19.67) + async: 3.2.6 + azure-devops-node-api: 11.2.0 + change-case: 3.1.0 + cosmiconfig: 8.3.6(typescript@5.4.5) + danger: 12.3.3(encoding@0.1.13) + date-fns: 2.30.0 + debug: 4.4.0(supports-color@8.1.1) + execa: 5.1.1 + fflate: 0.8.2 + fs-extra: 11.2.0 + github-slugger: 2.0.0 + globby: 11.1.0 + gray-matter: 4.0.3 + human-id: 4.1.1 + issue-parser: 7.0.1 + json5: 2.2.3 + jssm: 5.104.1 + jszip: 3.10.1 + latest-version: 9.0.0 + mdast: 3.0.0 + mdast-util-heading-range: 4.0.0 + mdast-util-to-string: 4.0.0 + minimatch: 7.4.6 + npm-check-updates: 16.14.20 + oclif: 4.16.2(@types/node@18.19.67) + picocolors: 1.1.1 + prettier: 3.2.5 + prompts: 2.4.2 + read-pkg-up: 7.0.1 + remark: 15.0.1 + remark-gfm: 4.0.0 + remark-github: 12.0.0 + remark-github-beta-blockquote-admonitions: 3.1.1 + remark-toc: 9.0.0 + replace-in-file: 7.2.0 + resolve.exports: 2.0.3 + semver: 7.6.3 + semver-utils: 1.1.4 + simple-git: 3.27.0 + sort-json: 2.0.1 + sort-package-json: 1.57.0 + strip-ansi: 6.0.1 + table: 6.9.0 + ts-morph: 22.0.0 + type-fest: 2.19.0 + unist-util-visit: 5.0.0 + xml2js: 0.5.0 + transitivePeerDependencies: + - '@swc/core' + - '@types/node' + - bluebird + - bufferutil + - encoding + - esbuild + - react-devtools-core + - supports-color + - typescript + - uglify-js + - utf-8-validate + - webpack-cli + '@fluid-tools/build-cli@0.54.0(@types/node@18.19.67)(encoding@0.1.13)(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@andrewbranch/untar.js': 1.0.3 @@ -30431,7 +30554,7 @@ snapshots: '@oclif/plugin-commands': 4.1.13 '@oclif/plugin-help': 6.2.19 '@oclif/plugin-not-found': 3.2.30(@types/node@18.19.67) - semver: 7.6.3 + semver: 7.7.1 table: 6.9.0 transitivePeerDependencies: - '@types/node' @@ -30646,6 +30769,20 @@ snapshots: - supports-color - utf-8-validate + '@fluidframework/bundle-size-tools@0.54.0': + dependencies: + azure-devops-node-api: 11.2.0 + jszip: 3.10.1 + msgpack-lite: 0.1.26 + pako: 2.1.0 + typescript: 5.4.5 + webpack: 5.97.1 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + - webpack-cli + '@fluidframework/bundle-size-tools@0.54.0(webpack-cli@5.1.4)': dependencies: azure-devops-node-api: 11.2.0 @@ -31038,9 +31175,9 @@ snapshots: '@typescript-eslint/parser': 6.7.5(eslint@8.55.0)(typescript@5.4.5) eslint-config-biome: 1.9.4 eslint-config-prettier: 9.0.0(eslint@8.55.0) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1)(eslint@8.55.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.55.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) eslint-plugin-jsdoc: 46.8.2(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) eslint-plugin-react: 7.33.2(eslint@8.55.0) @@ -32720,23 +32857,23 @@ snapshots: transitivePeerDependencies: - tslib - '@microsoft/api-documenter@7.26.2(@types/node@22.10.1)': + '@microsoft/api-documenter@7.26.2(@types/node@18.19.67)': dependencies: - '@microsoft/api-extractor-model': 7.30.0(@types/node@22.10.1) + '@microsoft/api-extractor-model': 7.30.0(@types/node@18.19.67) '@microsoft/tsdoc': 0.15.1 - '@rushstack/node-core-library': 5.10.0(@types/node@22.10.1) - '@rushstack/terminal': 0.14.3(@types/node@22.10.1) - '@rushstack/ts-command-line': 4.23.1(@types/node@22.10.1) + '@rushstack/node-core-library': 5.10.0(@types/node@18.19.67) + '@rushstack/terminal': 0.14.3(@types/node@18.19.67) + '@rushstack/ts-command-line': 4.23.1(@types/node@18.19.67) js-yaml: 3.13.1 resolve: 1.22.8 transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.30.0(@types/node@22.10.1)': + '@microsoft/api-extractor-model@7.30.0(@types/node@18.19.67)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.10.0(@types/node@22.10.1) + '@rushstack/node-core-library': 5.10.0(@types/node@18.19.67) transitivePeerDependencies: - '@types/node' @@ -33720,7 +33857,7 @@ snapshots: optionalDependencies: '@types/node': 18.19.67 - '@rushstack/node-core-library@5.10.0(@types/node@22.10.1)': + '@rushstack/node-core-library@5.10.0(@types/node@18.19.67)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -33731,7 +33868,7 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.10.1 + '@types/node': 18.19.67 '@rushstack/node-core-library@5.11.0(@types/node@18.19.67)': dependencies: @@ -33741,7 +33878,7 @@ snapshots: fs-extra: 11.3.0 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.5.4 optionalDependencies: '@types/node': 18.19.67 @@ -33764,12 +33901,12 @@ snapshots: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.3(@types/node@22.10.1)': + '@rushstack/terminal@0.14.3(@types/node@18.19.67)': dependencies: - '@rushstack/node-core-library': 5.10.0(@types/node@22.10.1) + '@rushstack/node-core-library': 5.10.0(@types/node@18.19.67) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.10.1 + '@types/node': 18.19.67 '@rushstack/terminal@0.15.0(@types/node@18.19.67)': dependencies: @@ -33787,9 +33924,9 @@ snapshots: '@rushstack/tree-pattern@0.3.1': {} - '@rushstack/ts-command-line@4.23.1(@types/node@22.10.1)': + '@rushstack/ts-command-line@4.23.1(@types/node@18.19.67)': dependencies: - '@rushstack/terminal': 0.14.3(@types/node@22.10.1) + '@rushstack/terminal': 0.14.3(@types/node@18.19.67) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -34826,6 +34963,15 @@ snapshots: '@vue/shared@3.4.38': {} + '@vvago/vale@3.10.0': + dependencies: + axios: 1.7.9 + rimraf: 5.0.10 + tar: 6.2.1 + unzipper: 0.10.14 + transitivePeerDependencies: + - debug + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -35300,6 +35446,14 @@ snapshots: transitivePeerDependencies: - debug + axios@1.7.9: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axios@1.7.9(debug@4.3.7): dependencies: follow-redirects: 1.15.9(debug@4.3.7) @@ -35455,10 +35609,17 @@ snapshots: jsonpath: 1.1.1 tryer: 1.0.1 + big-integer@1.6.52: {} + big.js@5.2.2: {} binary-extensions@2.3.0: {} + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -35467,6 +35628,8 @@ snapshots: blessed@0.1.81: {} + bluebird@3.4.7: {} + bluebird@3.7.2: {} bodec@0.1.0: {} @@ -35553,6 +35716,8 @@ snapshots: buffer-from@1.1.2: {} + buffer-indexof-polyfill@1.0.2: {} + buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -35563,6 +35728,8 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffers@0.1.1: {} + builtin-modules@3.3.0: {} busboy@1.6.0: @@ -35725,6 +35892,10 @@ snapshots: pathval: 1.1.1 type-detect: 4.1.0 + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + chalk-template@1.1.0: dependencies: chalk: 5.4.1 @@ -36795,6 +36966,10 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -37169,33 +37344,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1)(eslint@8.55.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.55.0 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.3.0 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.7.5(eslint@8.55.0)(typescript@5.4.5) eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1)(eslint@8.55.0) transitivePeerDependencies: - supports-color @@ -37209,13 +37384,13 @@ snapshots: eslint: 8.55.0 ignore: 5.3.2 - eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0): + eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0): dependencies: debug: 4.4.0(supports-color@8.1.1) doctrine: 3.0.0 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) get-tsconfig: 4.10.0 is-glob: 4.0.3 minimatch: 3.1.2 @@ -37810,6 +37985,8 @@ snapshots: fn.name@1.1.0: {} + follow-redirects@1.15.9: {} + follow-redirects@1.15.9(debug@4.3.7): optionalDependencies: debug: 4.3.7 @@ -37929,6 +38106,13 @@ snapshots: fsevents@2.3.3: optional: true + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.6.3 + function-bind@1.1.2: {} function.prototype.name@1.1.6: @@ -39993,6 +40177,8 @@ snapshots: lines-and-columns@1.2.4: {} + listenercount@1.0.1: {} + load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 @@ -41603,7 +41789,7 @@ snapshots: ky: 1.7.3 registry-auth-token: 5.0.3 registry-url: 6.0.1 - semver: 7.6.3 + semver: 7.7.1 package-json@8.1.1: dependencies: @@ -43943,7 +44129,7 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 - webpack: 5.97.1(webpack-cli@5.1.4) + webpack: 5.97.1 terser@5.37.0: dependencies: @@ -44099,6 +44285,8 @@ snapshots: dependencies: punycode: 2.3.1 + traverse@0.3.9: {} + traverse@0.6.10: dependencies: gopd: 1.2.0 @@ -44201,7 +44389,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 18.19.67 - acorn: 8.14.0 + acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -44569,6 +44757,19 @@ snapshots: untildify@4.0.0: {} + unzipper@0.10.14: + dependencies: + big-integer: 1.6.52 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: browserslist: 4.24.2 @@ -45027,6 +45228,36 @@ snapshots: webpack-sources@3.2.3: {} + webpack@5.97.1: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + browserslist: 4.24.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(webpack@5.97.1) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + webpack@5.97.1(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 From 7e08e3ec4aca8ed2dad85c03bed0a66f7f3d953b Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 10:44:10 -0700 Subject: [PATCH 02/12] add workflow --- .github/workflows/pr-changeset-review.yml | 23 +++++++++++++++++++++++ package.json | 1 + 2 files changed, 24 insertions(+) create mode 100644 .github/workflows/pr-changeset-review.yml diff --git a/.github/workflows/pr-changeset-review.yml b/.github/workflows/pr-changeset-review.yml new file mode 100644 index 000000000000..e471a18a66bd --- /dev/null +++ b/.github/workflows/pr-changeset-review.yml @@ -0,0 +1,23 @@ +name: "pr-changeset-review" +on: + pull_request: + types: + - opened # PR is created + - synchronize # commits added to PR + - reopened # closed PR re-opened + branches: + - main + +jobs: + vale: + name: vale + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # ratchet:actions/checkout@v3 + with: + persist-credentials: false + - uses: errata-ai/vale-action@v2.1.1 + with: + files: .changeset + vale_flags: "--glob=*-*-*.md" + reporter: github-pr-review diff --git a/package.json b/package.json index 6130bdabfa28..b618426e9d41 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "bundle-analysis:run": "flub run bundleStats --dangerfile build-tools/packages/build-cli/lib/library/dangerfile.cjs", "changeset": "flub changeset add --releaseGroup client", "check:are-the-types-wrong": "fluid-build --task check:are-the-types-wrong", + "check:changesets": "vale .changeset --glob=\"*-*-*.md\"", "check:format:repo": "biome check .", "check:versions": "flub check buildVersion -g client --path .", "check:versions:fix": "flub check buildVersion -g client --path . --fix", From 829d7deb7e7d48bcd92ea3d1ec82b71a9d3c4c28 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 10:51:48 -0700 Subject: [PATCH 03/12] new changeset format --- .changeset/salty-tools-carry.md | 4 +--- .changeset/true-doors-ring.md | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.changeset/salty-tools-carry.md b/.changeset/salty-tools-carry.md index fd4897c2aa47..1ce30201fcde 100644 --- a/.changeset/salty-tools-carry.md +++ b/.changeset/salty-tools-carry.md @@ -1,9 +1,7 @@ --- "fluid-framework": minor "@fluidframework/tree": minor ---- ---- -"section": tree +"__section": tree --- Cleanup of several tree and schema alpha APIs for content import and export diff --git a/.changeset/true-doors-ring.md b/.changeset/true-doors-ring.md index c061a3e93792..663a51c101f3 100644 --- a/.changeset/true-doors-ring.md +++ b/.changeset/true-doors-ring.md @@ -1,8 +1,6 @@ --- "@fluidframework/container-loader": minor ---- ---- -"section": feature +"__section": feature --- Blobs in Detached Container Supported by Default From b457d62d01bbd6d302aeb57c63296dfe80a501e0 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 11:12:45 -0700 Subject: [PATCH 04/12] config --- .github/workflows/pr-changeset-review.yml | 1 + .vale.ini | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/pr-changeset-review.yml b/.github/workflows/pr-changeset-review.yml index e471a18a66bd..83fb1378dd12 100644 --- a/.github/workflows/pr-changeset-review.yml +++ b/.github/workflows/pr-changeset-review.yml @@ -21,3 +21,4 @@ jobs: files: .changeset vale_flags: "--glob=*-*-*.md" reporter: github-pr-review + fail_on_error: true diff --git a/.vale.ini b/.vale.ini index 2e87e8cd5655..0e307ba125ef 100644 --- a/.vale.ini +++ b/.vale.ini @@ -12,8 +12,6 @@ Microsoft.We = NO [*.{md}] BasedOnStyles = Vale, Microsoft, proselint -Vale.Spelling = NO - Microsoft.Contractions = NO Microsoft.Passive = NO Microsoft.Semicolon = warning From efb81c5efba84d408ae2948801e223b1c2ede6ea Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 11:19:43 -0700 Subject: [PATCH 05/12] config --- .github/workflows/pr-changeset-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-changeset-review.yml b/.github/workflows/pr-changeset-review.yml index 83fb1378dd12..391dd77148ea 100644 --- a/.github/workflows/pr-changeset-review.yml +++ b/.github/workflows/pr-changeset-review.yml @@ -21,4 +21,4 @@ jobs: files: .changeset vale_flags: "--glob=*-*-*.md" reporter: github-pr-review - fail_on_error: true + filter_mode: nofilter From ecd4427eb8a08109df3fd9a5e88cd3d9e5a6d925 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 11:23:51 -0700 Subject: [PATCH 06/12] config --- .vale.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/.vale.ini b/.vale.ini index 0e307ba125ef..73a42d43cdd9 100644 --- a/.vale.ini +++ b/.vale.ini @@ -12,6 +12,7 @@ Microsoft.We = NO [*.{md}] BasedOnStyles = Vale, Microsoft, proselint +Microsoft.Accessibility = warning Microsoft.Contractions = NO Microsoft.Passive = NO Microsoft.Semicolon = warning From 501961188a2a3736e4c0eed9790d42c43b188d92 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 11:30:15 -0700 Subject: [PATCH 07/12] config --- .vale.ini | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.vale.ini b/.vale.ini index 73a42d43cdd9..44c54b0244c3 100644 --- a/.vale.ini +++ b/.vale.ini @@ -12,9 +12,10 @@ Microsoft.We = NO [*.{md}] BasedOnStyles = Vale, Microsoft, proselint -Microsoft.Accessibility = warning +; Note that only errors will be reported in GitHub PR comments. +; This seems to be a limitation of the GitHub Action. +; When running locally, all levels will be reported. Microsoft.Contractions = NO Microsoft.Passive = NO -Microsoft.Semicolon = warning Microsoft.Terms = suggestion Microsoft.Vocab = NO From 8239827ba9cadf3b97f0bf033636dce59f7a8b91 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Wed, 9 Apr 2025 15:37:30 -0700 Subject: [PATCH 08/12] policy --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5fdf0254741b..6f428a73307a 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "bundle-analysis:run": "flub run bundleStats --dangerfile build-tools/packages/build-cli/lib/library/dangerfile.cjs", "changeset": "flub changeset add --releaseGroup client", "check:are-the-types-wrong": "fluid-build --task check:are-the-types-wrong", - "check:changesets": "vale .changeset --glob=\"*-*-*.md\"", + "check:changesets": "vale .changeset --glob=*-*-*.md", "check:format:repo": "biome check .", "check:versions": "flub check buildVersion -g client --path .", "check:versions:fix": "flub check buildVersion -g client --path . --fix", From 149e4389fb9b8f986516dac1831583473ff374f9 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Thu, 10 Apr 2025 15:46:52 -0700 Subject: [PATCH 09/12] workflow --- .github/workflows/pr-changeset-review.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/pr-changeset-review.yml b/.github/workflows/pr-changeset-review.yml index 391dd77148ea..e2f2514de1eb 100644 --- a/.github/workflows/pr-changeset-review.yml +++ b/.github/workflows/pr-changeset-review.yml @@ -1,4 +1,10 @@ name: "pr-changeset-review" + +# This workflow runs lint-like checks against changesets in PRs. The linting tool used is called Vale. The worflow will +# add comments for any issues warnings or errors that Vale finds in the changeset. + +# To run vale locally against changesets, you can use `pnpm run check:changesets`. + on: pull_request: types: @@ -7,6 +13,11 @@ on: - reopened # closed PR re-opened branches: - main + paths: + - ".changeset/**" # Trigger only when changes are found under .changeset + +permissions: + pull-requests: write jobs: vale: From b55188cbbfd7ca4cbd16eac189945613ee660209 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Fri, 11 Apr 2025 14:35:38 -0700 Subject: [PATCH 10/12] Apply suggestions from code review Co-authored-by: Alex Villarreal <716334+alexvy86@users.noreply.github.com> --- .github/workflows/pr-changeset-review.yml | 2 +- .vale/config/vocabularies/fluid/reject.txt | 2 ++ package.json | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-changeset-review.yml b/.github/workflows/pr-changeset-review.yml index e2f2514de1eb..c607b8833db2 100644 --- a/.github/workflows/pr-changeset-review.yml +++ b/.github/workflows/pr-changeset-review.yml @@ -1,7 +1,7 @@ name: "pr-changeset-review" # This workflow runs lint-like checks against changesets in PRs. The linting tool used is called Vale. The worflow will -# add comments for any issues warnings or errors that Vale finds in the changeset. +# add comments for any warnings or errors that Vale finds in the changeset. # To run vale locally against changesets, you can use `pnpm run check:changesets`. diff --git a/.vale/config/vocabularies/fluid/reject.txt b/.vale/config/vocabularies/fluid/reject.txt index 5c9c88be50c3..b1dba2b74fd3 100644 --- a/.vale/config/vocabularies/fluid/reject.txt +++ b/.vale/config/vocabularies/fluid/reject.txt @@ -1 +1,3 @@ shared tree +fluid +fluid framework diff --git a/package.json b/package.json index 6f428a73307a..beec3b69caf3 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ "@fluidframework/test-tools": "^1.0.195075", "@microsoft/api-documenter": "^7.21.6", "@microsoft/api-extractor": "7.50.1", - "@vvago/vale": "^3.10.0", + "@vvago/vale": "^3.11.2", "auto-changelog": "^2.4.0", "c8": "^8.0.1", "changesets-format-with-issue-links": "^0.3.0", From 3894624b7231f1b7ac434ecc179c83e3435ec7b2 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Fri, 11 Apr 2025 17:09:34 -0700 Subject: [PATCH 11/12] lockfile --- pnpm-lock.yaml | 41 +++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff7ed2740d34..890a9c38d400 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,8 +63,8 @@ importers: specifier: 7.50.1 version: 7.50.1(patch_hash=ldzfpsbo3oeejrejk775zxplmi)(@types/node@22.10.1) '@vvago/vale': - specifier: ^3.10.0 - version: 3.10.0 + specifier: ^3.11.2 + version: 3.11.2 auto-changelog: specifier: ^2.4.0 version: 2.5.0(encoding@0.1.13) @@ -19721,8 +19721,8 @@ packages: '@vue/shared@3.4.38': resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} - '@vvago/vale@3.10.0': - resolution: {integrity: sha512-Ma3yzOprxkRLaXc52AiE1O2g/01ePqaqt8HnLqot6N+eRZbxnbCTTILXtMDvkKl3H20n8JAAQdTmyRhGQRUmxg==} + '@vvago/vale@3.11.2': + resolution: {integrity: sha512-YJGghfJP8Bzbx8Uw4TlVyV6sPpMh+5DJoUtnw43SYSOCkM5G4DoNBFCPC374/nGT7FzjOPyX1O+aQNuC5kLFcA==} hasBin: true '@webassemblyjs/ast@1.14.1': @@ -20158,9 +20158,6 @@ packages: axios@0.28.1: resolution: {integrity: sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==} - axios@1.7.9: - resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - axios@1.8.4: resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} @@ -30714,9 +30711,9 @@ snapshots: '@typescript-eslint/parser': 6.7.5(eslint@8.55.0)(typescript@5.4.5) eslint-config-biome: 1.9.4 eslint-config-prettier: 9.0.0(eslint@8.55.0) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1)(eslint@8.55.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.55.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) eslint-plugin-jsdoc: 46.8.2(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) eslint-plugin-react: 7.33.2(eslint@8.55.0) @@ -34500,9 +34497,9 @@ snapshots: '@vue/shared@3.4.38': {} - '@vvago/vale@3.10.0': + '@vvago/vale@3.11.2': dependencies: - axios: 1.7.9 + axios: 1.8.4(debug@4.4.0) rimraf: 5.0.10 tar: 6.2.1 unzipper: 0.10.14 @@ -34965,14 +34962,6 @@ snapshots: transitivePeerDependencies: - debug - axios@1.7.9: - dependencies: - follow-redirects: 1.15.9(debug@4.4.0) - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axios@1.8.4(debug@4.3.7): dependencies: follow-redirects: 1.15.9(debug@4.3.7) @@ -36775,33 +36764,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1)(eslint@8.55.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.55.0 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) fast-glob: 3.3.3 get-tsconfig: 4.10.0 is-bun-module: 1.3.0 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.7.5(eslint@8.55.0)(typescript@5.4.5) eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1)(eslint@8.55.0) transitivePeerDependencies: - supports-color @@ -36815,13 +36804,13 @@ snapshots: eslint: 8.55.0 ignore: 5.3.2 - eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0): + eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0): dependencies: debug: 4.4.0(supports-color@8.1.1) doctrine: 3.0.0 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0) get-tsconfig: 4.10.0 is-glob: 4.0.3 minimatch: 3.1.2 From 26d00b0eebaeb78623203d8d3183fc511d1c2921 Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Fri, 11 Apr 2025 17:11:37 -0700 Subject: [PATCH 12/12] pin workflow --- .github/workflows/pr-changeset-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-changeset-review.yml b/.github/workflows/pr-changeset-review.yml index c607b8833db2..f5fd0082a501 100644 --- a/.github/workflows/pr-changeset-review.yml +++ b/.github/workflows/pr-changeset-review.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # ratchet:actions/checkout@v3 with: persist-credentials: false - - uses: errata-ai/vale-action@v2.1.1 + - uses: errata-ai/vale-action@d89dee975228ae261d22c15adcd03578634d429c # ratchet:errata-ai/vale-action@v2.1.1 with: files: .changeset vale_flags: "--glob=*-*-*.md"