Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion exportWhoDidWhat.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

const async = require('ep_etherpad-lite/node_modules/async');
const async = require('async');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. No regression test for esm 📘 Rule violation ☼ Reliability

This PR changes module resolution behavior (require('async') and require('.../eejs')) but does
not add or update any regression tests in the same commit. Without a targeted test, the ESM/CJS
compatibility fix can silently regress in future changes.
Agent Prompt
## Issue description
The PR is a bug fix for upcoming ESM Etherpad compatibility, but it does not include a regression test added/updated in the same commit.

## Issue Context
The changes adjust Node module resolution paths:
- `exportWhoDidWhat.js` now uses `require('async')`.
- `index.js` now uses `require('ep_etherpad-lite/node/eejs')` (no trailing slash).
A regression test should be added so future refactors don’t revert to the incompatible require paths.

## Fix Focus Areas
- static/tests/backend/specs/esm_compat_require_paths.js[1-120]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

const Changeset = require('ep_etherpad-lite/static/js/Changeset');
const padManager = require('ep_etherpad-lite/node/db/PadManager');
const authorManager = require('ep_etherpad-lite/node/db/AuthorManager');
Expand Down
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const {template} = require('ep_plugin_helpers');
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const eejs = require('ep_etherpad-lite/node/eejs/');
const eejs = require('ep_etherpad-lite/node/eejs');
const settings = require('ep_etherpad-lite/node/utils/Settings');

exports.eejsBlock_timesliderScripts = (fn, args, cb) => {
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ep_who_did_what",
"version": "11.0.30",
"version": "11.0.31",
"description": "Who made what changes to a pad? A historical report available in the timeslider",
"author": "John McLear <john@mclear.co.uk>",
"contributors": [],
Expand All @@ -25,6 +25,7 @@
"url": "https://github.com/ether/ep_who_did_what.git"
},
"dependencies": {
"ep_plugin_helpers": "^0.6.2"
"ep_plugin_helpers": "^0.6.2",
"async": "^3.2.6"
}
Comment on lines 27 to 30

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. Outdated pnpm lockfile 🐞 Bug ☼ Reliability

package.json adds the new runtime dependency "async" but pnpm-lock.yaml is not updated, so `pnpm i
--frozen-lockfile` will fail due to the manifest/lock mismatch. This can break the npm publish
workflow and any other installation path that relies on a frozen lockfile.
Agent Prompt
### Issue description
A new dependency (`async`) was added to `package.json`, but `pnpm-lock.yaml` was not regenerated. This causes `pnpm i --frozen-lockfile` to deterministically fail because the lockfile no longer matches the manifest.

### Issue Context
This repo has a publish workflow that explicitly runs `pnpm i --frozen-lockfile`, so a lock mismatch will break the release pipeline.

### Fix
1. Run `pnpm install` (or `pnpm i`) in the repo root to update `pnpm-lock.yaml`.
2. Commit the resulting `pnpm-lock.yaml` changes.

### Fix Focus Areas
- package.json[27-30]
- pnpm-lock.yaml[7-23]
- .github/workflows/npmpublish.yml[70-73]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

}
Loading