Skip to content

Conversation

@kanow
Copy link
Contributor

@kanow kanow commented Aug 4, 2025

Started refactoring to use CTypes for plugins

kanow added 5 commits August 4, 2025 08:26
locally all tests are green
# Conflicts:
#	Classes/Upgrades/ListTypeToCTypeUpdate.php
# Conflicts:
#	Classes/Upgrades/ListTypeToCTypeUpdate.php
@linxpinx
Copy link
Contributor

linxpinx commented Sep 16, 2025

@oliverklee can you have a look into the phpstan error? I take the Class"AbstractListTypeToCTypeUpdate" from Lina Wolf
https://github.com/linawolf/list-type-migration.

I try to ignore the Error directly in the phpstan.neon

    -
      # Ignore Interface not found for AbstractListTypeToCTypeUpdate.php
      identifier: interface.notFound
      path: Classes/Upgrades/AbstractListTypeToCTypeUpdate.php

did not work and I don't know how to handle this error.

@oliverklee
Copy link
Contributor

@linxpinx This error means that the interface does not exist. PHPStan is right - the interface is part of the install core package, which we currently don't require. So we need to add typo3/cms-install as a production dependency for the upgrade wizard to work.

@linxpinx
Copy link
Contributor

@oliverklee ah ok but the wizard works. I test it in a second TYPO3 Installation and the Wizard change from list_type to CType and the Plugin works after running the wizard. Is it possible that the Class tooks the interface from the Installation TYPO3 if there is no Interface in our Test TYPO3?

@oliverklee
Copy link
Contributor

@linxpinx With Composer, a class or interface is available at any place if the package providing the class/interface is installed. For Composer, it doesn't matter whether the corresponding package is a direct dependency of the package that needs the class/interface, or it happens to be installed as a dependency of some other package (which could also be the root package). My guess is that the install tool package is installed in your test installation anyway, and hence the upgrade wizard class can use that interface.

It is a best practice to have all packages that a package uses as direct dependencies (either production or development) to ensure the corresponding packages are loaded and the classes/interfaces are available.

@oliverklee
Copy link
Contributor

… and relying on transitive dependencies is recommended against as this can lead to breakage when another dependency changes their dependencies. This happened with Georg Ringer's news extension some time ago.

kanow and others added 20 commits September 17, 2025 19:02
and remove the Abstract Class from our extension

# Conflicts:
#	Classes/Upgrades/AbstractListTypeToCTypeUpdate.php
Updates the requirements on [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) to permit the latest version.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](PHP-CS-Fixer/PHP-CS-Fixer@v3.80.0...v3.81.0)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.81.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) to permit the latest version.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](PHP-CS-Fixer/PHP-CS-Fixer@v3.81.0...v3.82.0)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.82.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) to permit the latest version.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](PHP-CS-Fixer/PHP-CS-Fixer@v3.82.0...v3.82.2)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.82.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 9.30.1 to 9.31.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v9.30.1...v9.31.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [spaze/phpstan-disallowed-calls](https://github.com/spaze/phpstan-disallowed-calls) to permit the latest version.
- [Release notes](https://github.com/spaze/phpstan-disallowed-calls/releases)
- [Commits](spaze/phpstan-disallowed-calls@v4.5.0...v4.6.0)

---
updated-dependencies:
- dependency-name: spaze/phpstan-disallowed-calls
  dependency-version: 4.6.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.83.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.84.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.21.1 to 16.22.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.21.1...16.22.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.22.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.1 to 5.5.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/eslint-plugin-prettier@v5.5.1...v5.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 9.31.0 to 9.32.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v9.31.0...v9.32.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.1.5 to 10.1.8.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/eslint-config-prettier@v10.1.5...v10.1.8)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Now you can use the `-t` flag. V12 is still default.
Updates the requirements on [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) to permit the latest version.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](PHP-CS-Fixer/PHP-CS-Fixer@v3.84.0...v3.85.1)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.85.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.22.0 to 16.23.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.22.0...16.23.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.23.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Now that our container images are using a fixed version
of Xdebug, composer-unused is no longer crashing, and
we can re-enable it without breaking the build.

This reverts commit 471fd4f.

Co-authored-by: Bernd Sengupta <macbepepi@me.com>
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/eslint-plugin-prettier@v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.23.0 to 16.23.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.23.0...16.23.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.23.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d-s-codappix and others added 17 commits September 17, 2025 20:05
)

The project root should be as clean as possible.
Configuration files for tools should be within a dedicated folder like
`Build/`.
That's why we also move the configuration file for stylelint.

This has the drawback that the tool can't be used with defaults, but
explicitly needs to be called with `--config` option.

Resolves: #1787
We already had a test covering the update of the title.

But the process also allows to update the description.
That's why we add another test covering this part of the process.
We adjust the existing fixture and test name to reflect that this is a
more specific test case.

Right now we don't offer to update other properties through the process.

Resolves: #1793
We want to clean up the project root.
We couldn't find a usage of the file. Oliver tested the plugin with his
IDE and noticed that it didn't seem to work, e.g. a rule was not
applied, everything else was applied even if the file didn't exist.

We therefore now remove the file.

Resolves: #1791
* [TASK] Unblock argument passing in `Build/Scripts/runTests.sh`

The first argument after processing defined options has been
stored into the variable `TEST_FILE`. This value was passed
to PHPUnit based commands as last argument, defining the test
case to execute (or a subset).

Removing this workaround and directly passing remaining options
to the command makes special arguments like `-e` obsolete and
unblocks more generic command passing.

This change removes this variable and passes all remaining
arguments after option processing directly to the PHPUnit
command and paves the way for future command improvements.

Note:   This makes the `-e` option basically obsolete, but
        is kept for now to minimize muscle memory issues.
        Using it will display a `deprecation` notice at the
        end of the script - so it gets recognized.

This is the Tea port of this change in the TYPO3 Core,
but without test chunking, the deprecated unit or functional
tests and without the acceptance tests (as we don't have
any of those):

https://review.typo3.org/c/Packages/TYPO3.CMS/+/82728

This is the first part of #1345.

* [BUGFIX] refactor back to using array as own variable

Related: #1689

---------

Co-authored-by: Eike Starkmann <eike.starkmann@posteo.de>
Updates the requirements on [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) to permit the latest version.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](PHP-CS-Fixer/PHP-CS-Fixer@v3.86.0...v3.87.1)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.87.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.23.1 to 16.24.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.23.1...16.24.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.24.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 9.34.0 to 9.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v9.34.0...v9.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.35.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) to permit the latest version.
- [Release notes](https://github.com/ergebnis/composer-normalize/releases)
- [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md)
- [Commits](ergebnis/composer-normalize@2.48.1...2.48.2)

---
updated-dependencies:
- dependency-name: ergebnis/composer-normalize
  dependency-version: 2.48.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) to permit the latest version.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](PHP-CS-Fixer/PHP-CS-Fixer@v3.87.1...v3.87.2)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-version: 3.87.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#1807)

Bumps [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) from 15.0.1 to 16.0.0.
- [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md)
- [Commits](stylelint-scss/stylelint-config-standard-scss@v15.0.1...v16.0.0)

---
updated-dependencies:
- dependency-name: stylelint-config-standard-scss
  dependency-version: 16.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@coveralls
Copy link

coveralls commented Sep 22, 2025

Pull Request Test Coverage Report for Build 17919410001

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 0 of 172 (0.0%) changed or added relevant lines in 2 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-61.9%) to 38.129%

Changes Missing Coverage Covered Lines Changed/Added Lines %
Classes/Upgrades/ListTypeToCTypeUpdate.php 0 10 0.0%
Classes/Upgrades/AbstractListTypeToCTypeUpdate.php 0 162 0.0%
Totals Coverage Status
Change from base Build 17763885857: -61.9%
Covered Lines: 106
Relevant Lines: 278

💛 - Coveralls

@linxpinx linxpinx marked this pull request as ready for review September 22, 2025 11:56
@linxpinx linxpinx requested review from DanielSiepmann and oliverklee and removed request for oliverklee September 22, 2025 11:56
@linxpinx
Copy link
Contributor

linxpinx commented Sep 25, 2025

This PR could be closed when #1811 is done. I opened a new PR from a new Branch cause this one was rotten.

@oliverklee
Copy link
Contributor

Superseded by #1811.

@oliverklee oliverklee closed this Nov 30, 2025
@oliverklee oliverklee deleted the 1332-make-plugin-a-ctype branch November 30, 2025 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants