From 26153799efa538fbc539f68a86fcb96616b7585c Mon Sep 17 00:00:00 2001 From: Rowan Manning <138944+rowanmanning@users.noreply.github.com> Date: Sat, 21 Feb 2026 18:52:51 +0000 Subject: [PATCH 1/2] chore!: drop Node.js 20 --- .github/workflows/ci.yml | 2 +- README.md | 8 +++++++- docs/migration.md | 21 +++++++++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 docs/migration.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 097a29e..371e883 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: ci: uses: rowanmanning/actions/.github/workflows/node-package-single.yml@v3 with: - nodeVersions: '[24, 22, 20]' + nodeVersions: '[24, 22]' secrets: githubToken: ${{ secrets.RELEASE_TOKEN }} npmToken: ${{ secrets.NPM_AUTH_TOKEN }} diff --git a/README.md b/README.md index 78d8219..7604ffa 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ A well-tested and resilient Node.js parser for [RSS](https://en.wikipedia.org/wi * [Supported feed formats](#supported-feed-formats) * [Standards](#standards) * [Leniency](#leniency) + * [Migration](#migration) * [Contributing](#contributing) * [License](#license) * [Credit](#credit) @@ -43,7 +44,7 @@ This is a Node.js-based feed parser for RSS and Atom feeds. The project has the This library requires the following to run: - * [Node.js](https://nodejs.org/) 20+ + * [Node.js](https://nodejs.org/) 22+ ## Usage @@ -423,6 +424,11 @@ The following XML namespaces are also parsed, and more data will be parsed out f Feeds in the real world rarely comply strictly with the standards and can sometimes be invalid XML. We try to be as lenient as possible, only throwing errors if no data can be pulled out of the feed. We test against a suite of real-world feeds. +## Migration + +A new major version of this project is released if breaking changes are introduced. We maintain a [migration guide](docs/migration.md) to help users migrate between these versions. + + ## Contributing [The contributing guide is available here](docs/contributing.md). All contributors must follow [this library's code of conduct](docs/code_of_conduct.md). diff --git a/docs/migration.md b/docs/migration.md new file mode 100644 index 0000000..fed871f --- /dev/null +++ b/docs/migration.md @@ -0,0 +1,21 @@ + +# Migration Guide + +This document outlines how to migrate to new major breaking versions of this library. We cover each major version in a separate section. + +* [Migrating from v2 to v3](#migrating-from-v2-to-v3) + * [Dropped Node.js v20 support](#dropped-nodejs-v20-support) +* [Migrating from v1 to v2](#migrating-from-v1-to-v2) + * [Dropped Node.js v18 support](#dropped-nodejs-v18-support) + +## Migrating from v2 to v3 + +### Dropped Node.js v20 support + +The library now only supports Node.js v22 and above. + +## Migrating from v1 to v2 + +### Dropped Node.js v18 support + +The library now only supports Node.js v20 and above. diff --git a/package-lock.json b/package-lock.json index 0d342b1..03d35bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "typescript": "^5.5.2" }, "engines": { - "node": "20.x || 22.x || 24.x" + "node": "22.x || 24.x" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index 4121380..878cfe8 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "bugs": "https://github.com/rowanmanning/feed-parser/issues", "license": "MIT", "engines": { - "node": "20.x || 22.x || 24.x" + "node": "22.x || 24.x" }, "scripts": { "build": "npm run build:types", From 84925b69f51cef01b7e582b5fd3d296ffafc9319 Mon Sep 17 00:00:00 2001 From: Rowan Manning <138944+rowanmanning@users.noreply.github.com> Date: Sat, 21 Feb 2026 19:15:34 +0000 Subject: [PATCH 2/2] chore!: switch to exports --- package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 878cfe8..32e58a4 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,12 @@ "testdouble": "^3.16.5", "typescript": "^5.5.2" }, - "main": "index.js", + "exports": { + ".": { + "types": "./index.d.ts", + "default": "./index.js" + } + }, "nyc": { "reporter": [ "html",