## Description
This is a private package that only runs some tests. It has no need of
production dependencies, so this PR does two things:
- Move all its dependencies to `devDependencies`
- Removes several dependencies that were not used
Current pattern ?.?.? doesn't support multi digit versions. Bump to
client 2.10.0 has caused the "Install package with perf tests" step to
be failing in the pipeline.
The `Client` class in the merge-tree package has been removed.
Additionally, types that directly or indirectly expose the merge-tree
`Client` class have also been removed.
The removed types were not meant to be used directly, and direct usage
was not supported:
- AttributionPolicy
- IClientEvents
- IMergeTreeAttributionOptions
- SharedSegmentSequence
- SharedStringClass
Some classes that referenced the `Client` class have been transitioned
to interfaces. Direct instantiation of these classes was not supported
or necessary for any supported scenario, so the change to an interface
should not impact usage. This applies to the following types:
- SequenceInterval
- SequenceEvent
- SequenceDeltaEvent
- SequenceMaintenanceEvent
The initial deprecations of the now changed or removed types were
announced in Fluid Framework v2.4.0:
[Several MergeTree Client Legacy APIs are now
deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629)
---------
Co-authored-by: Tyler Butler <tylerbu@microsoft.com>
## Description
generic types with an extends clause of `never` currently generate type
tests which do not compile due to any not extending never. This is fixed
by using `never` instead of `any`.
`@system` types which do not promise user facing stability are now
omitted from type testing.
The currently unused tags to opt into alternative type testing for a
given type have been converted from `-` separated to camel case since it
seems `-` does not work well in tags.
## Description
Currently, there are some filesystem operations in Gitrest that result
in a generic 400 HTTP error code, rather than a helpful HTTP status and
message based on the error that occurred.
This PR adds some wrapper functions that help determine if an error is a
FileSystemError (or RedisFSError, which is similar) and bubble that up
as a NetworkError that can be parsed for the HTTP response.
adds a new `changed` event to `TreeBranchEvents` that fires for both
local and remote changes
---------
Co-authored-by: Noah Encke <78610362+noencke@users.noreply.github.com>
Generates the release notes for 2.5. Most changesets have been updated
with minor wording and formatting changes. Command used to generate the
release notes:
```shell
pnpm flub generate releaseNotes -g client -t minor --outFile RELEASE_NOTES/2.5.0.md
```
---------
Co-authored-by: jzaffiro <110866475+jzaffiro@users.noreply.github.com>
1. `ISessionClient` method names updated for consistency to
`getConnectionId()` and `getConnectionStatus()`.
2. Implementation of `ISessionClient` moved to a full class object.
3. Changeset provided for Presence changes since 2.4.
4. Updated `id` to `ID` in comments (public and most internal).
No behavior is changed.
[AB#21446](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/21446)
---------
Co-authored-by: Willie Habimana <whabimana@microsoft.com>
Co-authored-by: Tyler Butler <tylerbu@microsoft.com>
There is nothing particularly Fluid-centric about the top-level API in
build-infrastructure; I just couldn't think of a better name at the
time. After discussion, we're going to call the top-level object a
BuildProject. The full hierarchy is now:
BuildProjects contain Workspaces contain ReleaseGroups contain Packages
This change required a lot of documentation updates and renaming other
related properties and functions beyond the BuildProject itself.
The package is private so these changes are safe.
previous shouldDeploy condition have not been included in deployment
condition. This variable has been updated to "forceDeployment" and
included back in the deployment condition.
shouldDeploy has been updated to check if release builds are the latest
version in its major version series.
## Description
It is possible to load a summary into a detached SharedTree. In this
case, the detached revision that is used to generate sequence IDs for
commits while detached must be updated to ensure that it doesn't
duplicate any of the sequence IDs already used in the summary. This PR
fixes the issue and also adds an assert when sequencing in the
EditManager to ensure that we don't sequence regressive sequence IDs.
This fix also allows us to trim the trunk when summarizing (without
breaking our fuzz tests), which reduces summary sizes especially for
detached trees with many synchronous edits.
## Description
Adjusts the `condition` parameter of
`include-conditionally-run-stress-test` to apply to the entire stage
rather than the test-running job. This improves the clarity from the
pipeline overview page, see most recent run vs previous ones:
![image](https://github.com/user-attachments/assets/e344d02a-a617-4163-bbda-0bfaac276541)
This also fixes the `stressMode` parameter not being given options at
queue time, which was introduced in #21702 and prevented the pipeline
from being queued.
---------
Co-authored-by: Abram Sanderson <absander@microsoft.com>
## Description
Users of `IntervalCollection` can specify a start and end `side` when
adding or changing an interval. Doing so changes the behavior for the
resulting `start` and `end` local references put into the merge tree:
using the default `Side.Before` causes references to slide forward when
the segment they exist on is removed, whereas using `Side.After` causes
references to slide backward.
In the common case, local reference positions sliding is initiated by
removing a segment in merge-tree. However, `IntervalCollection` also
reuses this slide logic when intervals are changed/added concurrently to
a segment removal. This latter case did not correctly plumb through the
sliding preference to the helper function it used, which gave
undesirable merge semantics.
Resolves
[AB#22191](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/22191).
Co-authored-by: Abram Sanderson <absander@microsoft.com>
Collect more data (telemetry) to better understand number of concurrent users in the document.
In addition to capturing quorum size, capture audience size, as well as capture how many socket connections there were in a session
## Description
The tests unnecessarily initialize a SharedTree during test discovery.
This exercises many common code paths in SharedTree (creation, editing,
etc.). Breakpoints set in these areas will be hit during the discovery
of these memory tests, even if the memory tests are not being run. This
is annoying and confusing for development - for example, running any
(unrelated) single SharedTree test from the test browser will also run
the memory test initialization code and hit extraneous breakpoints.
This PR removes the unnecessary initialization code, which is (sneakily)
happening in a property initializer.
## Description
Rename toFlexSchema to toStoredSchema to reflect that flex schema is no
longer a thing.
Rename/move tests to match what they are testing.
## Description
Updates our transitive dependencies on `path-to-regexp` to versions that
fixed https://nvd.nist.gov/vuln/detail/CVE-2024-45296 . Accomplished by
updating our direct dependencies on `sinon` to a mix of version 18 and
19, since that's the main way in which we get transitive dependencies on
`path-to-regexp`.
`@types/sinon` was also opportunistically updated to the latest version
where it wasn't already up to date.
## Description
Updates `tar` to version `6.2.1` to address
https://nvd.nist.gov/vuln/detail/CVE-2024-28863 . Done by adding a
`pnpm.overrides` entry `"tar": "^6.2.1"` to the package.json of each of
the affected packages, running `pnpm i --no-frozen-lockfile`, then
removing the override from package.json and running the same command
again.
Updates the configuration for build-tools packages to use fluid-build to
build.
The changes were modest since it was already using fluid-build for most
of the build. Only the root-level tasks needed to be hooked up, and the
individual package scripts needed to be updated.
[AB#17062](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/17062)
## Description
This PR improves GraphCommits in a couple of ways.
1. It adds a protective assert to the properties of commits that have
been trimmed by the EditManager. This prevents any part of our system
from accessing those commits without immediately throwing an error. This
will catch any bugs that try to hold on to stale graph commits much
sooner than they would otherwise be caught.
2. It removes the rollback property from GraphCommit and implements it
via a WeakMap instead. This is appropriate because the rollback property
is only used by a single scoped feature, so it need not be a property
that is visible to all other code that works with GraphCommits.