Skip to content
Open
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
28 changes: 23 additions & 5 deletions .github/workflows/backend-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
strategy:
matrix:
php:
- '8.3'
- '8.4'
steps:
- uses: actions/checkout@v7

Expand All @@ -26,6 +26,28 @@

- name: Run code style check
run: composer run-script check-cs -- --format=checkstyle | cs2pr
env:
PHP_CS_FIXER_IGNORE_ENV: 1

deptrac:
name: Deptrac
runs-on: "ubuntu-26.04"
strategy:
fail-fast: false
matrix:
php:
- '8.4'
steps:
- uses: actions/checkout@v7
- name: Install Composer dependencies
uses: ibexa/gh-workflows/actions/composer-install@main

Check failure on line 43 in .github/workflows/backend-ci.yaml

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Use full commit SHA hash for this dependency.

See more on https://sonarcloud.io/project/issues?id=ibexa_core&issues=AZ_rE3Tgwr7A0FAxPDOw&open=AZ_rE3Tgwr7A0FAxPDOw&pullRequest=803
with:
gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }}
gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }}
satis-network-key: ${{ secrets.SATIS_NETWORK_KEY }}
satis-network-token: ${{ secrets.SATIS_NETWORK_TOKEN }}
- name: Run deptrac
run: composer run-script deptrac

tests:
name: Unit tests & SQLite integration tests
Expand All @@ -36,7 +58,6 @@
fail-fast: false
matrix:
php:
- '8.3'
- '8.4'

steps:
Expand Down Expand Up @@ -85,7 +106,6 @@
fail-fast: false
matrix:
php:
- '8.3'
- '8.4'
image:
- 'postgres:14'
Expand Down Expand Up @@ -137,7 +157,6 @@
fail-fast: false
matrix:
php:
- '8.3'
- '8.4'
image:
- 'mysql:8.0'
Expand Down Expand Up @@ -189,7 +208,6 @@
fail-fast: false
matrix:
php:
- '8.3'
- '8.4'
steps:
- uses: actions/checkout@v7
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gha-docker-solr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: "ubuntu-26.04"
strategy:
matrix:
php-version: [8.3, 8.4]
php-version: [8.4]
permissions:
packages: write
services:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ var/
composer.lock
.php-cs-fixer.cache
.phpunit.result.cache
/.deptrac.cache
phpstan.neon
.rules/
4 changes: 4 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
},
"require-dev": {
"behat/behat": "^3.6.1",
"deptrac/deptrac": "^4.7",
"friends-of-behat/mink-extension": "^2.4",
"ibexa/code-style": "~2.1.0",
"ibexa/rector": "~6.0.x-dev",
Expand Down Expand Up @@ -94,6 +95,7 @@
"Ibexa\\Bundle\\LegacySearchEngine\\": "src/bundle/LegacySearchEngine",
"Ibexa\\Contracts\\Core\\": "src/contracts",
"Ibexa\\Core\\": "src/lib",
"Ibexa\\InternalContracts\\Core\\": "src/internal-contracts/",
"Ibexa\\Tests\\Core\\": "tests/lib",
"Ibexa\\Tests\\Integration\\Core\\": "tests/integration/Core",
"Ibexa\\Tests\\Bundle\\Core\\": "tests/bundle/Core",
Expand Down Expand Up @@ -128,6 +130,7 @@
"fix-cs": "php-cs-fixer fix --config=.php-cs-fixer.php -v --show-progress=dots",
"unit": "phpunit -c phpunit.xml",
"phpstan": "phpstan analyse",
"deptrac": "php vendor/bin/deptrac analyse",
"integration": [
"Composer\\Config::disableProcessTimeout",
"phpunit -c phpunit-integration-legacy.xml"
Expand All @@ -140,6 +143,7 @@
},
"scripts-descriptions": {
"check-cs": "Run code style checker for all files",
"deptrac": "Run Deptrac architecture testing",
"fix-cs": "Fix Coding standard issues in current checkout.",
"test": "Run all tests (unit & integration, not functional), might not work on Windows."
},
Expand Down
91 changes: 91 additions & 0 deletions deptrac.baseline.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
deptrac:
skip_violations:
Ibexa\Contracts\Core\Event\View\PostBuildViewEvent:
- Ibexa\Core\MVC\Symfony\View\View
Ibexa\Contracts\Core\Limitation\Target\Builder\VersionBuilder:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\MVC\EventSubscriber\ConfigScopeChangeSubscriber:
- Ibexa\Core\MVC\Symfony\Event\ScopeChangeEvent
Ibexa\Contracts\Core\MVC\Templating\BaseRenderStrategy:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
- Ibexa\Core\MVC\Symfony\SiteAccess
- Ibexa\Core\MVC\Symfony\Templating\RenderOptions
Ibexa\Contracts\Core\MVC\Templating\RenderStrategy:
- Ibexa\Core\MVC\Symfony\Templating\RenderOptions
Ibexa\Contracts\Core\MVC\View\VariableProvider:
- Ibexa\Core\MVC\Symfony\View\View
Ibexa\Contracts\Core\MVC\View\ViewMatcherRegistryInterface:
- Ibexa\Core\MVC\Symfony\Matcher\ViewMatcherInterface
Ibexa\Contracts\Core\Persistence\Content\Type\CriterionHandlerInterface:
- Ibexa\Core\Persistence\Legacy\Content\Type\Gateway\CriterionVisitor\CriterionVisitor
Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder:
- Ibexa\Core\Base\Exceptions\DatabaseException
- Ibexa\Core\Persistence\Legacy\Content\Gateway
- Ibexa\Core\Persistence\Legacy\Content\Location\Gateway
- Ibexa\Core\Repository\Values\Content\VersionInfo
Ibexa\Contracts\Core\Persistence\Handler:
- Ibexa\Core\Persistence\Legacy\URL\Handler
Ibexa\Contracts\Core\Pool\Pool:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Content:
- Ibexa\Core\FieldType\Value
Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Location\SubtreeTermAggregation:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\AbstractImageCompositeCriterion:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\AbstractImageRangeCriterion:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Dimensions:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\FileSize:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Height:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Orientation:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
- Ibexa\Core\FieldType\Image\Orientation
Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Width:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\Query\Criterion\SourceUrl:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\Query\SortClause:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\Query\SortClause\DestinationUrl:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\Query\SortClause\Id:
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\Filter\Filter:
- Ibexa\Core\Base\Exceptions\BadStateException
- Ibexa\Core\Base\Exceptions\InvalidArgumentException
Ibexa\Contracts\Core\Repository\Values\User\User:
- Ibexa\Core\FieldType\Value
Ibexa\Contracts\Core\Repository\Values\User\UserGroup:
- Ibexa\Core\FieldType\Value
Ibexa\Contracts\Core\Test\IbexaKernelTestCase:
- Ibexa\Core\Repository\Values\User\UserReference
- Ibexa\Tests\Core\Repository\LegacySchemaImporter
Ibexa\Contracts\Core\Test\IbexaKernelTestTrait:
- Ibexa\Core\Repository\Values\User\UserReference
- Ibexa\Tests\Core\Repository\LegacySchemaImporter
Ibexa\Contracts\Core\Test\IbexaTestKernel:
- Ibexa\Bundle\Core\IbexaCoreBundle
- Ibexa\Bundle\LegacySearchEngine\IbexaLegacySearchEngineBundle
- Ibexa\Tests\Integration\Core\IO\FlysystemTestAdapter
- Ibexa\Tests\Integration\Core\IO\FlysystemTestAdapterInterface
Ibexa\Contracts\Core\Test\Repository\SetupFactory:
- Ibexa\Core\Base\ServiceContainer
- Ibexa\Tests\Integration\Core\Repository\IdManager
Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy:
- Ibexa\Bundle\Core\DependencyInjection\ServiceTags
- Ibexa\Core\Base\Container\Compiler\Search\FieldRegistryPass
- Ibexa\Core\Base\ServiceContainer
- Ibexa\Core\Persistence\Legacy\Content\Language\CachingHandler
- Ibexa\Core\Persistence\Legacy\Content\Type\MemoryCachingHandler
- Ibexa\Core\Persistence\Legacy\Handler
- Ibexa\Core\Repository\Values\User\UserReference
- Ibexa\Tests\Core\Repository\IdManager\Php
- Ibexa\Tests\Core\Repository\LegacySchemaImporter
- Ibexa\Tests\Integration\Core\LegacyTestContainerBuilder
- Ibexa\Tests\Integration\Core\Repository\IdManager
37 changes: 37 additions & 0 deletions deptrac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
imports:
- deptrac.baseline.yaml

deptrac:
paths:
- ./src
- ./tests
layers:
- name: Bundle
collectors:
- type: directory
value: src/bundle/.*
- type: directory
value: src/lib/.*
- name: Contracts
collectors:
- type: directory
value: src/contracts/.*
- name: InternalContracts
collectors:
- type: directory
value: src/internal-contracts/.*
- name: Test
collectors:
- type: directory
value: tests/.*
ruleset:
Bundle:
- Contracts
- InternalContracts
Contracts: ~
InternalContracts:
- Contracts
Test:
- Bundle
- Contracts
- InternalContracts
Empty file added src/internal-contracts/.gitkeep
Empty file.