Upcoming changes in the repository #8870
pranavrajs
announced in
Releases & Announcements
Replies: 1 comment
-
Hello, any update on this one ? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hey everyone,
As you may already know, our project currently uses a couple of outdated packages. Understandably, this has started causing problems for us. Specifically, the production build time has become excessively long. This issue has been discussed in the community, with many users noting the need for a powerful machine to build Chatwoot despite not requiring as many resources to run in production. Furthermore, the development time is also affected due to costly rebuilds and the significant time it takes to apply updates. We are taking steps to address this issue.
Here is an overview of the changes happening in the coming weeks.
Migration from Webpack to Vite
Since we can't migrate all the dependencies at once, we will attempt to migrate them in parts. We have already made migration attempts in multiple PRs, as you can see in #8800, #7953, #4245, and #3103.. Single shot migration has been failure before.
Our primary objective is to switch the build tool from
webpack
tovite
and eliminate the need for thewebpacker
gem. We have created a repository(chatwoot-ui-monorepo)[1] for the UI build. For the build process, we will be utilizing Vite[2] and TurboRepo[3]. As a result, there will be significant code changes, including the removal of multiple dependencies, leading to a more streamlined codebase.Migration to Vue 3
Once the Vite migration is complete, we will proceed with migrating the app to Vue 3. This change will also involve deprecating VueX in favor of Pinia.
After completing the entire migration, we will merge the changes back into the main repository. Until then, development may be a little challenging as you will need to run two separate projects simultaneously. If you need any assistance in setting it up, please let us know.
Monorepo for development
Instead of building a single monolith, we will break the project into smaller projects, such as a dashboard, help center, and widget. However, we do not want to manage multiple repositories and versions for each. This is where a monorepo helps. It allows us to maintain a collection of apps within a single repository. If you are unfamiliar with monorepos, I suggest reading the guide from the Turborepo team [4].
What does this mean for you?
1/ If you are using Chatwoot Cloud (app.chatwoot.com)
Nothing changes for you. We will handle this.
2/ If you are using a self-hosted Chatwoot in production
Deployment and upgrades will remain unchanged. We will ensure that the production upgrade workflow remains the same for all types of installations. There will be no change in the deployment steps.
3/ If you are contributing to Chatwoot
This workflow will be impacted. You will have to setup the chatwoot-ui-monorepo repository to contribute to the frontend. SDK and Widget are only impacted, we will soon move the dashboard also there.
Please let us know if you have any concerns or questions.
[1] https://github.com/chatwoot/chatwoot-ui-monorepo
[2] https://turbo.build
[3] https://vitejs.dev
[4] https://turbo.build/repo/docs/handbook/what-is-a-monorepo
Beta Was this translation helpful? Give feedback.
All reactions