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
[UI] Framework and Library Packages Upgrades and Removal #6680
Comments
This issue has been labeled with 'component/ui'. 🧰 Here are docs on Contributing to Meshery UI. 🎨 Here is the Meshery UI Figma File File. Lastly, here are docs on Contributing to Meshery's End-to-End Tests Using Cypress.
|
@acald-creator just a quick question. why exactly are we not using prettier? i think we should have a prettier config file defined for formatting Example:- this is from another OSS |
I agree with this. Next.js also has better support for prettier, which we will get to in this upgrade. Thanks for bringing this @Udit-takkar |
Following |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue is being automatically closed due to inactivity. However, you may choose to reopen this issue. |
This issue has been open for some time with no recent activity, unassigning to open it up for new contributors to give it a go. |
Hello, I am very interested in this project and would like to contribute in this season of LFX;) |
Idea sounds great! Would love to develop this. |
Hello, I'm interested to contribute in this project for this season |
The project seems interesting, and I'm interested to contribute. |
Hi @nebula-aac @leecalcote is it fine if I can make PR for this issue, I have set up the project(UI) on my machine and am very eager to contribute. |
This open has multiple things that needs to be done, some of which have been placed on pause because there are deprecated packages that will make it difficult to migrate in this process. Can you provide information on what you're familiar with and what you could do? |
@ShivamAhir thanks for reaching out. Please note that this issue will needs to be updated to reflect some of the findings I gathered in order to complete this issue. Please keep an eye out. Can you provide some details on what you're familiar with? |
Currently, for deprecated packages, we have the option to transition to the latest versions. Initially, we can migrate the packages to the latest version of React. In the long term, this approach will facilitate a smoother conversion to Next.js. To accomplish this, routing adjustments aligned with Next.js standards need to be implemented. I am proficient in both React and Next.js and I think I can help in this issue. |
I already have several prototypes on upgrading this to Next.js 14 and React 18, and while it is possible, there are a couple packages that will block making the changes as needed. One of the main deprecated packages that will be difficult to migrate is While it is feasible to work on this, there is still a need to complete other tasks in the same process to ensure that this is a smooth transition. Next.js 12 only works with React@17, but will not work properly in React 18, and it is important to upgrade both at the same time, as well as making changes to There is also a need to migrate Class components to Function components, and also migrating redux to use the latest hooks from I have a tentative plan, but this issue will need to be updated to reflect this. |
Hey @nebula-aac , thanks for the reply! I'm quite familiar with React.js and Next.js for the frontend, and Express.js and Node.js for the backend. Additionally, I have a good understanding of database technologies. |
Hello @nebula-aac As you mentioned, there will be breaking changes, but we can slowly move ahead with fixes for each break. The version upgrade will allow us to use the latest developments in NextJS and MUI v5. I have experience of working with ReactJS,NextJS and Material UI, and would love to work on this issue. And for the |
Hi @nebula-aac, I'm interested in contributing to the above issue as it aligns with my skills in Next.js, react, and MUI. I have already worked on multiple projects on the same tech. I can help with the issue Material Ui v4 and we will need to track to upgrade to MUI v5. If you don't mind, can you please assign this issue to me? Thanks |
Hello @nebula-aac , Can you please confirm once whether the packages issues still persists? Best Regards, |
This is still relevant. And while this is part of the LFX objective, it will still be needed afterwards. There is work to create a newer Next.js app with the updated components in the Sistent Design System to keep from interfering with Meshery UI repo. There is equal work to update in this present repo but it is slow going. |
Desired Behavior
Would like to upgrade Meshery UI libraries to latest packages. PLEASE NOTE This is a work in progress to track our progress to
Next.js v13
at the very least.Currently,
meshery/ui
has a rather large list of NPM packages, but it would be helpful to initiate a chore to clean up packages that are no longer needed for theui
project.Here are some suggestions of packages that are no longer needed or not being used directly in
meshery/ui
. Any feedback is welcome.glob-parent
@types/react-relay
caniuse-lite
color-string
@babel/traverse
cron-time-generator
set-value
minimist
*webpack
andwebpack-cli
are not being directly, in the upcoming Next.js version above 11, Next.js is usingwebpack
internally, so there is no need to use these directly, unless there is plan to continue usingwebpack-cli
directly.webpack
is needed for Cypress testing.*next-compose
- Next.js has better supports for plugins, and the package is over 5 years old.Concerns to address in Next.js 13
Next.js
13 requiresReact 18
, which means a couple of the packages will not supportReact 18
directly or indirectly. (WIP)react-codemirror2
is about 2 years old, and no longer maintained. Suggest to use@uiw/react-codemirror
which supportsReact 17
and above. There will be about 11 files or so that needs to be refactored to rename the inports.DONE - Solve by renaming imports."react-select": "^2.4.3"
will needs to be ugpraded to the latest versionv5.7.0
eslint
configuration in the following files:package.json
, and.eslintrc.js
.Next.js
currently supportseslint
default vianext lint
. There is also support forprettier
andlint-staged
.eslint
is currently atv7
, suggest to move tov8
to follow the typicalNext.js
12/13 project layout.eslint-loader
has been deprecated and moved toeslint-webpack-plugin
. Reassess if this package is still needed.eslint-plugin-*
have not been used within the project. Reassess to see if these packages are still needed in terms of linting standard.eslint-config-airbnb
eslint-config-google
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
Next.js
built-in support foreslint
. This will assist in refactoring or updating.eslintrc.js
to ensure we are not replicating efforts fromNext.js
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-next
Next.js 12
and above has built-in support forwebpack v5
. Any prior custom configurations are consideredwebpack 4
and may not work properly. Will need reassessment on the custom configuration forwebpack v4
because common configurations are currently supported through eitherplugins
orSWC
. NEED MORE RESEARCHNext.js 12
and above also has built-in support forSWC
which is an alternative toBabel
. If.babelrc
is still being used,SWC
has been disabled, andNext.js
will fallback toBabel
. Reasses ifBabel
is still needed for development or production purposes.Next.js
also supports environment variables through use case of.env
,.env.local
,.env.development
and.env.production
instead of through existingwebpack
custom configuration.relay.config.js
to useNext.js
built-in support for Relay (client-sideGraphQL
)Material Ui v4
and we will need to track to upgrade toMUI v5
.@material-ui/*
will need to be changeover to@mui/*
.Certain imports such as
withStyles
anduseStyles
are deprecated completely inv5
.MUI v5
usesEmotion
as the style engine and will no longer useJSS
as its style engine.CSS
framework to lessen the burden onNext.js
recompilingCSS/CSS-in-JS
styles. Other styling packages being used arejss
,react-jss
, andstyled-jsx
. Will need to reassss its benefits to the project.Next.js 11
and above allows you to importCSS
files from aJavaScript
file. This is possible becauseNext.js
extends the concept of import beyondJavaScript
.Global CSS
files frompages/_app.js
as it is meant to override styles globally.component.module.css
and directly import them anyway in the project. This may increase the level of complexity and may lose placement of where the style configurations are.Contributor Guides and Handbook
The text was updated successfully, but these errors were encountered: