Changes:
1. Remove production dependency in
@fluid-example/bubblebench-shared-tree
2. Update versions to ~1.8.3 (and set config to want ~)
3. Handle deprecations
a. Replace "javascript.formatter.trailingComma" with "...trailingCommas"
b. Replace cli argument `--apply` with `--write`
4. Apply formatting updates
5. Add Biome to npm-package-json-script-dep
6. Remove unused `--formatter-enabled=true` from commands
7. Add missing biome devDeps in build-tools
Under 1.7.3 VS Code extensions users could experience server connection failures and need 1.8 version to get support from Biome. See [biomejs/biome-vscode#261](https://github.com/biomejs/biome-vscode/issues/261)
## Summary
The client release group is updated to use biome for formatting instead
of prettier.
## Changes
1. The `format` script in each package now calls biome instead of
prettier.
2. The root `format` task runs a single biome command from the root
instead of running format in every package.
3. The vscode root workspace settings have been updated to set the biome
extension as the default formatter.
4. The root biome config is now in JSONC instead of JSON.
5. Paths outside the client and build-tools release groups are ignored
in the biome config because they're not using biome (yet).
## Known issues
- Despite best efforts, formatting back and forth between biome and
prettier is not 100% fidelity. Some changes that biome makes prettier
does not revert, though it also doesn't start failing or anything. You
can see examples by running `pnpm format && pnpm format:prettier` from
the root and looking and the remaining changes.
- Reformatting does sometimes cause lint disable statements to get
misplaced and they have to be manually fixed up.
## Description
Removes the pinning of npm-package-json-lint since we have moved to
TypeScript newer 4.6.
Pins @cerner/duplicate-package-checker-webpack-plugin since its newer
minor releases refuse to work with nod versions other than 10 || 12 ||
14.
Regenerates the pnpm-lock.yaml for client
This picks up newer versions of packages, aligning us with what users of
our packages would get if setting up a new project.
This also most likely reduces our use of deprecated packages and
packages with known security issues (there were a lot of each, though
reductions in them has not been confirmed.
This PR updates the build config to allow the new \@fluid-private scope
for packages meant only for use in the repo.
In addition to the build config, I renamed two packages to use the new
scope. Since neither of these packages are published, the rename has no
effect for customers.
The remaining private packages will be converted to the new scope in a
future PR. I split it up for ease of review.
---------
Co-authored-by: Alex Villarreal <716334+alexvy86@users.noreply.github.com>
Updates the client packages to use the 1.0.0 releases of server and
tinylicious.
The syncpack config was relaxed to allow range deps on tinylicious now
that it's post-1.0.
## Description
Update lock file with newer dependency versions. Other changes are
needed to keep everything working.
This was done by deleting and regenerating the lock file and
node-modules, then debugging the various issues that occurred.
This was repeated until no more issues occurred.
After this change, deleting the root lock file and ./node-modules and
regenerating them becomes a no-op.
Note that this does not change anything that is shipped to Fluid
Framework users: all changes are in the root package json, examples and
the lock file, with one exception:
experimental/PropertyDDS/packages/property-inspector-table/package.json
had a dep pinned to avoid a build error. This will fix the issue for
anyone installing this package as well.
A recent minor update of `@fluent-ui/react-components` includes a
breaking change to their unstable `tree` APIs, which break our build.
This was detected in #15568.
Since we are depending on an unstable API, we shouldn't be using a `^`
dependency.
I updated to the latest syncpack release, which fixes several bugs
noticed during the original integration. In particular, the group
sorting in the output is easier to understand, and some problems with
custom types have been fixed.
This change also enables running syncpack in CI, as a new stage in the
pipeline. The existing policy-check job is a standalone job that runs on
the whole repo, so I wrote a new re-usable policy-check stage and
updated the client pipeline to use it.
Note that the existing policy-check job will continue to run, so we'll
be doing duplicate checks for client, but I think that's ok. I'll look
into moving other pipelines to this model in a separate PR.
pnpm enables us to use different versions of dependencies in different
projects within the same release group (workspace in pnpm terms). While
there are legitimate uses for this capability, we prefer to use the same
version of dependencies across the repo whenever possible.
This PR uses [syncpack](https://www.npmjs.com/package/syncpack) to lint
and fix version differences and enforce dependency range types (e.g.
tilde vs. caret deps). I **did not** add these scripts to CI; they can
only be run manually using the following scripts:
- syncpack:deps
- syncpack:deps:fix
- syncpack:versions
- syncpack:versions:fix
The scripts already revealed some inconsistencies which I have fixed in
this PR so you can see what it found.
A future PR will add this to CI in some way; details TBD.