Skip to content

Commit

Permalink
chore: upgrade etherpad to 1.9.6 (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
nwittstruck authored Dec 29, 2023
1 parent 4d2e797 commit d3f3dcf
Show file tree
Hide file tree
Showing 173 changed files with 27,795 additions and 13,211 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ on:
push:
branches:
- kits
- postgresql-migration
release:
types: [published]

Expand Down Expand Up @@ -55,7 +54,6 @@ jobs:
platforms: linux/amd64,linux/arm64/v8
build-args: |
ETHERPAD_PLUGINS=kitsteam/ep_comments_page kitsteam/ep_push2delete ep_image_upload ep_embedded_hyperlinks2 ep_headings2 ep_align ep_font_color ep_delete_empty_pads ep_delete_after_delay ep_helmet ep_font_size ep_disable_imports
INSTALL_SOFFICE=true
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
105 changes: 104 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,97 @@
# 1.9.0 (not yet released)
# 1.9.6

### Notable enhancements and fixes

* Prevent etherpad crash when update server is not reachable
* Use npm@6 in Docker build
* Fix setting the log level in settings.json


# 1.9.5

### Compability changes

* This version deprecates NodeJS16 as it reached its end of life and won't receive any updates. So to get started with Etherpad v1.9.5 you need NodeJS 18 and above.
* The bundled windows NodeJS version has been bumped to the current LTS version 20.

### Notable enhancements and fixes

* The support for the tidy program to tidy up HTML files has been removed. This decision was made because it hasn't been updated for years and also caused an incompability when exporting a pad with Abiword.


# 1.9.4

### Compability changes

* Log4js has been updated to the latest version. As it involved a bump of 6 major version.
A lot has changed since then. Most notably the console appender has been deprecated. You can find out more about it [here](https://github.com/log4js-node/log4js-node)

### Notable enhancements and fixes

* Fix for MySQL: The logger calls were incorrectly configured leading to a crash when e.g. somebody uses a different encoding than standard MySQL encoding.

# 1.9.3

### Compability changes

* express-rate-limit has been bumped to 7.0.0: This involves the breaking change that "max: 0"
in the importExportRateLimiting is set to always trigger. So set it to your desired value.
If you haven't changed that value in the settings.json you are all set.

### Notable enhancements and fixes

* Bugfixes
* Fix etherpad crashing with mongodb database

* Enhancements
* Add surrealdb database support. You can find out more about this database [here](https://surrealdb.com).
* Make sqlite faster: The sqlite library has been switched to better-sqlite3. This should lead to better performance.

# 1.9.2

### Notable enhancements and fixes

* Security
* Enable session key rotation: This setting can be enabled in the settings.json. It changes the signing key for the cookie authentication in a fixed interval.

* Bugfixes
* Fix appendRevision when creating a new pad via the API without a text.


* Enhancements
* Bump JQuery to version 3.7
* Update elasticsearch connector to version 8

### Compatibility changes

* No compability changes as JQuery maintains excellent backwards compatibility.

#### For plugin authors

* Please update to JQuery 3.7. There is an excellent deprecation guide over [here](https://api.jquery.com/category/deprecated/). Version 3.1 to 3.7 are relevant for the upgrade.

# 1.9.1

### Notable enhancements and fixes

* Security
* Limit requested revisions in timeslider and export to head revision. (affects v1.9.0)

* Bugfixes
* revisions in `CHANGESET_REQ` (timeslider) and export (txt, html, custom)
are now checked to be numbers.
* bump sql for audit fix
* Enhancements
* Add keybinding meta-backspace to delete to beginning of line
* Fix automatic Windows build via GitHub Actions
* Enable docs to be build cross platform thanks to asciidoctor

### Compatibility changes
* tests: drop windows 7 test coverage & use chrome latest for admin tests
* Require Node 16 for Etherpad and target Node 20 for testing


# 1.9.0

### Notable enhancements and fixes

Expand All @@ -16,6 +109,11 @@
session expires (with some exceptions that will be fixed in the future).
* Requests for static content (e.g., `/robots.txt`) and special pages (e.g.,
the HTTP API, `/stats`) no longer create login session state.
* The secret used to sign the `express_sid` cookie is now automatically
regenerated every day (called *key rotation*) by default. If key rotation is
enabled, the now-deprecated `SESSIONKEY.txt` file can be safely deleted
after Etherpad starts up (its content is read and saved to the database and
used to validate signatures from old cookies until they expire).
* The following settings from `settings.json` are now applied as expected (they
were unintentionally ignored before):
* `padOptions.lang`
Expand Down Expand Up @@ -68,6 +166,9 @@
access for the current message only.
* The `init_<pluginName>` server-side hooks have a new `logger` context
property that plugins can use to log messages.
* Prevent infinite loop when exiting the server
* Bump dependencies


### Compatibility changes

Expand Down Expand Up @@ -112,6 +213,8 @@
* The exported database records covered by the `exportEtherpadAdditionalContent`
server-side hook now include keys like `${customPrefix}:${padId}:*`, not just
`${customPrefix}:${padId}`.
* Plugin locales should overwrite core's locales Stale
* Plugin locales overwrite core locales

# 1.8.18

Expand Down
36 changes: 22 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,21 @@
#
# Author: muxator

FROM node:lts-slim
FROM node:lts-alpine
LABEL maintainer="Etherpad team, https://github.com/ether/etherpad-lite"

ARG TIMEZONE=

RUN \
[ -z "${TIMEZONE}" ] || { \
ln -sf /usr/share/zoneinfo/"${TIMEZONE#/usr/share/zoneinfo/}" /etc/localtime; \
dpkg-reconfigure -f noninteractive tzdata; \
apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && \
echo "${TIMEZONE}" > /etc/timezone; \
}
ENV TIMEZONE=${TIMEZONE}

# Control the configuration file to be copied into the container.
ARG SETTINGS=./settings.json.docker

# plugins to install while building the container. By default no plugins are
# installed.
Expand Down Expand Up @@ -42,7 +48,9 @@ ARG INSTALL_SOFFICE=
# leaner (development dependencies are not installed) and runs faster (among
# other things, assets are minified & compressed).
ENV NODE_ENV=production

ENV ETHERPAD_PRODUCTION=true
# Install dependencies required for modifying access.
RUN apk add shadow bash
# Follow the principle of least privilege: run as unprivileged user.
#
# Running as non-root enables running this image in platforms like OpenShift
Expand All @@ -54,6 +62,9 @@ ARG EP_HOME=
ARG EP_UID=5001
ARG EP_GID=0
ARG EP_SHELL=

ENV NODE_ENV=production

RUN groupadd --system ${EP_GID:+--gid "${EP_GID}" --non-unique} etherpad && \
useradd --system ${EP_UID:+--uid "${EP_UID}" --non-unique} --gid etherpad \
${EP_HOME:+--home-dir "${EP_HOME}"} --create-home \
Expand All @@ -64,18 +75,15 @@ RUN mkdir -p "${EP_DIR}" && chown etherpad:etherpad "${EP_DIR}"

# the mkdir is needed for configuration of openjdk-11-jre-headless, see
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199
RUN export DEBIAN_FRONTEND=noninteractive; \
RUN \
mkdir -p /usr/share/man/man1 && \
apt-get -qq update && \
apt-get -qq dist-upgrade && \
apt-get -qq --no-install-recommends install \
npm install npm@6 -g && \
apk update && apk upgrade && \
apk add \
ca-certificates \
git \
${INSTALL_ABIWORD:+abiword} \
${INSTALL_SOFFICE:+libreoffice} \
&& \
apt-get -qq clean && \
rm -rf /var/lib/apt/lists/*
${INSTALL_ABIWORD:+abiword abiword-plugin-command} \
${INSTALL_SOFFICE:+libreoffice openjdk8-jre libreoffice-common}

USER etherpad

Expand All @@ -97,7 +105,7 @@ RUN { [ -z "${ETHERPAD_PLUGINS}" ] || \
rm -rf ~/.npm

# Copy the configuration file.
COPY --chown=etherpad:etherpad ./settings.json.docker "${EP_DIR}"/settings.json
COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json

# Fix group permissions
RUN chmod -R g=u .
Expand Down
32 changes: 0 additions & 32 deletions Makefile

This file was deleted.

33 changes: 6 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,35 +12,15 @@ capabilities, and runs on _your_ server, under _your_ control.

## Try it out

Etherpad is extremely flexible providing you the means to modify it to solve
whatever problem your community has. We provide some demo instances for you try
different experiences available within Etherpad. Pad content is automatically
removed after 24 hours.

* [Rich Editing](https://rich.etherpad.com) - A full rich text WYSIWYG editor.
* [Minimalist editor](https://minimalist.etherpad.com) - A minimalist editor
that can be embedded within your tool.
* [Dark Mode](https://dark.etherpad.com) - Theme settings to have Etherpad
start in dark mode, ideal for using Etherpad at night or for long durations.
* [Images](https://image.etherpad.com) - Plugins to improve provide Image
support within a pad.
* [Video Chat](https://video.etherpad.com) - Plugins to enable Video and Audio
chat in a pad.
* [Collaboration++](https://collab.etherpad.com) - Plugins to improve the
really-real time collaboration experience, suitable for busy pads.
* [Document Analysis](https://analysis.etherpad.com) - Plugins to improve
author and document analysis during and post creation.
* [Scale](https://shard.etherpad.com) - Etherpad running at scale with pad
sharding which allows Etherpad to scale to ∞ number of Active Pads with up
to ~20,000 edits per second, per pad.
Wikimedia provide a [public Etherpad instance for you to Try Etherpad out.](https://etherpad.wikimedia.org) or [use another public Etherpad instance to see other features](https://github.com/ether/etherpad-lite/wiki/Sites-That-Run-Etherpad#sites-that-run-etherpad)

## Project Status

We're looking for maintainers and have some funding available. Please contact John McLear if you can help.

### Code Quality

[![Code Quality](https://github.com/ether/etherpad-lite/actions/workflows/codeql-analysis.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/codeql-analysis.yml)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/ether/etherpad-lite.svg?logo=lgtm&logoWidth=18&color=%2344b492)](https://lgtm.com/projects/g/ether/etherpad-lite/alerts/)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/ether/etherpad-lite.svg?logo=lgtm&logoWidth=18&color=%2344b492)](https://lgtm.com/projects/g/ether/etherpad-lite/context:javascript)
[![package.lock](https://github.com/ether/etherpad-lite/actions/workflows/lint-package-lock.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/lint-package-lock.yml)

### Testing
Expand All @@ -66,15 +46,14 @@ removed after 24 hours.

### Requirements

[Node.js](https://nodejs.org/) >= **12.17.0**.
[Node.js](https://nodejs.org/) >= **18.18.2**.

### GNU/Linux and other UNIX-like systems

#### Quick install on Debian/Ubuntu

Install the latest Node.js LTS per [official install instructions](https://github.com/nodesource/distributions#installation-instructions), then:
```sh
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
git clone --branch master https://github.com/ether/etherpad-lite.git &&
cd etherpad-lite &&
src/bin/run.sh
Expand Down Expand Up @@ -136,7 +115,7 @@ following:

### Docker container

Find [here](doc/docker.md) information on running Etherpad in a container.
Find [here](doc/docker.adoc) information on running Etherpad in a container.

## Plugins

Expand Down
19 changes: 19 additions & 0 deletions doc/api/api.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
include::./embed_parameters.adoc[]

include::./http_api.adoc[]

include::./hooks_overview.adoc[]

include::./hooks_client-side.adoc[]

include::./hooks_server-side.adoc[]

include::./editorInfo.adoc[]

include::./changeset_library.adoc[]

include::./pluginfw.adoc[]

include::./toolbar.adoc[]

include::./editbar.adoc[]
10 changes: 0 additions & 10 deletions doc/api/api.md

This file was deleted.

Loading

0 comments on commit d3f3dcf

Please sign in to comment.