Updated the following:
client (release group)
Dependencies on build-tools updated:
@fluid-tools/build-cli: 0.44.0
@fluidframework/build-tools: 0.44.0
@fluidframework/bundle-size-tools: 0.44.0
@fluid-tools/version-tools: 0.44.0
I also made two small changes to the root Biome config and the
test-snapshots Biome config. The configs exposed a case where `git
ls-files` will return a path to a directory - if that directory is a
submodule. These config changes enable the Biome task caching to work
even with this ls-files oddity by ensuring the directory path doesn't
make it into the cached file list.
## Description
`validateAssertionError()` is intended to be used for errors thrown by
`assert()`. The two tests updated in this PR were added in
https://github.com/microsoft/FluidFramework/pull/22219 and are checking
for `UsageError`s, so this PR replaces the validation using
`validateAssertionError()` with a more appropriate alternative.
## Description
Refactors and changes the prop `correlationIdSource` to `requestSource`
to avoid ambiguity in understanding whether we are tracking request
origin or correlationId origin.
The root level "checks" and "checks:fix" tasks were triggering in
individual packages _and_ the root. Only the root is needed right now
because the only check we do is formatting, and that can be done at the
root level.
I think this might be causing a strange race condition when running in
CI, so hopefully this change will also stabilize PR runs which have
failed a few times today, seemingly at random.
Related to
[AB#12491](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/12491).
## Bug
Currently, it's possible to create multiple tree views
(SchematizingSimpleTreeView) from the same checkout by simply calling
viewWith or via its constructor.
This can result in failures later, such as when the schema is upgraded.
A schema upgrade emits `"afterSchemaChange"` event on which all the
views are updated and it ends up with multiple `Context` for the same
checkout.
We have couple of unit tests failing because of this. These tests are
currently skipped.
## Fix
When a new `SchematizingSimpleTreeView` is created, throw a usage error
if one already exists for the checkout it is created with.
[AB#11436](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/11436)
## Description
This PR adds telemetry to track the origin of the correlation associated
with an API call by adding a new telemetry prop - `correlationIdSource`.
If the client sends a correlationId in the `x-correlation-id` header or
in the `x-telemetry-header`, then the source is set as
`"correlationIdSource": "client"`. Else the correlationId is generated
by the server and the prop is set as `"correlationIdSource": "server"`.
## Breaking Changes
Updates `ITelemetryContextProperties` to include the
`correlationIdSource` property.
Don't require API reviews for API report changes in `/tools` packages.
Also simplify specification patterns for CODEOWNERS, and...
* Require `fluid-cr-infra` review for API changes in `/build-tools`
packages
* Require `fluid-cr-server` review for API changes in `/server` packages
## Bug
After a `SchematizingSimpleTreeView` is explicitly disposed, upgrading
its schema via a new view results in double disposal of the original
view.
**Repro:**
1. Create a view via `viewWith`.
2. Dispose the view.
3. Create a second view with the same checkout and upgrade the schema
via `upgradeSchema()`.
## Root-cause
When a `SchematizingSimpleTreeView` creates a `CheckoutFlexTreeView`, it
registers an `"afterSchemaChange"` event handler which disposes the flex
view. However, when the `SchematizingSimpleTreeView` is explicitly
disposed, the event handler is not de-registered. So, when the schema is
upgraded, this event handler is called resulting in disposing it again.
## Fix
Moved the registration of `"afterSchemaChange"` event handlers from
`requireSchema` into the callsite `SchematizingSimpleTreeView::update`
where it is set up to be de-registered when the view is disposed.
Added a test to validate this scenario.
[AB#8916](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/8916)
## Description
Splits a couple of Bash steps into separate CopyFiles/Npm steps so we
can apply targeted retries-on-failure to the steps that might fail due
to transient network issues (`npm install`).
## Description
This PR updates the sharedTree fuzz tests to use the simple tree apis,
and removes the use of flex-tree. The schema op is currently disabled,
as we manually dispose of the view in these tests during schema updates,
and run into a known double dispose issue.
Updates the type test baselines (previous versions) to 2.2.0 now that it
has been released.
Commands used:
```shell
pnpm typetests:prepare
pnpm i --no-frozen-lockfile
pnpm fluid-build -t typetests:gen
```
The release branch warning workflow needs to use the pull_request_target
trigger instead of the pull_request trigger, so it can post to the PR.
This is safe because the PR does not build anything or use content from
the submitted PR. When using pull_request_target the checked-out code is
the base branch, not the PR branch, so there's no access to content from
the PR itself.
Updates the marocchino/sticky-pull-request-comment action to its latest
version, 2.9.0. This upgrade was needed because some options used in
recent workflows are not available in the older version.
I confirmed that the commit 331f8f5b4215f0445d3c07b4967662a32a2d3e31
corresponds to the v2.9.0 tag in the
marocchino/sticky-pull-request-comment repo:
https://github.com/marocchino/sticky-pull-request-comment/releases/tag/v2.9.0
This will be ported to the 2.2 release branch as well.
When the Biome fluid-build task was added it didn't support reading
Biome config files. Thadded the capability to read Biome config
files, including following `extends` values and merging the resulting
include/ignore settings across the files/formatter/linter settings. The
BiomeTask now uses this capability to enumerate the files to consider
when caching. While we don't use Biome for linting today, I tried to
make the code as general-purpose as possible so we could easily adapt
the task for linting in the future.
I added some test data and test cases. They're not exhaustive but they
cover the critical stuff and exercise the recursive loading.
[AB#9090](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/9090)
## Description
This should improve performance and reduce memory use by the flex tree
slightly, but mainly is done to simplify the code.
Now new named members can be added to flex tree nodes without dealing
with property name escaping.
Remove the code to handle requests from
DOProviderContainerRuntimeFactory which is necessary for the
rootDataObject as the request pattern is no longer used to access the
rootDataObject in any of our service clients.
#22226 introduced a bug that caused directory paths to get into the list
of cached files in the Biome task. The root cause was incomplete
handling of the response from `git ls-files`. Empty strings made it into
the list of files, which later resolved as a path to the working
directory - the root of the repo.
The fix is to remove empty strings from the results array.
## Description
Upgrading Routerlicious server packages in Gitrest and Historian to pull
in changes from #22109.
Adds `getTelemetryContextProeprties` param to each BasicRestWrapper
instantiation
Updates existing `simple-test-suite` package to `test-suite-a`, and adds
a `test-suite-b` package that references it.
Also updates some related documentation.
## Description
Remove field nodes from FlexTree abstraction layer.
These used to be used for array nodes, but no longer power anything in
the public API.