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 repository needs to transition from its current state that's locked into a few realities, to a new state that represents a major upgrade. That's the TLDR, but here's the details:
the last version before React v18 must be adopted (v13.10.0)
When doing the series of Nx upgrades, I remember trying to make v13.10+ work by manually downgrading React or installing v17 under an alias. I remember things going wrong. But i don't have details to share, I'd have to try it again.
see the minor release history, so many things we can benefit from, i'm highlighting the major ones here
controls:
Storybook v7.5.3
see the minor release history, the 6 minor releases we're behind all have very beneficial features
Jest v29.4.1
TypeScript v5.2.2
The primary blocker is that we can't maintain two versions of React at the same time and keep using Nx to develop -- we need its tailored environment of dependencies and tools that work together. We need to migrate to React v18 so we can update Nx. Since React v18 is not supported by MUI v4, we need to simultaneously update MUI to v5 (or v6 if available).
So what does that mean in terms of actual steps/work? Well, basically rewriting the libraries entirely. We do not use MUI v4 in a way that's normal for consumers, so most of the migration guide really doesn't apply to us. We take a highly tailored approach towards customization, not just working with the material-design-ish theme, but adding and changing props, adding new classes, slots, components, re-implementing components, deeply customizing theme and built-in utils, re-defining a default theme, etc. The list goes on.
Okay so full rewrite. I don't see a path forward that allows us to keep things side by side.
But, we don't have to release all at once. Instead I propose erasing the current state, step-by-step to allow for careful review and history. Then, rebuild a modern Nx repo from scratch (having the added benefit of not carrying all the cruft that got carried through in migrations: CRA -> TSDX -> Nx). We create two new packages, still under the @prenda namespace, but dropping the long-deprecated "spark" moniker. We can call the packages just "components" and "icons". We then install MUI v5/6, and rebuild things one-by-one.
The text was updated successfully, but these errors were encountered:
WilliamKelley
changed the title
Re-initialize repository to use latest Nx, React v18, and MUI v5/6
Re-initialize repository with latest Nx, React v18, and MUI v5/6
Nov 16, 2023
This repository needs to transition from its current state that's locked into a few realities, to a new state that represents a major upgrade. That's the TLDR, but here's the details:
Current state. In order of consequence:
@material-ui/core@^4.12.3
,@material-ui/lab@^4.0.0-alpha.60
Desired state
The primary blocker is that we can't maintain two versions of React at the same time and keep using Nx to develop -- we need its tailored environment of dependencies and tools that work together. We need to migrate to React v18 so we can update Nx. Since React v18 is not supported by MUI v4, we need to simultaneously update MUI to v5 (or v6 if available).
So what does that mean in terms of actual steps/work? Well, basically rewriting the libraries entirely. We do not use MUI v4 in a way that's normal for consumers, so most of the migration guide really doesn't apply to us. We take a highly tailored approach towards customization, not just working with the material-design-ish theme, but adding and changing props, adding new classes, slots, components, re-implementing components, deeply customizing theme and built-in utils, re-defining a default theme, etc. The list goes on.
Okay so full rewrite. I don't see a path forward that allows us to keep things side by side.
But, we don't have to release all at once. Instead I propose erasing the current state, step-by-step to allow for careful review and history. Then, rebuild a modern Nx repo from scratch (having the added benefit of not carrying all the cruft that got carried through in migrations: CRA -> TSDX -> Nx). We create two new packages, still under the
@prenda
namespace, but dropping the long-deprecated "spark" moniker. We can call the packages just "components" and "icons". We then install MUI v5/6, and rebuild things one-by-one.The text was updated successfully, but these errors were encountered: