From a41adcbaf74d41728ad5043cf04c766b54d4b9c1 Mon Sep 17 00:00:00 2001 From: Stanislav Kutasevits Date: Thu, 17 Jul 2025 16:20:03 +0300 Subject: [PATCH 1/6] Replacing RequestStack --- src/Controller/WebformController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller/WebformController.php b/src/Controller/WebformController.php index a6c1662..8cb4c92 100644 --- a/src/Controller/WebformController.php +++ b/src/Controller/WebformController.php @@ -4,7 +4,7 @@ use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Datetime\DrupalDateTime; -use Drupal\Core\Http\RequestStack; +use Symfony\Component\HttpFoundation\RequestStack; use Drupal\Core\Link; use Drupal\Core\Render\Markup; use Drupal\Core\Render\RendererInterface; From a4a59e8f6e863cebb55e8b63df2dd29419f3a940 Mon Sep 17 00:00:00 2001 From: Stanislav Kutasevits Date: Thu, 17 Jul 2025 16:21:52 +0300 Subject: [PATCH 2/6] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91a33cd..3f21009 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +- D10 compatibility - updating RequestStack + ## [1.1.3] ### Updated From 282c724bf53c16be21b59a1c74dfc1423fc8cf23 Mon Sep 17 00:00:00 2001 From: Stanislav Kutasevits Date: Thu, 17 Jul 2025 16:28:31 +0300 Subject: [PATCH 3/6] Update pr.yaml --- .github/workflows/pr.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 5c494b9..c183cbf 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -8,7 +8,7 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 2 @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@master - name: Setup PHP, with composer and extensions - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@v4 with: php-version: ${{ matrix.php-versions }} extensions: json @@ -39,7 +39,7 @@ jobs: id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -60,7 +60,7 @@ jobs: steps: - uses: actions/checkout@master - name: Setup PHP, with composer and extensions - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@v4 with: php-version: ${{ matrix.php-versions }} extensions: json @@ -71,7 +71,7 @@ jobs: id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -93,7 +93,7 @@ jobs: steps: - uses: actions/checkout@master - name: Setup PHP, with composer and extensions - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@v4 with: php-version: ${{ matrix.php-versions }} extensions: json, gd @@ -104,7 +104,7 @@ jobs: id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -140,12 +140,12 @@ jobs: name: Markdown coding standards steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache yarn packages - uses: actions/cache@v2 + uses: actions/cache@v4 id: yarn-cache with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -153,7 +153,7 @@ jobs: restore-keys: | ${{ runner.os }}-yarn- - name: Yarn install - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: '22' - run: yarn install From f8a16b6254b2247794e9d6acae455efcb28c4982 Mon Sep 17 00:00:00 2001 From: Stanislav Kutasevits Date: Thu, 17 Jul 2025 16:31:11 +0300 Subject: [PATCH 4/6] Update pr.yaml --- .github/workflows/pr.yaml | 151 +++++++++----------------------------- 1 file changed, 36 insertions(+), 115 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index c183cbf..194b59f 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -1,5 +1,5 @@ on: pull_request -name: PR Review +name: Review jobs: changelog: runs-on: ubuntu-latest @@ -18,144 +18,65 @@ jobs: - name: Check that changelog has been updated. run: git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md && exit 1 || exit 0 - test-composer-files: + validate-composer-files: name: Validate composer runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Validate composer files + run: | + # Note that we don't use the --strict flag on validate due to the + # package drupal/config_entity_revisions 2.0.x-dev being considered a + # version cf. + # https://getcomposer.org/doc/articles/versions.md#branches + docker compose run --rm php composer validate composer.json + - name: Check that composer file is normalized + run: | + docker compose run --rm php composer install + docker compose run --rm php composer normalize --dry-run + + test-composer-files: + name: Test composer files + runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - - uses: actions/checkout@master - - name: Setup PHP, with composer and extensions - uses: shivammathur/setup-php@v4 - with: - php-version: ${{ matrix.php-versions }} - extensions: json - coverage: none - tools: composer:v2 - # https://github.com/shivammathur/setup-php#cache-composer-dependencies - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - name: Validate composer files + - uses: actions/checkout@v4 + - name: Check that dependencies resolve. run: | - composer validate --strict composer.json - # Check that dependencies resolve. - composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction + # Clean up before update (cf. https://www.drupal.org/project/simplesamlphp_auth/issues/3350773) + rm -fr vendor/ + docker compose run --rm php composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction php-coding-standards: name: PHP coding standards runs-on: ubuntu-latest - strategy: - matrix: - php-versions: [ '8.1' ] - dependency-version: [ prefer-lowest, prefer-stable ] steps: - - uses: actions/checkout@master - - name: Setup PHP, with composer and extensions - uses: shivammathur/setup-php@v4 - with: - php-version: ${{ matrix.php-versions }} - extensions: json - coverage: none - tools: composer:v2 - # https://github.com/shivammathur/setup-php#cache-composer-dependencies - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- + - uses: actions/checkout@v4 - name: Install Dependencies run: | - composer install --no-interaction --no-progress + docker compose run --rm php composer install - name: PHPCS run: | - composer coding-standards-check/phpcs + docker compose run --rm php composer coding-standards-check/phpcs php-code-analysis: name: PHP code analysis runs-on: ubuntu-latest - strategy: - matrix: - php-versions: [ '8.1' ] - dependency-version: [ prefer-lowest, prefer-stable ] steps: - - uses: actions/checkout@master - - name: Setup PHP, with composer and extensions - uses: shivammathur/setup-php@v4 - with: - php-version: ${{ matrix.php-versions }} - extensions: json, gd - coverage: none - tools: composer:v2 - # https://github.com/shivammathur/setup-php#cache-composer-dependencies - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - name: drupal-check + - uses: actions/checkout@v4 + - name: Code analysis run: | - # We need a Drupal project to run drupal-check (cf. https://github.com/mglaman/drupal-check#usage) - # Install Drupal - composer --no-interaction create-project drupal/recommended-project:^9 --stability=dev drupal - # Copy our module source code into the Drupal module folder. - mkdir -p drupal/web/modules/contrib/os2forms_sync - cp -r os2forms_sync.* composer.json src drupal/web/modules/contrib/os2forms_sync - # Add our module as a composer repository. - composer --no-interaction --working-dir=drupal config repositories.os2forms/os2forms_sync path web/modules/contrib/os2forms_sync - # Restore Drupal composer repository. - composer --no-interaction --working-dir=drupal config repositories.drupal composer https://packages.drupal.org/8 - - # Require our module. - composer --no-interaction --working-dir=drupal require 'os2forms/os2forms_sync:*' + ./scripts/code-analysis - # Check code - composer --no-interaction --working-dir=drupal require --dev drupal/core-dev - cd drupal/web/modules/contrib/os2forms_sync - # Remove our non-dev dependencies to prevent duplicated Drupal installation - # PHP Fatal error: Cannot redeclare drupal_get_filename() (previously declared in /home/runner/work/os2forms_sync/os2forms_sync/drupal/web/modules/contrib/os2forms_sync/vendor/drupal/core/includes/bootstrap.inc:190) in /home/runner/work/os2forms_sync/os2forms_sync/drupal/web/core/includes/bootstrap.inc on line 190 - # Use sed to remove the "require" property in composer.json - sed -i '/^\s*"require":/,/^\s*}/d' composer.json - composer --no-interaction install - composer code-analysis - - markdown-coding-standards: - runs-on: ubuntu-latest + coding-standards-markdown: name: Markdown coding standards + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: Cache yarn packages - uses: actions/cache@v4 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Yarn install - uses: actions/setup-node@v4 - with: - node-version: '22' - - run: yarn install - - name: coding-standards-check - run: yarn coding-standards-check + + - name: Coding standards + run: | + docker compose run --rm markdownlint markdownlint '**/*.md' From 62c809c5cad338dbb0322ded0d00292c6ef22fe3 Mon Sep 17 00:00:00 2001 From: Stanislav Kutasevits Date: Thu, 17 Jul 2025 16:34:09 +0300 Subject: [PATCH 5/6] Update pr.yaml --- .github/workflows/pr.yaml | 151 +++++++++++++++++++++++++++++--------- 1 file changed, 115 insertions(+), 36 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 194b59f..7aca48d 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -1,5 +1,5 @@ on: pull_request -name: Review +name: PR Review jobs: changelog: runs-on: ubuntu-latest @@ -18,65 +18,144 @@ jobs: - name: Check that changelog has been updated. run: git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md && exit 1 || exit 0 - validate-composer-files: - name: Validate composer - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Validate composer files - run: | - # Note that we don't use the --strict flag on validate due to the - # package drupal/config_entity_revisions 2.0.x-dev being considered a - # version cf. - # https://getcomposer.org/doc/articles/versions.md#branches - docker compose run --rm php composer validate composer.json - - name: Check that composer file is normalized - run: | - docker compose run --rm php composer install - docker compose run --rm php composer normalize --dry-run - test-composer-files: - name: Test composer files + name: Validate composer runs-on: ubuntu-latest strategy: matrix: + php-versions: [ '8.1' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - - uses: actions/checkout@v4 - - name: Check that dependencies resolve. + - uses: actions/checkout@master + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: json + coverage: none + tools: composer:v2 + # https://github.com/shivammathur/setup-php#cache-composer-dependencies + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Validate composer files run: | - # Clean up before update (cf. https://www.drupal.org/project/simplesamlphp_auth/issues/3350773) - rm -fr vendor/ - docker compose run --rm php composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction + composer validate --strict composer.json + # Check that dependencies resolve. + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction php-coding-standards: name: PHP coding standards runs-on: ubuntu-latest + strategy: + matrix: + php-versions: [ '8.1' ] + dependency-version: [ prefer-lowest, prefer-stable ] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@master + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: json + coverage: none + tools: composer:v2 + # https://github.com/shivammathur/setup-php#cache-composer-dependencies + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- - name: Install Dependencies run: | - docker compose run --rm php composer install + composer install --no-interaction --no-progress - name: PHPCS run: | - docker compose run --rm php composer coding-standards-check/phpcs + composer coding-standards-check/phpcs php-code-analysis: name: PHP code analysis runs-on: ubuntu-latest + strategy: + matrix: + php-versions: [ '8.1' ] + dependency-version: [ prefer-lowest, prefer-stable ] steps: - - uses: actions/checkout@v4 - - name: Code analysis + - uses: actions/checkout@master + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: json, gd + coverage: none + tools: composer:v2 + # https://github.com/shivammathur/setup-php#cache-composer-dependencies + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: drupal-check run: | - ./scripts/code-analysis + # We need a Drupal project to run drupal-check (cf. https://github.com/mglaman/drupal-check#usage) + # Install Drupal + composer --no-interaction create-project drupal/recommended-project:^9 --stability=dev drupal + # Copy our module source code into the Drupal module folder. + mkdir -p drupal/web/modules/contrib/os2forms_sync + cp -r os2forms_sync.* composer.json src drupal/web/modules/contrib/os2forms_sync + # Add our module as a composer repository. + composer --no-interaction --working-dir=drupal config repositories.os2forms/os2forms_sync path web/modules/contrib/os2forms_sync + # Restore Drupal composer repository. + composer --no-interaction --working-dir=drupal config repositories.drupal composer https://packages.drupal.org/8 - coding-standards-markdown: - name: Markdown coding standards + # Require our module. + composer --no-interaction --working-dir=drupal require 'os2forms/os2forms_sync:*' + + # Check code + composer --no-interaction --working-dir=drupal require --dev drupal/core-dev + cd drupal/web/modules/contrib/os2forms_sync + # Remove our non-dev dependencies to prevent duplicated Drupal installation + # PHP Fatal error: Cannot redeclare drupal_get_filename() (previously declared in /home/runner/work/os2forms_sync/os2forms_sync/drupal/web/modules/contrib/os2forms_sync/vendor/drupal/core/includes/bootstrap.inc:190) in /home/runner/work/os2forms_sync/os2forms_sync/drupal/web/core/includes/bootstrap.inc on line 190 + # Use sed to remove the "require" property in composer.json + sed -i '/^\s*"require":/,/^\s*}/d' composer.json + composer --no-interaction install + composer code-analysis + + markdown-coding-standards: runs-on: ubuntu-latest + name: Markdown coding standards steps: - name: Checkout uses: actions/checkout@v4 - - - name: Coding standards - run: | - docker compose run --rm markdownlint markdownlint '**/*.md' + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Cache yarn packages + uses: actions/cache@v4 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Yarn install + uses: actions/setup-node@v2 + with: + node-version: '22' + - run: yarn install + - name: coding-standards-check + run: yarn coding-standards-check From dc5dde9cd11367b8a45d026f483a87c2db873a1e Mon Sep 17 00:00:00 2001 From: Stanislav Kutasevits Date: Thu, 17 Jul 2025 16:35:17 +0300 Subject: [PATCH 6/6] Update pr.yaml --- .github/workflows/pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 7aca48d..2cf59f8 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -71,7 +71,7 @@ jobs: id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}