-
Notifications
You must be signed in to change notification settings - Fork 10.9k
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
minimal packages needed for faster rebuilds #2255
Comments
|
the first build is always awful, but this version is meant to improve subsequent builds (code edits) I removed livechat and some others
feels a lot longer tho :) with the sorry state of testing in meteor , edit/build is the only way to work 👎 As I said I pulled out some other packages (eg push-notifications), but then hit errors with the site, so not sure what dependencies are for a |
@dcsan my team has been thinking about this also. There's A LOT of non essential code running and contributions that might only be useful for a handful of people. I've been advised to disable my contributed packages by default, but I think this has been inconsistently enforced. I have a solution in mind, let me know if it works for you and I'd be really happy for some help on it.
There might also need to be some refactoring of non-essential packages that are not able to be disabled because they've been woven into the core fabric without conditional checks. Can't think of exact examples, but I've noticed some before. @garychapman has been working on our draft for the step 1 docs. We're looking for help to complete this...
|
Have you guy tried the develop branch? We are now using Meteor 1.4.1.1 an it seems considerably faster. |
yeah i basically gave up on meteor 6 months ago because of rebuild times. it's nice for hackathons but as soon as you really have an app with a bunch of code you're in deep shit. |
Related to meteor/meteor#4284 |
@dcsan have you guys still working with Rocket.Chat? Can we have a talk to get your feedback on your reasons either way? |
@timkinnane I like the idea about the commented file, this would be a great start. Ideally, ONLY the |
@engelgabriel happy to have a chat. we're not using Rocket.Chat. although it's fine as an end-user it's too painful and tedious to work on as a developer. |
First draft at addressing RocketChat#2255
@dcsan I started a package here, testing removing some (imo) extraneous packages. I took some fairly big ones out, like Livechat, Sandstorm. The result is a much faster and less complicated build, but I had to also chase down some errors where packages were being referenced in core without checking if the package is enabled. That part was pretty simple, e.g. Still, it would be nice to have an easy consistent method in rocketchat lib instead, like ' NB: I started from v0.38 for this branch, because that's where my production apps are. I'd be happy for any help testing and merging with current develop before I submit the PR. |
Ideally another part of that PR would be the docs to detail what each package is/does. I don't know what half of them do, but it would be an important reference for people who are impacted by us turning off features they may rely on. |
Were you able to get Rocket to remove the packages so that they do not show up in the UI? I have been trying to remove the OAuth settings we don't want to have available - and even though I had removed the packages, they still show up in the UI - even in a new database. |
I've found that certain settings will exist in the app long after being removed, even after directly deleting them through mongo. Try restarting the server from Administration menu > General > Restart. That does some kind of magic cleanup that doesn't seem to occur any other way. |
Afraid that didn't work. |
@asthomasdk there is an environment variable to LOCK and HIDE admin settings that you don't want to expose, even to the Rocket.Chat admin. Please as @sampaiodiego for this. You can chat with him at |
thanks @engelgabriel I have been trying to use these settings and have also been looking through the code to try and understand how this is meant to work. I will get in touch with @sampaiodiego and discuss in more detail. |
Hey @asthomasdk, @engelgabriel made this new branch for testing and running minimal package builds: https://github.com/RocketChat/Rocket.Chat/tree/minimal-packages - if you discover any tricks it would be great if you could do a PR to that branch. |
Sure thing. I will try and find some time soon again to look at this. |
I think this is not really an issue since meteor 1.4, as it compiles ONLY the changes packages and the rebuild is much faster. Can we close this? |
Happy to close for those reasons, but I'm still disabling many of the packages we don't need just for simplicity - which may reduce initial build time, but also avoids exposing some of the less polished components in the UI and admin pages (probably also side-steps some minor bugs). @engelgabriel, I remember you mentioned changing rocketchat-lib to rocketchat-core and possibly moving some code from packages into that so its more obvious which code is absolutely core vs optional add-ons. Is there another issue to follow that approach or should we re-title this issue? Also, I just noticed your comment re the "environment variable to LOCK and HIDE admin settings" - is that documented? I appreciate anything that can be done to streamline the basic experience. |
Found another one. |
@timkinnane let's create a new issue for it: #5679 |
First draft at addressing RocketChat#2255
Making any code edit on this project gives a 20~30 second delay for rebuilding.
this is pretty damn frustrating to work on.
does anyone have tips to get faster rebuilds?
I tried to remove some packages, but hit various errors, so wondering if there is a core set that are absolutely required, it would be nice to separate out the .meteor/packages file a bit.
The text was updated successfully, but these errors were encountered: