You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In some scenarios, the release type picker produces a changed release object, despite the user making no intentional changes.
For example: when transitioning from an "at time" to an "ASAP" release, and then back again (without first closing the picker), the initial metadata.intendedPublishAt value is lost. This causes a mutation to occur when the user closes the release type picker when no mutation was expected. This is problematic because it produces an unexpected spinner in the UI, and could cause subtle unintended mutations.
This branch fixes several scenarios that provoked this bug.
What to review
The release type picker.
Testing
Added component tests for the known scenarios that provoke this bug.
Notes for release
Fixes a bug that caused the release type picker to unexpectedly enter a loading state.
efps — editor "frames per second". The number of updates assumed to be possible within a second.
Derived from input latency. efps = 1000 / input_latency
Detailed information
🏠 Reference result
The performance result of sanity@latest
Benchmark
latency
p75
p90
p99
blocking time
test duration
article (title)
43ms
56ms
66ms
310ms
767ms
10.7s
article (body)
15ms
17ms
22ms
264ms
497ms
6.2s
article (string inside object)
36ms
37ms
38ms
144ms
127ms
6.4s
article (string inside array)
41ms
43ms
45ms
149ms
140ms
6.8s
recipe (name)
20ms
21ms
26ms
52ms
0ms
7.9s
recipe (description)
17ms
18ms
21ms
35ms
0ms
4.5s
recipe (instructions)
5ms
7ms
8ms
11ms
0ms
3.0s
synthetic (title)
51ms
56ms
61ms
327ms
1092ms
12.9s
synthetic (string inside object)
52ms
60ms
73ms
258ms
1014ms
8.4s
🧪 Experiment result
The performance result of this branch
Benchmark
latency
p75
p90
p99
blocking time
test duration
article (title)
41ms
45ms
71ms
420ms
833ms
11.0s
article (body)
15ms
18ms
26ms
274ms
392ms
6.2s
article (string inside object)
38ms
41ms
43ms
134ms
134ms
6.9s
article (string inside array)
45ms
48ms
54ms
199ms
482ms
8.0s
recipe (name)
20ms
23ms
35ms
46ms
2ms
7.6s
recipe (description)
17ms
18ms
21ms
34ms
0ms
4.5s
recipe (instructions)
5ms
7ms
7ms
8ms
0ms
3.0s
synthetic (title)
48ms
51ms
59ms
210ms
589ms
12.7s
synthetic (string inside object)
49ms
51ms
54ms
622ms
914ms
8.4s
📚 Glossary
column definitions
benchmark — the name of the test, e.g. "article", followed by the label of the field being measured, e.g. "(title)".
latency — the time between when a key was pressed and when it was rendered. derived from a set of samples. the median (p50) is shown to show the most common latency.
p75 — the 75th percentile of the input latency in the test run. 75% of the sampled inputs in this benchmark were processed faster than this value. this provides insight into the upper range of typical performance.
p90 — the 90th percentile of the input latency in the test run. 90% of the sampled inputs were faster than this. this metric helps identify slower interactions that occurred less frequently during the benchmark.
p99 — the 99th percentile of the input latency in the test run. only 1% of sampled inputs were slower than this. this represents the worst-case scenarios encountered during the benchmark, useful for identifying potential performance outliers.
blocking time — the total time during which the main thread was blocked, preventing user input and UI updates. this metric helps identify performance bottlenecks that may cause the interface to feel unresponsive.
test duration — how long the test run took to complete.
juice49
changed the title
Fix/sapp 2107/unchanged release type picker should noop
fix(sanity): prevent release type picker request occurring when type unchanged
Feb 19, 2025
juice49
changed the title
fix(sanity): prevent release type picker request occurring when type unchanged
fix(sanity): prevent unexpected release type picker mutation
Feb 19, 2025
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
In some scenarios, the release type picker produces a changed release object, despite the user making no intentional changes.
For example: when transitioning from an "at time" to an "ASAP" release, and then back again (without first closing the picker), the initial
metadata.intendedPublishAt
value is lost. This causes a mutation to occur when the user closes the release type picker when no mutation was expected. This is problematic because it produces an unexpected spinner in the UI, and could cause subtle unintended mutations.This branch fixes several scenarios that provoked this bug.
What to review
The release type picker.
Testing
Added component tests for the known scenarios that provoke this bug.
Notes for release
Fixes a bug that caused the release type picker to unexpectedly enter a loading state.