-
Notifications
You must be signed in to change notification settings - Fork 3
chore(deps): update dependency @reduxjs/toolkit to v2.9.1 #397
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
base: main
Are you sure you want to change the base?
Conversation
|
|
View your CI Pipeline Execution ↗ for commit fb01521
☁️ Nx Cloud last updated this comment at |
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (18.75%) is below the target coverage (40.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #397 +/- ##
=======================================
Coverage 18.75% 18.75%
=======================================
Files 138 138
Lines 27368 27368
Branches 951 951
=======================================
Hits 5132 5132
Misses 22236 22236 🚀 New features to boost your workflow:
|
|
Deployed 6e60d19 to https://ForgeRock.github.io/ping-javascript-sdk/pr-397/6e60d1951bbd3b6a6d4122b6087db43ec897e715 branch gh-pages in ForgeRock/ping-javascript-sdk |
📦 Bundle Size Analysis📦 Bundle Size Analysis🆕 New Packages🆕 @forgerock/device-client - 9.2 KB (new) 13 packages analyzed • Baseline from latest Legend🆕 New package ℹ️ How bundle sizes are calculated
🔄 Updated automatically on each push to this PR |
3adf9c8 to
db6c5b8
Compare
db6c5b8 to
4178501
Compare
4178501 to
c00f15b
Compare
c00f15b to
ce3103a
Compare
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Comment |
31a31a7 to
c0f0948
Compare
c0f0948 to
3998ef2
Compare
3998ef2 to
b92894b
Compare
b92894b to
df78746
Compare
df78746 to
3e08718
Compare
3e08718 to
6d8a539
Compare
6d8a539 to
ad7f3bb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nx Cloud has identified a possible root cause for your failed CI:
The task failure is classified as 'flaky_task' based on the following analysis:
PR Changes Analysis:
The pull request only modifies pnpm-lock.yaml, updating @reduxjs/toolkit from version 2.8.2 to 2.9.1, along with transitive dependency updates including @jridgewell/trace-mapping, detect-libc, loader-runner, node-abi, schema-utils, semver, tapable, and tar-fs. These are infrastructure-level dependency updates that do not modify application code, business logic, or test behavior.
Failure Analysis:
Both failing tests follow the same pattern:
- Navigate to a page with a specific DaVinci flow
- Fill in username and password fields
- Click the "Sign On" button
- Expect to see a risk blocking message ("Sorry Bot, we cannot let you in this time." or "You were blocked by PingOne Risk")
- Both tests fail because the expected blocking message never appears within the 5-second timeout
Root Cause:
The test failures are caused by the PingOne Risk/Protect service not blocking the test user as expected. This is an external service behavior issue, not related to the dependency updates in the PR. The Redux Toolkit version bump and related transitive dependency updates do not affect:
- The Playwright test execution logic
- The risk assessment service integration
- The UI rendering of blocking messages
- The authentication flow behavior
The tests are dependent on an external risk assessment service properly flagging and blocking the test user, which appears to be failing intermittently or not functioning as expected in this test environment. This represents a flaky test scenario where the test outcome depends on external service behavior rather than the code changes in the PR.
No code changes are required because the dependency updates are not the source of the test failures. The issue lies with the test environment's integration with the PingOne Risk/Protect service.
A code change would likely not resolve this issue, so no action was taken.
🎓 To learn more about Self Healing CI, please visit nx.dev
ad7f3bb to
fb01521
Compare
@forgerock/davinci-client
@forgerock/oidc-client
@forgerock/protect
@forgerock/sdk-types
@forgerock/sdk-utilities
@forgerock/iframe-manager
@forgerock/sdk-logger
@forgerock/sdk-oidc
@forgerock/sdk-request-middleware
@forgerock/storage
commit: |
This PR contains the following updates:
2.8.2->2.9.1Release Notes
reduxjs/redux-toolkit (@reduxjs/toolkit)
v2.9.1Compare Source
This bugfix release fixes how sorted entity adapters handle duplicate IDs, tweaks the TS types for RTKQ query state cache entries to improve how the
datafield is handled, and adds better cleanup for long-running listener middleware effects.What's Changed
dataon isSuccess withexactOptionalPropertyTypesby @CO0Ki3 in #5088listenerMiddleware.clearListenersby @chris-chambers in #5102Full Changelog: reduxjs/redux-toolkit@v2.9.0...v2.9.1
v2.9.0Compare Source
This feature release rewrites RTK Query's internal subscription and polling systems and the
useStableQueryArgshook for better perf, adds automaticAbortSignalhandling to requests still in progress when a cache entry is removed, fixes a bug with thetransformResponseoption for queries, adds a newbuilder.addAsyncThunkmethod, and fixes assorted other issues.Changelog
RTK Query Performance Improvements
We had reports that RTK Query could get very slow when there were thousands of subscriptions to the same cache entry. After investigation, we found that the internal polling logic was attempting to recalculate the minimum polling time after every new subscription was added. This was highly inefficient, as most subscriptions don't change polling settings, and it required repeated O(n) iteration over the growing list of subscriptions. We've rewritten that logic to debounce the update check and ensure a max of one polling value update per tick for the entire API instance.
Related, while working on the request abort changes, testing showed that use of plain
Records to hold subscription data was inefficient because we have to iterate keys to check size. We've rewritten the subscription handling internals to useMaps instead, as well as restructuring some additional checks around in-flight requests.These two improvements drastically improved runtime perf for the thousands-of-subscriptions-one-cache-entry repro, eliminating RTK methods as visible hotspots in the perf profiles. It likely also improves perf for general usage as well.
We've also changed the implementation of our internal
useStableQueryArgshook to avoid callingserializeQueryArgson its value, which can avoid potential perf issues when a query takes a very large object as its cache key.Abort Signal Handling on Cleanup
We've had numerous requests over time for various forms of "abort in-progress requests when the data is no longer needed / params change / component unmounts / some expensive request is taking too long". This is a complex topic with multiple potential use cases, and our standard answer has been that we don't want to abort those requests - after all, cache entries default to staying in memory for 1 minute after the last subscription is removed, so RTKQ's cache can still be updated when the request completes. That also means that it doesn't make sense to abort a request "on unmount".
However, it does then make sense to abort an in-progress request if the cache entry itself is removed. Given that, we've updated our cache handling to automatically call the existing
resPromise.abort()method in that case, triggering theAbortSignalattached to thebaseQuery. The handling at that point depends on your app -fetchBaseQueryshould handle that, a custombaseQueryorqueryFnwould need to listen to theAbortSignal.We do have an open issue asking for further discussions of potential abort / cancelation use cases and would appreciate further feedback.
New Options
The builder callback used in
createReducerandcreateSlice.extraReducersnow hasbuilder.addAsyncThunkavailable, which allows handling specific actions from a thunk in the same way that you could define a thunk insidecreateSlice.reducers:createApiand individual endpoint definitions now accept askipSchemaValidationoption with an array of schema types to skip, ortrueto skip validation entirely (in case you want to use a schema for its types, but the actual validation is expensive).Bug Fixes
The infinite query implementation accidentally changed the query internals to always run
transformResponseif provided, including if you were usingupsertQueryData(), which then broke. It's been fixed to only run on an actual query request.The internal changes to the structure of the
state.api.providedstructure broke our handling ofextractRehydrationInfo- we've updated that to handle the changed structure.The infinite query status fields like
hasNextPageare now a looser type ofbooleaninitially, rather than strictlyfalse.TS Types
We now export Immer's
WritableDrafttype to fix another non-portable types issue.We've added an
api.endpoints.myEndpoint.types.RawResultTypetypes-only field to match the other available fields.What's Changed
transformResponsewhen aqueryis used by @markerikson in #5049Full Changelog: reduxjs/redux-toolkit@v2.8.2...v2.9.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.