Skip to content
Merged
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
6 changes: 4 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: CI
on:
pull_request:
push:
branches:
- master

permissions:
contents: read
Expand Down Expand Up @@ -65,7 +67,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '22'
node-version: '24'

- name: Install Cypress system dependencies
run: |
Expand Down Expand Up @@ -135,7 +137,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '22'
node-version: '24'

- name: Install Composer dependencies
run: composer update --no-interaction --prefer-dist --no-progress
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ Local path: `/Volumes/SRC/JsFormValidatorBundle`
## Nix Development Environment

- Prefer `nix develop` from the repository root when Nix is available.
- The Nix shell provides the latest PHP available in pinned nixpkgs with Xdebug coverage support, Composer, Node.js 22, npm, zip/unzip, and Linux Cypress runtime libraries. It currently resolves to PHP 8.5.
- The Docker `php-fpm` development image is maintained for vendor installation and ad hoc commands. It uses PHP 8.5, Composer 2, Node.js 22, and the PHP extensions required by the Symfony 8 fixture.
- The Nix shell provides the latest PHP available in pinned nixpkgs with Xdebug coverage support, Composer, Node.js 24, npm, zip/unzip, and Linux Cypress runtime libraries. It currently resolves to PHP 8.5.
- The Docker `php-fpm` development image is maintained for vendor installation and ad hoc commands. It uses PHP 8.5, Composer 2, Node.js 24, and the PHP extensions required by the Symfony 8 fixture.
- Run one-off commands with `nix develop -c <command>`, for example:
- `nix develop -c composer validate --strict`
- `nix develop -c composer test`
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Prefer the Nix development shell from the repository root:
nix develop
```

The shell provides PHP 8.5, Xdebug coverage support, Composer, Node.js 22, npm,
The shell provides PHP 8.5, Xdebug coverage support, Composer, Node.js 24, npm,
zip/unzip, and the Linux runtime libraries needed by Cypress. It also keeps
Composer, npm, and Cypress caches under `.cache/`.

Expand Down Expand Up @@ -36,7 +36,7 @@ If Cypress reports that its binary is missing, install it into the local cache:
npx cypress install
```

Without Nix, install PHP 8.4 or newer, Composer, Node.js 22, npm, and the
Without Nix, install PHP 8.4 or newer, Composer, Node.js 24, npm, and the
Cypress system dependencies locally before running the same commands.

## Install Vendors Via Docker
Expand All @@ -50,7 +50,7 @@ docker compose run --rm --no-deps -u "$(id -u):$(id -g)" php-fpm composer update
docker compose run --rm --no-deps -u "$(id -u):$(id -g)" php-fpm npm install
```

The image uses PHP 8.5, Composer 2, Node.js 22, and the PHP extensions needed by
The image uses PHP 8.5, Composer 2, Node.js 24, and the PHP extensions needed by
the Symfony 8 test fixture. It also stores Composer, npm, and Cypress caches
under `.cache/`.

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ nix develop
```

It provides the latest PHP available in the pinned nixpkgs input, currently
PHP 8.5, with Xdebug coverage support, Composer, Node.js 22, npm, zip/unzip,
PHP 8.5, with Xdebug coverage support, Composer, Node.js 24, npm, zip/unzip,
and Cypress runtime libraries. If flakes are not enabled globally, prefix Nix
commands with `nix --extra-experimental-features "nix-command flakes"`.

Expand All @@ -215,7 +215,7 @@ nix develop -c composer test
nix develop -c npm test
```

Without Nix, install PHP 8.4 or newer, Composer, Node.js 22, npm, and the
Without Nix, install PHP 8.4 or newer, Composer, Node.js 24, npm, and the
Cypress system dependencies locally before running the same commands.

To install vendors via Docker instead of host PHP/Composer:
Expand Down Expand Up @@ -273,6 +273,6 @@ The same maintained test, static-analysis, and coverage checks are also run by
GitHub Actions on pushes and pull requests. Coverage runs generate Cobertura
reports and upload them to GitHub Code Quality when workflow permissions allow.

The Docker stack uses PHP 8.5, Composer 2, and Node.js 22. It is maintained for
The Docker stack uses PHP 8.5, Composer 2, and Node.js 24. It is maintained for
dependency installation and ad hoc local commands; Nix remains the preferred
environment for exact local parity with the documented checks.
7 changes: 6 additions & 1 deletion Tests/app/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
{
"devDependencies": {
"@babel/core": "^8.0.1",
"@babel/preset-env": "^8.0.2",
"@symfony/webpack-encore": "^7.2.0",
"babel-plugin-polyfill-corejs3": "^1.0.0",
"core-js": "^3.50.0",
"@symfony/webpack-encore": "^6.0.0"
"webpack": "^5.102.0",
"webpack-cli": "^7.0.2"
},
"dependencies": {
"jquery": "^4.0.0"
Expand Down
17 changes: 12 additions & 5 deletions Tests/app/webpack.config.js → Tests/app/webpack.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//
// Read https://symfony.com/doc/current/frontend.html to learn more about how
// to manage CSS and JavaScript files in Symfony applications.
var Encore = require('@symfony/webpack-encore');
import Encore from '@symfony/webpack-encore';

Encore
.setOutputPath('public/build/')
Expand All @@ -19,10 +19,17 @@ Encore
.splitEntryChunks()
.enableSingleRuntimeChunk()
.enableIntegrityHashes(Encore.isProduction())
.configureBabel(null, {
useBuiltIns: 'usage',
corejs: 3,
// Babel 8 removed the "useBuiltIns"/"corejs" options from @babel/preset-env,
// so core-js polyfills are now injected by babel-plugin-polyfill-corejs3.
.configureBabel((babelConfig) => {
babelConfig.plugins.push([
'babel-plugin-polyfill-corejs3',
{
method: 'usage-global',
version: '3.50',
},
]);
})
;

module.exports = Encore.getWebpackConfig();
export default await Encore.getWebpackConfig();
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
packages = with pkgs; [
composer
git
nodejs_22
nodejs_24
php
unzip
zip
Expand Down
2 changes: 1 addition & 1 deletion phpdocker/README.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ <h1>PHP Docker Development Image</h1>
and run ad hoc local commands without host PHP or Composer.</p>

<p>The <code>php-fpm</code> image provides PHP 8.5 FPM, Composer 2,
Node.js 22, npm, the PHP extensions used by the Symfony 8 fixture, and the
Node.js 24, npm, the PHP extensions used by the Symfony 8 fixture, and the
Linux libraries needed by Cypress.</p>

<h2>Build</h2>
Expand Down
2 changes: 1 addition & 1 deletion phpdocker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The `php-fpm` image provides:

* PHP 8.5 FPM
* Composer 2
* Node.js 22 and npm
* Node.js 24 and npm
* PHP extensions used by the Symfony 8 fixture: `intl`, `pdo_mysql`,
`pdo_sqlite`, and `zip`
* Linux libraries needed by the Cypress binary
Expand Down
2 changes: 1 addition & 1 deletion phpdocker/php-fpm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ RUN set -eux; \
mkdir -p /etc/apt/keyrings; \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \
| gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_24.x nodistro main" \
> /etc/apt/sources.list.d/nodesource.list; \
apt-get update; \
apt-get install -y --no-install-recommends nodejs; \
Expand Down