Skip to content

Proposal: remove Yarn v1 Classic with Node.js 26 #1438

@MikeMcC399

Description

@MikeMcC399

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/browser and cypress/included image build.

  • The cypress/factory image allows the selection of any Yarn v1 Classic version using YARN_VERSION for 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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions