Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[finishing up] Release pa11y-webservice@5 #159

Draft
wants to merge 15 commits into
base: main
Choose a base branch
from
Draft
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
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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`
Expand Down
19 changes: 13 additions & 6 deletions MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -25,16 +32,16 @@ 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

The default viewport dimensions for Pa11y have been changed from `1024x768` to `1280x1024`. This could make pa11y report a different number of errors if different content appears on the page based on its width, so results obtained with v2 and v3 may not be comparable.

## 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.
25 changes: 12 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pa11y-webservice",
"version": "4.3.1",
"version": "5.0.0",
"engines": {
"node": ">=18"
},
Expand Down
Loading