Skip to content

Commit

Permalink
Add support for Node 20, drop Node 16 (#5166)
Browse files Browse the repository at this point in the history
  • Loading branch information
davisagli authored Sep 13, 2023
1 parent 37ca652 commit 71bd33b
Show file tree
Hide file tree
Showing 11 changed files with 29 additions and 65 deletions.
48 changes: 4 additions & 44 deletions .github/workflows/acceptance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v3

Expand All @@ -27,17 +27,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core ${{ matrix.node-version }}
spec: cypress/tests/core/basic/**/*.js
start: |
make start-test-acceptance-server
Expand Down Expand Up @@ -65,7 +61,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v3

Expand All @@ -83,17 +79,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core Blocks ${{ matrix.node-version }}
spec: cypress/tests/core/blocks/**/*.js
start: |
make start-test-acceptance-server
Expand Down Expand Up @@ -121,7 +113,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v3

Expand All @@ -139,17 +131,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core Volto Slate ${{ matrix.node-version }}
spec: cypress/tests/core/volto-slate/**/*.js
start: |
make start-test-acceptance-server
Expand Down Expand Up @@ -194,17 +182,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core Basic - Plone 5
spec: cypress/tests/core/basic/**/*.js
start: |
make start-test-acceptance-server-5
Expand Down Expand Up @@ -249,17 +233,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Coresandbox
spec: cypress/tests/coresandbox/**/*.js
start: |
make start-test-acceptance-server-coresandbox
Expand Down Expand Up @@ -306,17 +286,13 @@ jobs:
env:
BABEL_ENV: production
CYPRESS_API: guillotina
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Guillotina
spec: cypress/tests/guillotina/**/*.js
start: |
make start-test-acceptance-server-guillotina
Expand Down Expand Up @@ -362,17 +338,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Multilingual
spec: cypress/tests/multilingual/**/*.js
start: |
make start-test-acceptance-server-multilingual
Expand Down Expand Up @@ -443,17 +415,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Working Copy
spec: cypress/tests/workingCopy/**/*.js
start: |
make start-test-acceptance-server-workingcopy
Expand Down Expand Up @@ -481,7 +449,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [18.x]
node-version: [18.x, 20.x]
env:
generator-directory: ./packages/generator-volto
project-directory: ./my-volto-app
Expand Down Expand Up @@ -534,17 +502,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Project Generator
spec: cypress/tests/minimal/**/*.js
start: |
make start-test-acceptance-server
Expand Down Expand Up @@ -596,17 +560,13 @@ jobs:
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Seamless
spec: cypress/tests/core/basic/**/*.js
config: baseUrl=http://localhost
start: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/towncrier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- master

env:
node-version: 16.x
node-version: 18.x

jobs:
towncrier:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v3

# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
# remove workaround for 18.x once https://github.com/nodejs/node/issues/47563 is fixed
# remove workaround for 18.x once https://github.com/nodejs/node/issues/47563 is fixed
node-version: ${{ matrix.node-version == '18.x' && '18.15.0' || matrix.node-version }}
cache: yarn

Expand Down
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@

### Breaking

- Volto 17 drops support for NodeJS 14, and adds support for NodeJS 18.
- Volto 17 drops support for NodeJS 14, and adds support for Node.js 18.
Please see the [upgrade guide](https://6.docs.plone.org/volto/upgrade-guide/index.html)
for more information.

Expand Down Expand Up @@ -1410,7 +1410,7 @@ See https://6.docs.plone.org/volto/upgrade-guide/index.html for more information
- Update README with latest versions, point to Plone 6 as recommended default @sneridagh
- Trigger a new deploy core Plone documentation when Volto documentation is updated @esteele
- Update supported Python versions. @stevepiercy
- Add NodeJS 18 (LTS) usage notice @sneridagh
- Add Node.js 18 (LTS) usage notice @sneridagh
- Fix Netlify build @sneridagh
- Fix grammar in Theming Strategy. Fixes #954. @stevepiercy
- Fix wording in About Semantic UI. Fixes #953. @stevepiercy
Expand Down Expand Up @@ -1623,7 +1623,7 @@ See https://6.docs.plone.org/volto/upgrade-guide/index.html for more information

### Documentation

- Add NodeJS 18 (LTS) usage notice @sneridagh
- Add Node.js 18 (LTS) usage notice @sneridagh
- Fix Netlify build @sneridagh

## 16.0.0-alpha.45 (2022-10-24)
Expand Down
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,13 +226,14 @@ On the [Plone Training website](https://training.plone.org), you'll find Volto-d

[Timo Stollenwerk - Reinventing Plone, Roadmap to the Modern Web](https://2018.ploneconf.org/talks/reinventing-plone-roadmap-to-the-modern-web)

## Node Support

- Node 18: Supported since Volto 17
- Node 16: Supported since Volto 14
- Node 14: No longer supported. It was supported from Volto 8.8.0 - 16
- Node 12: No longer supported. It was supported from Volto 4 - 15
- Node 10: No longer supported. It was supported from Volto 1 - 12
## Node.js Support

- Node.js 20: Supported since Volto 17
- Node.js 18: Supported since Volto 17
- Node.js 16: No longer supported. It was supported from Volto 14 - 16
- Node.js 14: No longer supported. It was supported from Volto 8.8.0 - 16
- Node.js 12: No longer supported. It was supported from Volto 4 - 15
- Node.js 10: No longer supported. It was supported from Volto 1 - 12

## Browser support

Expand Down
11 changes: 6 additions & 5 deletions docs/source/upgrade-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,13 @@ Thus it is safe to run it on top of your project and answer the prompts.

## Upgrading to Volto 17.x.x

### Ending support for Node.js 14
### Ending support for Node.js 14 and 16

Long Term Support for {term}`Node.js` 14 by the Node.js community ends in April 2023.
Volto 17 no longer supports Node.js 14.
Please update your projects to a Node.js LTS version, where either 16 or 18 is supported at the moment of this writing.
Version 18 is recommended.
Long Term Support (LTS) for {term}`Node.js` 14 by the Node.js community ended in April 2023.
Long Term Support for Node.js 16 by the Node.js community ended in September 2023.
Volto 17 no longer supports Node.js 14 or 16.
Please update your projects to a supported Node.js version (18 or 20).
Version 18 is recommended, as the current LTS version of Node.js.

#### localhost now resolves to an IPv6 address

Expand Down
1 change: 1 addition & 0 deletions news/5166.breaking
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removed support for Node.js 16. It is no longer supported by the Node.js community. @davisagli
1 change: 1 addition & 0 deletions news/5166.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added support for Node.js 20. @davisagli
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@
]
},
"engines": {
"node": "^16 || ^18"
"node": "^16 || ^18 || ^20"
},
"dependencies": {
"@babel/core": "^7.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@
"not dead"
],
"engines": {
"node": "^16 || ^18"
"node": "^16 || ^18 || ^20"
},
"dependencies": <%- dependencies %>,
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/generator-volto/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
}
},
"engines": {
"node": "^16 || ^18"
"node": "^16 || ^18 || ^20"
},
"dependencies": {
"ansi-escapes": "2.0.0",
Expand Down

0 comments on commit 71bd33b

Please sign in to comment.