etherpad-lite: still big, or building / running instructions are not updated?
I am doing this:
git clone --branch master https://github.com/ether/etherpad-lite.git &&
cd etherpad-lite &&
src/bin/run.sh
then it starts downloaden for a while
then my etherpad dir grows from 47MB to 324MB???
test2:/tmp/etherpad/src/node_modules# du -s -m * | sort -n | tail -n 40
1 yargs-unparser
1 yeast
1 yocto-queue
2 @eslint
2 @opentelemetry
2 @sinonjs
2 acorn-globals
2 async
2 cassandra-driver
2 eslint-plugin-import
2 etherpad-cli-client
2 har-validator
2 jszip
2 mongodb
2 nise
2 simple-git
2 socket.io-client
2 superagent
3 ajv
3 elasticsearch7
3 jsonminify
3 mocha
3 tedious
3 terser
3 ueberdb2
3 underscore
4 ramda
5 @js-joda
5 @redis
5 es-abstract
5 jsdom
5 lodash
6 @types
6 eslint
6 sinon
9 @typescript-eslint
12 selenium-webdriver
27 @azure
33 npm
65 typescript
What is with this redis??? I am definitely not using that. Wtf is 27MB of azure shit? git/diff in production??? cli-client??? Wtf cassandra driver who is using that??? elasticsearch???
Why is all this crap installed when I just do a run?
I already tried to ask this earlier here https://github.com/ether/etherpad-lite/issues/5712#event-9592042924 .
You do get that wasting resources is bad for the environment? So everyone that initiates an etherpad now uses twice as much all of the world. I think everyone nowadays understands the concept that we should waste less instead of more.
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 1
- Comments: 19 (12 by maintainers)
As you can see in this issue, I tried to help. If you’d open a bug report like “Don’t include azure modules by default” or “Large amount of storage on default installations” I’ll happily discuss further steps or help you with onboarding to be the next developer. I don’t expect Pull Requests or that everybody is a NodeJS developer. I know that people have different skills. That’s why I welcome your thoughts even if I don’t put your thoughts on my top priority list.
However, it seems to me that you are not here to help Etherpad or comment on bugs in Etherpad, but because your “cute test task” that you want to show to your customers has caught your attention due to unexpected storage consumption. Now you want us to fix this ASAP and because this does not work you are getting angry.
If you want more people to listen to your ideas, I’d recommend you work on your communication skills.
@f1-outsourcing
Could you please stop offending and blatently attacking other maintainers. We are currently 3 people trying to maintain a project that even went through Google’s supervision and contains a lot of code that is not optimized/documented.
Why didn’t even Google do that? They are one of the Fortune 500 companies. If you spend some time and/or money we could find a full time developer that moves this project to a more efficient statically linked binary which would be a lot more efficient in terms of CPU/memory/image size.
So the bottom line is: Either start throwing hundreds of dollars at this project so that we can find someone that can do this as his/her lifetime or you need to make your hands dirty yourself. Learn Rust/Go and we can talk again how we want to move Etherpad forward.
Until then we three do our best effort to maintain and support etherpad-lite while paying the power bill for running our dev machines.
Do you want to talk about how such a configurator should work or do you just want to propose that someone should write this configurator? I would be +1 for a minimal size version of Etherpad, if the effort is moderate. Thoguh, as storage is cheap, I have other priorities.
For some dependencies it might be straight forward, e.g. publish a ueberDB version that only supports Postgres or Mysql and change package-lock accordingly. But in general this is not the way NodeJS projects work. Search the internet for “node_modules why large size critique” etc. and there is plenty of discussions around the whole topic.
Avoid installing dev dependencies has the largest effect, we probably should make this default, as most users don’t want to develop Etherpad.
If you care from an operational standpoint I would rather suggest to use a file system with compression and or de-duplication on the data sets that store the project’s files.
As said, I appreciate conceptual contributions, but they should not be too out of scope, e.g. let’s not depend on cmake or autotools to prepare our package-lock.json.
@f1-outsourcing I’d be happy to see a pull request from you with some proposed changes 😃
If you add export NODE_ENV=production it could get even smaller. Other than that you could also fork ueberdb, throw out the tests, dev dependencies and all database drivers that you don’t need and then build and publish that to your npm registry.