Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changeset workflow permissions #4

Merged
merged 6,101 commits into from
Jan 23, 2024
Merged

Changeset workflow permissions #4

merged 6,101 commits into from
Jan 23, 2024

Conversation

Abe27342
Copy link
Owner

No description provided.

Abe27342 and others added 30 commits December 21, 2023 16:28
## Description

This has caused a few incidents from the e2e test pipeline. AB#6515
tracks fixing the test.

Co-authored-by: Abram Sanderson <[email protected]>
Avoid 'import/no-internal-module' when importing from internal *.d.ts
## Description
The IdCompressor needs to be enabled for SharedTree after microsoft#18775 goes
in. Because that PR is so big, we're splitting as many non-tree changes
out as possible.
Rename 

OldFieldKind -> FlexFieldKind
OldAllowedTypes -> FlexAllowedTypes
OldImplicitAllowedTypes -> FlexImplicitAllowedTypes
The tsc-multi task was not generating doneFile content correctly. This
change corrects that bug and also adds some more debugging info to some
traces.

---------

Co-authored-by: Alex Villarreal <[email protected]>
## Description
Using the compressor in the new SharedTree was causing the migration
tests to fail. We added an API to the compressor to support the
migration scenarios. As part of this PR we're enabling the compressor in
migration tests that will need it when tree merges its use of the
compressor.
Unblocks importing from "@fluidframework/*/internal"
## Description

simple-tree contains a bunch of types which to schema aware typing using
the flex-tree schema.

As the simple-tree abstraction layer now has its own schema system, this
is not very useful, and this change migrates some code off the flex-tree
based simple-tree types.

This also makes a few places not generic over the flex-schema where that
caused less type safety (due to needing as casts) ad offered no little
value.

This brings class-tree and simple-tree's types closer together and is a
step toward combining them.
## Description

> Rendering multi API document version on FluidFramework public site.
Retrieve API package content for dropdown selected version number. If
the version number is not selected, it will show API overview page.

## Sample


https://github.com/microsoft/FluidFramework/assets/114451900/6d4be4f2-2e67-48c2-9bed-3e92cacb7289



AB#6175

---------

Co-authored-by: Michael Zhen <[email protected]>
Co-authored-by: Rishhi Balakrishnan <[email protected]>
Co-authored-by: Rohan Dubal <[email protected]>
## Description

simple-tree contains a bunch of types which to schema aware typing using
the flex-tree schema.

As the simple-tree abstraction layer now has its own schema system, this
is not very useful, and this change migrates some code off the flex-tree
based simple-tree types.

This also removes the (not package exported) simple-tree factories from
schema-builder, since there is a replacement for that using
SchemaFactory and constructors.

This brings class-tree and simple-tree's types closer together and is a
step toward combining them.
Picks up the fixes from
microsoft#18957

Updated the following:

  client (release group)

Dependencies on build-tools updated:

  @fluid-tools/build-cli: 0.29.0-225750
  @fluidframework/build-tools: 0.29.0-225750
  @fluidframework/bundle-size-tools: 0.29.0-225750
  @fluid-tools/version-tools: 0.29.0-225750
…#18964)

## Description

Constrain numbers a bit.
Move enum used in format into format file since changing it would impact
the format.
…marization attempt due to retries (microsoft#18849)

microsoft#18632 added GC sweep ops. As called out in the Todo section of that PR,
if GC succeeds but a follow up step fails during summarization, the next
GC run may generate an sweep op that contains the same deleted nodes id.
This PR adds tests to validate these two scenarios:
1. GC succeeds but summary fails multiple times on summarization retries
until the final summary attempt which is successful. A sweep op is sent
during the first attempt which may get acked during the attempts. When
it does, not further sweep ops are sent.
2. GC succeeds but summary fails multiple times on summarization retries
until the final summary attempt which is successful. The sweep ops are
not processed (inbound queue is paused) so every GC attempt ends up
sending a sweep op with the same deleted node ids.

Also, update `summarizeOnDemand` to support running with retries in case
of failures.

AB#6547
…ties (microsoft#18925)

Refactor the change method to include the changeProperties functionality
in addition to the regular change functionality. Also refactors the
method signature to take in the id and an object containing the desired
properties and/or endpoints to change.
## Description

Minimal (without understanding the actual format's use) audit of modular
change format.
This just makes it more strict, and should not be a breaking change.
Remove esm exports from packages that only build commonjs
The logic in `calculateMaxWaitTime` seems to be using the wrong value
when calculating the min
Updates the example-utils project to build using node16 module
resolution.
## Description

Tweak tree shape format to be more concise in encoded field batches.
Add snapshot tests for compressed and schema compressed chunked format.

## Breaking Changes

Documents encoded with this new version will not load with older
versions.
## Description

Move "versioned" utils to codec so they can be used by detached field
index.
Use utilities from versioned.
Move stringify to index instead of codec to align with how json coded
(which it uses) works.
Fixing a couple of minor things that are interferring with my tools.
## Description

Adds a lint rule which prevents static, non-type imports from
`SharedMap` in test-end-to-end-tests, as well as prose in the README
outlining the rationale for this rule existing.

This lint rule will expand to include other bits of the Fluid public API
which should come from the compat config in the future.

AB#4655

---------

Co-authored-by: Abram Sanderson <[email protected]>
…e case (microsoft#18983)

Adds an alternative format for the common case of a single node being
detached in a revision
CraigMacomber and others added 19 commits January 18, 2024 17:18
## Description

SchemaBuilder provides a lot of default/abstractions that are not part
of the flex-tree layer.
This change migrates several tests to use SchemaBuilderBase instead,
reducing implicit dependencies on concepts that are now simple-tree
only.
## Description

Adjusts the rule for `source-map-loader` to include `.mjs` files as well
as `.js` files. This should fix some issues with source-mapping
dependent packages while debugging our examples or setups running
webpacked versions of our examples.

Before:


![image](https://github.com/microsoft/FluidFramework/assets/5222607/c0fb8386-05bf-4dce-aed5-786beb408a33)


After:


![image](https://github.com/microsoft/FluidFramework/assets/5222607/33d5c045-250f-44bb-9709-c3eca8899ef2)

Co-authored-by: Abram Sanderson <[email protected]>
…mended` and fix violations (microsoft#19271)

Now that we've published a beta version of this package, it seems the
right time to tighten up eslint rules in this package. This PR upgrades
the config from "minimal" to "recommended" and fixes the resulting
violations.
[AB#6724](https://dev.azure.com/fluidframework/internal/_workitems/edit/6724)

Previous change: microsoft#19167

We were still getting summary nacks from ODSP for tests that odsp loader
compat. Did not realize that it was the loader that was causing the
issue. This also makes it so for ODSP full back compat loader + driver
tests we run only from the current version to version
`2.0.0-internal.3.x.y`
Updates our dev dependencies on `@microsoft/api-extractor` from `7.38.3`
to `7.39.1`. This update includes an updated dependency from
`api-extractor` on `typescript`, removing our need for pnpm-overriding
that dependency.

This PR also updates our local pnpm patches for `7.39.1`.
…rosoft#19301)

- adds a setConnected method to trees on `TestTreeProviderLite` to allow
for disconnecting/reconnecting
- adds tests for various combinations of edits on a removed tree where
the last gets resubmitted
- adds a test for editing a removed tree on a branch

---------

Co-authored-by: Yann Achard <[email protected]>
## Description

ADO:6510 - the test often times out
AB#6746
AB#6747
AB#6748

## Description
This PR fixes some styling issues in the OpLatency graph.
- updates x-axis styling to avoid clashing with text below
- update x-axis with label and formatting to be more readable instead of
raw timestamp.

![Screenshot 2024-01-19 at 4 06
03 PM](https://github.com/microsoft/FluidFramework/assets/23732584/d0f7fc0c-87c7-4afe-bd02-bf0bd9ee9ad8)
There currently isn't an explicit failure telemetry event when a
summarize fails all attempts, and as such dashboards are having to use
the `"Summarize_cancel"` event. However, there are certain expected
flows that will end up sending a `"Summarize_cancel"` telemetry event.
This event is seen as a "failure" when it could be a totally normal
flow.

In my mind, summarizer success/failure events should help answer 2
questions for dashboards and metrics:
1. What percentage of summaries are failing completely (no successful
retries)
2. How many retries are happening per success

In a real-world scenario, if a summarizer failed on 2 retries and
succeeded on the 3rd we would consider that a success. But our telemetry
is counting each individual retry as a failure, leading to improper
percentages of, for example, only succeeding 33% of the time.


[AB#6717](https://dev.azure.com/fluidframework/internal/_workitems/edit/6717)

**Note:** There currently exists the `"StoppingSummarizer"` event, but
this happens every time the summarizer stops for normal reasons.
Dashboards and metrics would need to be built off the [`"reason"`
property](https://github.com/kian-thompson/FluidFramework/blob/main/packages/runtime/container-runtime/src/summary/summarizerTypes.ts#L379),
which is subject to change and probably not the best way forward.
…long certain steps run (microsoft#19309)

## Bug
The GC test "Trailing op [afterSweepTimeout] transitions data store from
[ref -> unref] without deleting it" some times fails because the
following error telemetry is logged -
"fluid:telemetry:FluidDataStoreContext:GC_Deleted_DataStore_Unexpected_Delete".

## Root cause
In the last summary in this test, a data store may be sweep ready
depending on how much elapsed since the previous summary. The test used
sweep timeout as 100 ms so if that much time has passed, a GC sweep op
will be sent containing the id of the sweep ready data store. If this op
is processed by the time the test completes,
"fluid:telemetry:FluidDataStoreContext:GC_Deleted_DataStore_Unexpected_Delete"
will be logged. Since the sweep timeout is low, it is possible that in
certain cases, that times elapses between the last 2 summaries in the
test resulting in the data store being deleted.

## Fix
It's fine for the data store to be deleted in the scenario described
above. However, the container that created the data store should be
closed to emulate session expiry before sweep deletes it. The fix is to
close this container before running the last summary.

AB#6784
## Description

Add groupId to ISnapshotTree, ISummaryTree, ITree. This groupId will be
used to fetch the missing part of the snapsot from the service when they
are required. When the server returns the snapshot to the client, and
some tree is missing in that snapshot, then this groupId could be used
to request the missing contents from the service.

Base design is present in this doc: [Design
Doc](https://microsoft.sharepoint.com/:w:/t/FluidFramework/ESJQvukxffJNiTZzbNCWky4B891mpOpWD7BHhbOznXsMZg?e=UsxB7J)

This concept is talked here but missing in base design where "priority"
is used. Will update the base doc with this info:
[Doc Consisting info for the groupIdOrName
concept](https://microsoft.sharepoint-df.com/:fl:/g/contentstorage/CSP_e47249b7-d3bf-4f0b-9113-302661c1cf90/EZ0vH8pnufROnyNoUCjZYdUBOXP3t-6wRJvDbRCxcjQh9g?e=3daO3i&nav=cz0lMkZjb250ZW50c3RvcmFnZSUyRkNTUF9lNDcyNDliNy1kM2JmLTRmMGItOTExMy0zMDI2NjFjMWNmOTAmZD1iJTIxdDBseTVMX1RDMC1SRXpBbVljSFBrSTJHYURvUTZnRkh2a0g4SmdoU0lqQ0Y1RnNwZGg5elNMSG5ZMktKaVRhZSZmPTAxNjY0RFNKNDVGNFA0VVo1WjZSSEo2STNJS0FVTlNZT1YmYz0lMkYmYT1Mb29wQXBwJnA9JTQwZmx1aWR4JTJGbG9vcC1wYWdlLWNvbnRhaW5lcg%3D%3D)

---------

Co-authored-by: Jatin Garg <[email protected]>
## Description

update server to consume proto-defn prerelease

Co-authored-by: Jatin Garg <[email protected]>
As title, the next branch is no longer relevant right now.
Add inbound pausing/resuming for different containers to ensure the
messages sequence ordering.


[AB#6670](https://dev.azure.com/fluidframework/internal/_workitems/edit/6670)

---------

Co-authored-by: Tony Murphy <[email protected]>
…ight ops (microsoft#19302)

## Description

Reapplies the fix in microsoft#19211 with some changes to how strict we are with
the queue of in-flight ops. Notably, it appears that
`this.runtime.deltaManager.lastSequenceNumber` at op submit time
sometimes trails behind the reference sequence number that actually gets
submitted for that op, as evidenced by some e2e tests. This had
something to do with client leave/join messages. Rather than assert
equality on round-trip, I've converted the mismatch assert to verify
`<=`, since that's all that's required for correctness of the scheme.

The applyStashedOp codepath also happened to work before but in an
unexpected way: `reSubmit` was calling `.shift()` on an empty queue.
This PR adds enforcement to the reSubmit codepath and a corresponding
unit test for that flow.

The changes here are split naturally into commits for reviewers familiar
with that PR.

---------

Co-authored-by: Abram Sanderson <[email protected]>
## Description

"NoCompat" is no longer a supported argument to
`createCompatSuiteWithDefault`. This restores support for
`describeCompat.noCompat` by passing the current package version as the
min supported version.

---------

Co-authored-by: Abram Sanderson <[email protected]>
@Abe27342 Abe27342 merged commit 6bc6769 into main Jan 23, 2024
7 of 9 checks passed
@Abe27342 Abe27342 deleted the changeset-workflow-permissions branch January 23, 2024 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.