-
Notifications
You must be signed in to change notification settings - Fork 392
Description
Situation
-
Cypress Docker images currently include the npm module Yarn v1 Classic, with its latest release yarn@1.22.22 from Mar 9, 2024, in each
cypress/base,cypress/browserandcypress/includedimage build. -
The cypress/factory image allows the selection of any Yarn v1 Classic version using
YARN_VERSIONfor customized Cypress image building. -
Yarn v1 Classic has been in maintenance mode since Jan 2020 with no further support.
Background
Yarn was originally released 14 years ago. The yarn@1.0.0 release followed then 8 years ago. With the release of Yarn 2 in Jan 2020, it was announced that Yarn v1 would enter maintenance mode and provide security fixes only. This is underlined by the notice on the source repo https://github.com/yarnpkg/yarn :
The 1.x line is frozen - features and bugfixes now happen on https://github.com/yarnpkg/berry
The last Yarn v1 Classic release was yarn@1.22.22, more than a year and a half ago.
| Event | Date |
|---|---|
Inital yarn@0.1.0 release |
Mar 2012 |
| yarn@1.0.0 release | Sep 2017 |
| Yarn 2 GA | Jan 2020 |
| yarn@1.22.22 release | Mar 2024 |
| PGP signing key expiry | Jan 2030 |
Yarn v1 Classic CircleCI config attempts to test against Node.js version 4 - 13 only. The pipeline runs and fails nightly in CircleCI. Cloning the repo and attempting to run yarn test locally under Ubuntu 24.04.3 LTS produces failures on all Node.js versions from 8 - 25.
The PGP signing key 6A010C5166006599AA17F08146C2130DFD2497F5 expires on 2030-01-22T18:44:02Z.
Assessment
Yarn v1 Classic must be considered as no longer suitable for production usage.
- It is untested in currently supported Node.js versions
>=20 - Emerging bugs and open issues are not addressed
Inclusion in production-ready Cypress Docker images suggest an implicit and unwarranted endorsement by Cypress for continued usage.
Recommendation
Remove Yarn v1 Classic from Cypress Docker images.
The first step should be to announce a deprecation. The next opportunity for removing Yarn v1 Classic, without causing a separate breaking change, would be with the planned release of Node.js 26 in April 2026. This version of Node.js is planned to transition to LTS in October 2026 (see schedule.json).
Suggested Timeline
| Milestone | External Date | Suggested Cypress Date |
|---|---|---|
| Freeze of Yarn v1 Classic and removal of support | 2020-01-24 | |
| Deprecate usage of Yarn v1 Classic with Cypress Docker images | soon | |
| Node.js 26.0.0 Current release | 2026-04-22 | |
Remove Yarn v1 Classic from new Cypress Docker images using Node.js >=26 |
Apr 2026 | |
| Node.js 26.x transition to Active LTS status | 2026-10-28 | |
Remove Yarn v1 Classic from cypress/factory |
Oct 2026 |