Commit Graph

29 Commits (4c53f76c25e6523c957ebafb7cd243e089fda9f4)

Author SHA1 Message Date
Richard Hansen 085bc8cbb3 plugins: Don't create `.ep_initialized` files
These files cause problems with Docker images and read-only
directories/mounts, and they have dubious value (any install-time
setup should instead be done at startup).
2021-11-13 17:43:33 -05:00
Richard Hansen da10d42183 Delete top-level `package.json`
Advantages of a top-level `package.json`:
  * It prevents npm from printing benign warnings about missing
    `package.json` whenever a plugin is installed.
  * Semantically, it is "the right thing to do" if plugins are to be
    installed in the top-level directory. This avoids violating
    assumptions various tools make about `package.json`, which makes
    it more likely that we can easily switch to a new version of npm
    or to an npm alternative.

Disadvantages of a top-level `package.json`:
  * Including a dependency of `ep_etherpad-lite@file:src` in the
    top-level `package.json`, which is required to keep npm from
    deleting the `node_modules/ep_etherpad-lite` symlink each time a
    package is installed, drastically slows down plugin installation
    because npm recursively walks the ep_etherpad-lite dependencies.
  * npm has a horrible dependency hoisting behavior: It moves
    dependencies from `src/node_modules/` to the top-level
    `node_modules/` directory when possible. This causes numerous
    mysterious problems, such as silent failures in `npm outdated` and
    `npm update`, and it breaks plugins that do
    `require('ep_etherpad-lite/node_modules/foo')`.

Right now, with npm v6.x, eliminating the disadvantages is far more
valuable than keeping the advantages. (This might change with npm
v7.x.)

For a long time there was no top-level `package.json` and it worked
fairly well, although users were often confused by npm's benign
warnings. The top-level `package.json` was added because we needed a
place to put ESLint config for the stuff in `bin/` and `tests/`, and
we wanted the advantages listed above. Unfortunately we were unaware
of the disadvantages at the time. The `bin/` and `tests/` directories
were moved under `src/` so we no longer need the top-level
`package.json` for ESLint.

An alternative to a top-level `package.json`: Create
`plugins/package.json` and install all plugins in `plugins/`. If
`plugins/package.json` has a dependency of
`ep_etherpad-lite@file:../src` then plugin installation will still be
slow (npm will still recursively walk the dependencies in
`src/package.json`) but it should avoid npm's nasty dependency
hoisting behavior. To avoid slow plugin installation we could create a
lightweight `etherpad-pluginlib` package that Etherpad plugins would
use to indirectly access Etherpad's internals. As an added bonus, this
intermediate package could become an adaptor that provides a stable
interface to plugins even when Etherpad core rapidly evolves.
2021-02-07 06:24:52 +00:00
Richard Hansen 8b28e00784 restructure: Prefix `bin/` and `tests/` with `src/`
This is a follow-up to commit
2ea8ea1275.
2021-02-05 21:52:08 +00:00
Richard Hansen cf43156390 Remove `src/static/js/jquery.js` from `.gitignore`
That file is checked in so there's no reason to ignore it.
2020-11-02 16:03:58 +00:00
Alex 13dddde1d9 .gitignore add a new rule 2020-04-24 00:04:10 +02:00
Viljami Kuosmanen 25e081ac89 openapi: implement API handler with openapi-backend
- Tests pass 
- Added openapi-backend hook
- Generating OpenAPI v3 definitions for each API version
- Definitions served /api/openapi.json /api/{version}/openapi.json
2020-04-03 01:03:11 +02:00
Pierre Prinetti 6d9264cf3c docker: enable environment variables settings by default
By leveraging the templating mechanism in `settings.json`, this change allows a
Docker client to run a prebuilt image and change some basic configuration
settings, like the instance name or, more importantly, the database
coordinates.

By default, the image runs witho no administrative user enabled. If a value is
given to ADMIN_PASSWORD, the `admin` user will be activated.

Also closes https://github.com/ether/etherpad-lite/issues/3623

---
Modified by muxator to support conditional user activation at runtime.
2019-10-19 02:39:20 +02:00
HairyFotr c7548450c0
Typos and minor fixes in bin, doc, and root 2017-09-14 13:33:27 +02:00
John McLear 0617f81689 remove applySettings hook and allow credentials.json to be part of core 2015-12-02 11:53:41 +00:00
John McLear 8ed12c7776 session key is now ignored and also padOptions are available in settings 2015-04-11 21:22:00 +01:00
John McLear 09429be4c9 whoops 2013-11-24 02:52:55 +00:00
Wikinaut e1a1540011 moved to settings.json.template bottom; chg gitignore 2012-12-10 23:46:54 +01:00
Wikinaut eed6b752d4 initial https version fix #1148 2012-11-22 10:12:58 +01:00
Egil Moeller 65d32461e0 Ignoring .ep_initialized in git 2012-04-05 20:04:54 +02:00
Egil Moeller 434252a321 Removed prefixfree as it breaks @import in css files 2012-04-01 22:55:04 +02:00
Egil Moeller ce5d2d8685 Merge branch 'pita'
Resolved conflicts:
	.gitignore
	src/static/js/ace.js
	src/static/js/ace2_inner.js
	src/static/js/broadcast.js
	src/static/js/domline.js
	src/static/pad.html
	src/static/timeslider.html

Ignored conflicts (please merge manually later):
	node/server.js
	src/node/utils/Minify.js
2012-03-02 22:00:20 +01:00
Egil Moeller 758666c3e1 Better startup & symlinking 2012-02-26 13:31:47 +01:00
Dominik Rodler 4e54ebb0b8 Added new favicon 2012-02-25 20:45:28 +01:00
Robin dd9989c32a fixes automatic update 2012-02-04 18:46:43 +01:00
Chad Weider b175ad562a Use uncompressed jQuery.
The jQuery library does not need to be compressed; it is compressed as a consequence of being included in `pad.js`.
2012-01-22 09:46:08 -08:00
Peter 'Pita' Martischka deedc17ca8 Added backup and patch files to .gitignore. Makes life a bit easier 2011-11-28 11:28:06 -08:00
Peter 'Pita' Martischka dd4c8dc3aa added a convert script from old etherpad to etherpad lite, instructions will follow 2011-08-18 20:58:56 +01:00
Peter 'Pita' Martischka b300dc1d2c fixed merge conflicts 2011-08-13 22:18:42 +01:00
Peter 'Pita' Martischka 7ff8814fd7 added the dirty db file to gitignore 2011-08-13 13:03:07 +01:00
Peter 'Pita' Martischka 53cdd893af added a buildForWindows script 2011-08-11 22:00:52 +01:00
Peter 'Pita' Martischka f45b7ce9ea Installed API infrastructure, getText works already 2011-08-03 19:31:25 +01:00
Peter 'Pita' Martischka 95b47b4940 use a downloaded jQuery instead of using googles CDN, and fixed btw a bug that let pad.js fails randomly 2011-06-30 18:06:07 +01:00
Peter 'Pita' Martischka 280b4ab9c7 Create a template of the settings file 2011-06-02 12:15:02 +01:00
Peter 'Pita' Martischka fd4efc3b31 Ignore node_modules in the main folder 2011-06-02 12:07:48 +01:00