Repository navigation
chore: remove redux from package.json, update comments - #2180
Merged
Merged
Conversation
brian-smith-tcril
added this pull request to stack #2169
October 14, 2026 16:27
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2180 +/- ##
==========================================
+ Coverage 95.85% 96.16% +0.31%
==========================================
Files 373 373
Lines 6146 6025 -121
Branches 1516 1480 -36
==========================================
- Hits 5891 5794 -97
+ Misses 246 222 -24
Partials 9 9 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
package.json, update comments
brian-smith-tcril
force-pushed
the
bsmith/special-exams-redux-teardown
branch
2 times, most recently
from
October 14, 2026 16:55
99656cd to
0e05df8
Compare
brian-smith-tcril
marked this pull request as ready for review
October 14, 2026 16:56
brian-smith-tcril
force-pushed
the
bsmith/special-exams-redux-teardown
branch
from
October 15, 2026 15:23
0e05df8 to
f8d40aa
Compare
6 tasks done
…emovals Wiped package-lock.json and node_modules, ran `npm install`, then `npm dedupe` (as #2042 did). package.json is unchanged, so every line here is the current ranges resolving to newer versions: 132 version changes, one major (ajv-formats 2 to 3, under copy-webpack-plugin's schema-utils). Dedupe keeps a single react-intl 6.8.9 and @types/node 22, so no pins are needed. Part of #2018. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The last redux store went in #2168, so @reduxjs/toolkit, react-redux and redux leave package.json, along with reselect, the selector library used with them, whose last import went in #2146. The lock is regenerated from scratch again (install, then `npm dedupe`). @reduxjs/toolkit, redux-thunk, @types/react-redux and reselect leave the tree. react-redux and redux stay as frontend-platform's peers, with one react-redux 8.1.1 shared with frontend-plugin-framework. @types/react and @types/react-dom ^18 join devDependencies, as in frontend-template-application and frontend-app-authoring. Without learning's own react-redux 7, npm places the react-redux 8 peer at the root, whose optional @types/react peer allows only 16–18, while @testing-library/react's optional @types/react-dom peer resolved to 19, which needs @types/react 19; npm stopped with ERESOLVE. Declaring the React 18 types resolves both to 18. Closes #2018. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Learning no longer has a Redux store, so comments that offer it as an option, name it as a data source, or compare code with the slices and thunks it replaced now mislead. The LearnerToolsSlot README and comment point plugins at config and backend APIs instead, and the SequenceNavigation TODO names `useUnit` as the value that overrides the lock icon. The plugin-overrides README keeps its migration guide for plugins that still dispatch to the old store. Part of #2018. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brian-smith-tcril
force-pushed
the
bsmith/special-exams-redux-teardown
branch
from
October 15, 2026 15:30
f8d40aa to
dfffb5a
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Removes the redux packages now that no learning code uses them: #2168 removed the last store. Closes #2018, the last layer of its stack (above #2168, which is above #2164). Part of #1946.
What changed
Three commits, to keep each lock diff readable:
package-lock.jsonfrom scratch (wipe the lock andnode_modules,npm install,npm dedupeas chore: regeneratepackage-lock.json#2042 did) withpackage.jsonunchanged, so the diff is only the current ranges resolving to newer versions.@reduxjs/toolkit,react-redux,reduxandreselect(the selector library, whose last import went in refactor: make the courseware redirects declarative and drop their fire-once guards #2146) frompackage.jsonand regenerate the same way.@types/reactand@types/react-dom^18join devDependencies, as in frontend-template-application and frontend-app-authoring: without learning's ownreact-redux7, a fresh install failed with ERESOLVE on@types/react18 vs 19 (decision 4).src; the plugin-overrides migration guide stays.reduxandreact-reduxremain in the tree only as frontend-platform's peers and frontend-plugin-framework's dependencies (one copy each), until the frontend-base port (#1905).Testing
npm run lintandnpm run typesclean;npm test: 124 suites, 1,279 tests;npm run buildcompiles with webpack's two usual asset-size warnings.npm ls @reduxjs/toolkitis empty.Decisions
Every choice in this layer, with the reasons:
Full decision log
Decisions — remove the redux packages (#2018)
Layer 3 of the #2018 stack, above #2168 (which adopted
@edx/frontend-lib-special-exams5.0.0 and removed learning's reduxstore); closes #2018. This is the library-gated dependency removal #1978
described and handed to #2018 when #1977 closed it. Settled 2026-10-14.
package-lock.jsonandnode_modules, runnpm install, thennpm dedupe(as chore: regeneratepackage-lock.json#2042 did). The first runs withpackage.jsonunchanged and is committed alone, so its diff is only the current
ranges resolving to newer versions: 132 version changes, one major
(
ajv-formats2 to 3, under copy-webpack-plugin'sschema-utils).Without dedupe a fresh install hoists react-intl 10 (Paragon's peer
range allows it), which is ESM-only and fails Jest, and
@types/node26, which fails types; with dedupe the tree keeps react-intl 6.8.9 and
@types/node22 and no pins are needed. The second regenerationcarries the removals, so its lock diff is only what they cause (plus
electron-to-chromium1.5.455 to 1.5.456, released between the two).package.json:@reduxjs/toolkit,react-reduxandredux, which no learning code imports since refactor!: adopt frontend-lib-special-exams v5 and drop the redux store #2168, andreselect,the selector library used with them, whose last import went in refactor: make the courseware redirects declarative and drop their fire-once guards #2146.
@reduxjs/toolkit,redux-thunk,@types/react-reduxandreselectleave the tree.
redux ^4.0.4,react-redux ^7.1.1 || ^8.1.1) andfrontend-plugin-framework (dependencies:
redux4.2.1,react-redux8.1.1). npm satisfies both with one root copy each,
react-redux8.1.1and
redux4.2.1, which replaces learning'sreact-redux7.2.9 andfrontend-plugin-framework's nested copy. Both packages stay through the
frontend-base port (Convert Learning to frontend-base #1905), which is when they leave.
@types/reactand@types/react-dom^18join devDependencies.Without learning's own
react-redux7.2.9 (whose only peer isreact), npm places frontend-platform'sreact-redux8 peer at theroot. Its optional
@types/reactpeer (^16.8 || ^17.0 || ^18.0)applies to the root
@types/react, which learning has as 18.3.31through react-intl, react-bootstrap and uncontrollable.
@testing-library/react's optional@types/react-dompeer thenresolved to 19.3.0, whose
@types/react ^19.3.0peer needs that sameroot copy to be 19, and a fresh install stopped with ERESOLVE. Learning
listed neither type package; the org's React 18 apps list both:
frontend-template-application, frontend-base and frontend-app-authoring
(as devDependencies:
^18, frontend-base^18.3.20and^18.3.6), and thefrontend-base apps account, profile, instructor-dashboard and
admin-console. Learning follows the template's spelling. No frontend-platform
app had dropped its own
react-reduxbefore, which is why none hitthis. The two go in the removal commit, not the first regeneration,
because only the removal needs them; no
overrides.GoalUnsubscribe.jsx's "don't need to bother with redux" note,TourContext.tsx's "mirrors the formertoursRedux slice" note, the"former end-tour thunks" parenthetical in
ProductTours.jsx, and the"old reducer … immer" note in
apiHooks.test.tsx(the test namealready says what it checks) are removed.
SequenceNavigation.test.jsx'sTODO still holds (
UnitButtonprefers the cached unit'scontentTypeover the
"lock"fallback), so only its source changes, from Redux touseUnit.src/generic/plugin-overrides/README.md, for plugins that stilldispatch to the old store, and ADRs 0004 (model store), 0006 (thunk
naming) and 0007 (testing, Draft), as history. No learning ADR for
React Query: OEP-67 frontend ADR 0010 ("React Query") is the
org-level decision.
!. Nothing consumer-facing changes beyond refactor!: adopt frontend-lib-special-exams v5 and drop the redux store #2168's break,where plugins lost the store.
suites, 1,279 tests pass;
npm run buildcompiles with webpack's twousual asset-size warnings;
npm ls @reduxjs/toolkitis empty.🤖 Generated with Claude Code