Skip to content

v2.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 17 Mar 12:07
· 229 commits to develop since this release
v2.0.0

First of all I am very happy to announce the second major version of Etherpad. During the course of the last months we have updated all dependencies, cleaned up some of the old Etherpad code and converted most of the things to Typescript.

Compatibility changes

  • Socket io has been updated to 4.7.5. This means that the json.send function won't work anymore and needs to be changed to .emit('message', myObj)
  • Deprecating npm version 6 in favor of pnpm: We have made the decision to switch to the well established pnpm (https://pnpm.io/). It works by symlinking dependencies into a global directory allowing you to have a cleaner and more reliable environment.
  • Introducing Typescript to the Etherpad core: Etherpad core logic has been rewritten in Typescript allowing for compiler checking of errors.
  • Rewritten Admin Panel: The Admin panel has been rewritten in React and now features a more pleasant user experience. It now also features an integrated pad searching with sorting functionality.

Notable enhancements and fixes

  • Bugfixes

    • Live Plugin Manager: The live plugin manager caused problems when a plugin had depdendencies defined. This issue is now resolved.
  • Enhancements

    • pnpm Workspaces: In addition to pnpm we introduced workspaces. A clean way to manage multiple bounded contexts like the admin panel or the bin folder.
    • Bin folder: The bin folder has been moved from the src folder to the root folder. This change was necessary as the contained scripts do not represent core functionality of the user.
    • Starting Etherpad: Etherpad can now be started with a single command: pnpm run prod in the root directory.
    • Installing Etherpad: Etherpad no longer symlinks itself in the root directory. This is now also taken care by pnpm, and it just creates a node_modules folder with the src directory`s ep_etherpad-lite folder
    • Plugins can now be installed simply via the command: pnpm run install-plugins first-plugin second-plugin or if you want to install from path you can do:
      pnpm run install-plugins --path ../path-to-plugin

This wouldn't be possible as a single developer. Special thanks to:

  • @HMarzban for jumping in to update socket io
  • @Gared for implementing and fixing the Live Plugin Manager
  • @JannikStreek for adapting the Etherpad Docker build process, introducing PNPM workspaces and separating the bin and src folder
  • @AugustinMauroy for the roadmap and inspiration of modernizing the Etherpad structure