diff --git a/CHANGELOG.md b/CHANGELOG.md index bf59526..3282339 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 5.0.0 + +* **Major** Require Node.js `18` or `20` +* **Major** Upgrade to `pa11y@^8` from `^6` + * Includes an upgrade to Puppeteer `^22` from `9`. + * Fixes compatibility with Ubuntu versions 20.04 and above. The [workaround](MIGRATION.md#migrating-from-30-to-40) documented for `pa11y-webservice@4` is no longer required. +* **Major** Upgrade to `hapi@21` from `20` +* Upgrade to `minimatch@3.1` from `3.0` + +Full comparison to `4.3.1`: [4.3.1...5.0.0](https://github.com/pa11y/pa11y/compare/4.3.1...5.0.0) + ## 4.3.1 (2023-11-15) * Fix bug in naming when requiring `lodash.groupby` diff --git a/MIGRATION.md b/MIGRATION.md index f23a641..9f728af 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -5,17 +5,24 @@ Pa11y Webservice's API changes between major versions. This is a guide to help y ## Table of contents * [Table of contents](#table-of-contents) +* [Migrating from 4.0 to 5.0](#migrating-from-40-to-50) * [Migrating from 3.0 to 4.0](#migrating-from-30-to-40) * [Migrating from 2.0 to 3.0](#migrating-from-20-to-30) * [PhantomJS to Headless Chrome](#phantomjs-to-headless-chrome) - * [Node.js support](#nodejs-support) + * [Node.js support for 3.0](#nodejs-support-for-30) * [Miscellaneous](#miscellaneous) * [Migrating from 1.0 to 2.0](#migrating-from-10-to-20) - * [Node.js support](#nodejs-support-1) + * [Node.js support for 2.0](#nodejs-support-for-20) + +## Migrating from 4.0 to 5.0 + +Pa11y Webservice 5 requires Node.js version `18` or `20`. ## Migrating from 3.0 to 4.0 -Pa11y Webservice 4 requires Node.js version 12 or greater. Versions 8 and 10 are not supported any more. +Pa11y Webservice 4 requires Node.js version `12`, `14`, `16`, `18`, or `20`. + +To run this version on Ubuntu 20.04 or above, a path to the Chrome executable must be defined in [chromeLaunchConfig](README#chromelaunchconfig-config-file-only), as `chromeLaunchConfig.executablePath`. ## Migrating from 2.0 to 3.0 @@ -25,9 +32,9 @@ Pa11y Webservice 3 uses version 5 of Pa11y, which replaces PhantomJS with [Headl As a result of this change, [Pa11y Webservice's requirements](../README.md#requirements) have changed, and you may need to install additional dependencies required by Chrome before being able to use this version. -### Node.js support +### Node.js support for 3.0 -Pa11y Webservice 3 requires Node.js version 8 or greater. Versions 4 and 6 are not supported any more. +Pa11y Webservice 3 requires Node.js version `8` or `10`. ### Miscellaneous @@ -35,6 +42,6 @@ The default viewport dimensions for Pa11y have been changed from `1024x768` to ` ## Migrating from 1.0 to 2.0 -### Node.js support +### Node.js support for 2.0 The only breaking change in Pa11y Webservice 2.0 is that Node.js 0.10 and 0.12 are no longer supported. We'll be using newer ES6 features in upcoming releases which will not work in these older Node.js versions. diff --git a/README.md b/README.md index d53442f..a43ccc4 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,12 @@ Use this service if you'd like to coordinate your testing by interacting with a ## Requirements -- [Node.js][node]: Each major version of Pa11y Webservice is designed to support a set of stable/LTS versions of Node.js. Pa11y Webservice 4 requires a stable (even-numbered) version of Node.js of 12 or above. -- [MongoDB][mongo]: The service stores test results in a MongoDB database, and expects one to be available and running. +- [Node.js][node]: Each major version of Pa11y Webservice is designed to support a set of stable/LTS versions of Node.js. Pa11y Webservice 5 requires Node.js `18` or `20`. +- [MongoDB][mongo]: The service stores test results in a MongoDB database and expects one to be available and running. -### Pally Webservice 4 and Linux/Ubuntu +### Pally Webservice 5 and Linux/Ubuntu -Pa11y (and therefore this service) uses Headless Chrome to perform accessibility testing. On Linux and other Unix-like systems, Pa11y's attempt to install it as a dependency sometimes fails since additional operating system packages will be required. Your distribution's documentation should describe how to install these. - -In addition, to use Pa11y Webservice 4 with a version of Ubuntu above 20.04, a path to the Chrome executable must be defined in [chromeLaunchConfig](#chromelaunchconfig-config-file-only), as `chromeLaunchConfig.executablePath`. Version 5 of Pa11y Webservice, which will use Pa11y 7 along with a more recent version of Puppeteer, will resolve this issue. +This service depends on [Pa11y], which uses Headless Chrome to perform accessibility testing. On Linux and other Unix-like systems, Pa11y's attempt to install Headless Chrome as a dependency sometimes fails since additional operating system packages will be required. Your distribution's documentation should describe how to install these. ## Setup @@ -197,19 +195,20 @@ NODE_ENV=test npm run load-fixtures ## Support and migration -> [!NOTE] +> [!TIP] > We maintain a [migration guide](MIGRATION.md) to help you migrate between major versions. When we release a new major version we will continue to support the previous major version for 6 months. This support will be limited to fixes for critical bugs and security issues. If you're opening an issue related to this project, please mention the specific version that the issue affects. The following table lists the major versions available and, for each previous major version, its end-of-support date, and its final minor version released. -| Major version | Final minor version | Node.js support | Support end date | -| :------------ | :----------------- | :----------------------- | :--------------- | -| `4` | | `>= 12` | ✅ Current major version | -| `3` | `3.2.1` | `8`, `10` | 2022-05-26 | -| `2` | `2.3.1` | `4`, `6` | 2020-01-04 | -| `1` | `1.11.1` | `0.10`, `0.12`, `4`, `6` | 2016-12-05 | +| Major version | Final minor version | Node.js support | [pa11y] version | Support end date | +| :------------ | :----------------- | :--------------------------- | :--------------- | :--------------- | +| `5` | | `18`, `20` | `^8` | ✅ Current major version | +| `4` | `4.3` | `12`, `14`, `16`, `18`, `20` | `^6` | October 2024 | +| `3` | `3.2` | `8`, `10` | `^6` | May 2022 | +| `2` | `2.3` | `4`, `6` | `^4` | January 2020 | +| `1` | `1.11` | `0.10`, `0.12`, `4`, `6` | `~3.7` | December 2016 | ## License diff --git a/package-lock.json b/package-lock.json index e84669b..43741c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pa11y-webservice", - "version": "4.3.1", + "version": "5.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pa11y-webservice", - "version": "4.3.1", + "version": "5.0.0", "license": "GPL-3.0", "dependencies": { "@hapi/hapi": "~21.3.2", diff --git a/package.json b/package.json index 44dedb6..dc374c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pa11y-webservice", - "version": "4.3.1", + "version": "5.0.0", "engines": { "node": ">=18" },