Refine `CHANGELOG.md`

pull/5289/head
Richard Hansen 2021-11-20 22:04:07 -05:00
parent 90aead6eae
commit 978555653b
1 changed files with 62 additions and 58 deletions

View File

@ -17,62 +17,64 @@
### Compatibility changes ### Compatibility changes
* The `logconfig` setting is deprecated. * The `logconfig` setting is deprecated.
* For plugin authors:
* Etherpad now uses [jsdom](https://github.com/jsdom/jsdom) instead of #### For plugin authors
[cheerio](https://cheerio.js.org/) for processing HTML imports. There are
two consequences of this change: * Etherpad now uses [jsdom](https://github.com/jsdom/jsdom) instead of
* `require('ep_etherpad-lite/node_modules/cheerio')` no longer works. To [cheerio](https://cheerio.js.org/) for processing HTML imports. There are two
fix, your plugin should directly depend on `cheerio` and do consequences of this change:
`require('cheerio')`. * `require('ep_etherpad-lite/node_modules/cheerio')` no longer works. To fix,
* The `node` context argument passed to the `collectContentImage` hook is your plugin should directly depend on `cheerio` and do `require('cheerio')`.
now an * The `collectContentImage` hook's `node` context property is now an
[`HTMLImageElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement) [`HTMLImageElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement)
object rather than a Cheerio Node-like object, so the API is slightly object rather than a Cheerio Node-like object, so the API is slightly
different. See different. See
[citizenos/ep_image_upload#49](https://github.com/citizenos/ep_image_upload/pull/49) [citizenos/ep_image_upload#49](https://github.com/citizenos/ep_image_upload/pull/49)
for an example fix. for an example fix.
* The `clientReady` server-side hook is deprecated; use the new `userJoin` * The `clientReady` server-side hook is deprecated; use the new `userJoin` hook
hook instead. instead.
* The `init_<pluginName>` server-side hooks are now run every time Etherpad * The `init_<pluginName>` server-side hooks are now run every time Etherpad
starts up, not just the first time after the named plugin is installed. starts up, not just the first time after the named plugin is installed.
* The `userLeave` server-side hook's context properties have changed: * The `userLeave` server-side hook's context properties have changed:
* `auth`: Deprecated. * `auth`: Deprecated.
* `author`: Deprecated; use the new `authorId` property instead. * `author`: Deprecated; use the new `authorId` property instead.
* `readonly`: Deprecated; use the new `readOnly` property instead. * `readonly`: Deprecated; use the new `readOnly` property instead.
* `rev`: Deprecated. * `rev`: Deprecated.
* Changes to the `src/static/js/Changeset.js` library: * Changes to the `src/static/js/Changeset.js` library:
* `opIterator()`: The unused start index parameter has been removed, as has * `opIterator()`: The unused start index parameter has been removed, as has
the unused `lastIndex()` method on the returned object. the unused `lastIndex()` method on the returned object.
* `smartOpAssembler()`: The returned object's `appendOpWithText()` method is * `smartOpAssembler()`: The returned object's `appendOpWithText()` method is
deprecated without a replacement available to plugins (if you need one, deprecated without a replacement available to plugins (if you need one, let
let us know and we can make the private `opsFromText()` function public). us know and we can make the private `opsFromText()` function public).
* Several functions that should have never been public are no longer * Several functions that should have never been public are no longer exported:
exported: `applyZip()`, `assert()`, `clearOp()`, `cloneOp()`, `copyOp()`, `applyZip()`, `assert()`, `clearOp()`, `cloneOp()`, `copyOp()`, `error()`,
`error()`, `followAttributes()`, `opString()`, `stringOp()`, `followAttributes()`, `opString()`, `stringOp()`, `textLinesMutator()`,
`textLinesMutator()`, `toBaseTen()`, `toSplices()`. `toBaseTen()`, `toSplices()`.
### Notable enhancements ### Notable enhancements
* Simplified pad reload after importing an `.etherpad` file. * Simplified pad reload after importing an `.etherpad` file.
* For plugin authors:
* `clientVars` was added to the context for the `postAceInit` client-side #### For plugin authors
hook. Plugins should use this instead of the `clientVars` global variable.
* New `userJoin` server-side hook. * `clientVars` was added to the context for the `postAceInit` client-side hook.
* The `userLeave` server-side hook has a new `socket` context property. Plugins should use this instead of the `clientVars` global variable.
* The `helper.aNewPad()` function (accessible to client-side tests) now * New `userJoin` server-side hook.
accepts hook functions to inject when opening a pad. This can be used to * The `userLeave` server-side hook has a new `socket` context property.
test any new client-side hooks your plugin provides. * The `helper.aNewPad()` function (accessible to client-side tests) now
* Chat improvements: accepts hook functions to inject when opening a pad. This can be used to
* The `chatNewMessage` client-side hook context has new properties: test any new client-side hooks your plugin provides.
* `message`: Provides access to the raw message object so that plugins can * Chat improvements:
see the original unprocessed message text and any added metadata. * The `chatNewMessage` client-side hook context has new properties:
* `rendered`: Allows plugins to completely override how the message is * `message`: Provides access to the raw message object so that plugins can
rendered in the UI. see the original unprocessed message text and any added metadata.
* New `chatSendMessage` client-side hook that enables plugins to process the * `rendered`: Allows plugins to completely override how the message is
text before sending it to the server or augment the message object with rendered in the UI.
custom metadata. * New `chatSendMessage` client-side hook that enables plugins to process the
* New `chatNewMessage` server-side hook to process new chat messages before text before sending it to the server or augment the message object with
they are saved to the database and relayed to users. custom metadata.
* New `chatNewMessage` server-side hook to process new chat messages before
they are saved to the database and relayed to users.
# 1.8.14 # 1.8.14
@ -130,8 +132,8 @@
* Disabled wtfnode dump by default. * Disabled wtfnode dump by default.
* Send `USER_NEWINFO` messages on reconnect. * Send `USER_NEWINFO` messages on reconnect.
* Fixed loading in a hidden iframe. * Fixed loading in a hidden iframe.
* Fixed a race condition with composition. (Thanks @ingoncalves for an exceptionally * Fixed a race condition with composition. (Thanks @ingoncalves for an
detailed analysis and @rhansen for the fix.) exceptionally detailed analysis and @rhansen for the fix.)
# 1.8.13 # 1.8.13
@ -158,11 +160,13 @@
# 1.8.12 # 1.8.12
Special mention: Thanks to Sauce Labs for additional testing tunnels to help us grow! :) Special mention: Thanks to Sauce Labs for additional testing tunnels to help us
grow! :)
### Security patches ### Security patches
* Fixed a regression in v1.8.11 which caused some pad names to cause Etherpad to restart. * Fixed a regression in v1.8.11 which caused some pad names to cause Etherpad to
restart.
### Notable fixes ### Notable fixes
@ -171,8 +175,8 @@ Special mention: Thanks to Sauce Labs for additional testing tunnels to help us
* Fixed a regression in v1.8.8 that caused "Uncaught TypeError: Cannot read * Fixed a regression in v1.8.8 that caused "Uncaught TypeError: Cannot read
property '0' of undefined" with some plugins (#4885) property '0' of undefined" with some plugins (#4885)
* Less warnings in server console for supported element types on import. * Less warnings in server console for supported element types on import.
* Support Azure and other network share installations by using a * Support Azure and other network share installations by using a more truthful
more truthful relative path. relative path.
### Notable enhancements ### Notable enhancements