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
4 changes: 0 additions & 4 deletions .github/workflows/quickstart-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,6 @@ jobs:
echo "Kafka failed to start within 60 seconds"
exit 1

- name: Enable merge-plugin
run: composer global config --no-interaction allow-plugins.wikimedia/composer-merge-plugin true && composer global require wikimedia/composer-merge-plugin
working-directory: ${{ github.workspace }}/${{ matrix.package.directory }}

- name: Install dependencies
run: composer update --${{ matrix.stability }} --no-interaction
working-directory: ${{ github.workspace }}/${{ matrix.package.directory }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ jobs:
run: |
echo "${{ secrets.ECOTONE_ENTERPRISE_PUBLIC_KEY }}" > ${{ matrix.package.directory }}/src/Messaging/Config/Licence/key.pem

- name: Strip monorepo-only path repositories from composer.json
run: php bin/strip-monorepo-repositories.php "${{ matrix.package.directory }}"

-
uses: "danharrin/monorepo-split-github-action@v2.4.0"
if: "startsWith(github.ref, 'refs/tags/')"
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/split-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,6 @@ jobs:
echo "Kafka failed to start within 60 seconds"
exit 1

- name: Enable merge-plugin
run: composer global config --no-interaction allow-plugins.wikimedia/composer-merge-plugin true && composer global require wikimedia/composer-merge-plugin

- name: Remove grpc dependent packages (ext-grpc not available on PHP 8.5)
if: matrix.php-version == '8.5'
run: cd packages/OpenTelemetry && composer remove --dev --no-update open-telemetry/transport-grpc
Expand Down
27 changes: 14 additions & 13 deletions _PackageTemplate/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,20 @@
"email": "support@simplycodedsoftware.com"
}
],
"keywords": ["ecotone", "_PackageTemplate"],
"keywords": [
"ecotone",
"_PackageTemplate"
],
"description": "Extends Ecotone with _PackageTemplate integration",
"repositories": [
{
"type": "path",
"url": "../*",
"options": {
"symlink": true
}
}
],
"autoload": {
"psr-4": {
"Ecotone\\_PackageTemplate\\": "src"
Expand All @@ -35,8 +47,7 @@
"require-dev": {
"phpunit/phpunit": "^9.5|^10.5|^11.0",
"phpstan/phpstan": "^1.8",
"psr/container": "^2.0",
"wikimedia/composer-merge-plugin": "^2.1"
"psr/container": "^2.0"
},
"scripts": {
"tests:phpstan": "vendor/bin/phpstan",
Expand All @@ -53,11 +64,6 @@
"ecotone": {
"repository": "_PackageTemplate"
},
"merge-plugin": {
"include": [
"../local_packages.json"
]
},
"license-info": {
"Apache-2.0": {
"name": "Apache License 2.0",
Expand All @@ -69,10 +75,5 @@
"description": "Allows to use Enterprise features of Ecotone. For more information please write to support@simplycodedsoftware.com"
}
}
},
"config": {
"allow-plugins": {
"wikimedia/composer-merge-plugin": true
}
}
}
42 changes: 42 additions & 0 deletions bin/strip-monorepo-repositories.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/usr/bin/env php
<?php

$directory = $argv[1] ?? throw new InvalidArgumentException('Pass directory to strip path repositories from');
if (!is_dir($directory)) {
throw new InvalidArgumentException("Directory does not exist: $directory");
}

$iterator = new RecursiveIteratorIterator(
new RecursiveCallbackFilterIterator(
new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS),
fn ($current) => $current->getFilename() !== 'vendor'
)
);

foreach ($iterator as $file) {
if ($file->getFilename() !== 'composer.json') {
continue;
}

$path = $file->getPathname();
$composer = json_decode(file_get_contents($path), true);
if (!is_array($composer) || !isset($composer['repositories'])) {
continue;
}

$composer['repositories'] = array_values(array_filter(
$composer['repositories'],
fn ($repository) => ($repository['type'] ?? null) !== 'path'
));

if (empty($composer['repositories'])) {
unset($composer['repositories']);
}

file_put_contents(
$path,
json_encode($composer, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . "\n"
);

echo "stripped: $path\n";
}
16 changes: 9 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@
"service-bus"
],
"description": "Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Sagas, Projections, Workflows, and Outbox messaging via PHP attributes.",
"repositories": [
{
"type": "path",
"url": "packages/*",
"options": {
"symlink": true
}
}
],
"autoload": {
"psr-4": {
"Ecotone\\": [
Expand Down Expand Up @@ -138,7 +147,6 @@
"symfony/console": "^6.4|^7.0|^8.0",
"symfony/framework-bundle": "^6.4|^7.0|^8.0",
"symfony/dependency-injection": "^6.4|^7.0|^8.0",
"wikimedia/composer-merge-plugin": "^2.1",
"php-di/php-di": "^7.0.5",
"open-telemetry/sdk": "^1.0.0",
"psr/container": "^1.1.1|^2.0.1",
Expand Down Expand Up @@ -190,11 +198,6 @@
"Ecotone\\Laravel\\EcotoneProvider"
]
},
"merge-plugin": {
"include": [
"local-packages.json"
]
},
"license-info": {
"Apache-2.0": {
"name": "Apache License 2.0",
Expand Down Expand Up @@ -239,7 +242,6 @@
},
"config": {
"allow-plugins": {
"wikimedia/composer-merge-plugin": true,
"php-http/discovery": false,
"tbachert/spi": false
},
Expand Down
2 changes: 0 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ services:
SQS_DSN: sqs:?key=key&secret=secret&region=us-east-1&endpoint=http://localstack:4566&version=latest
REDIS_DSN: redis://redis:6379
KAFKA_DSN: kafka:9092
APP_MERGE_PLUGIN: "yes"
env_file:
- ".env"
app8_2:
Expand All @@ -44,7 +43,6 @@ services:
SQS_DSN: sqs:?key=key&secret=secret&region=us-east-1&endpoint=http://localstack:4566&version=latest
REDIS_DSN: redis://redis:6379
KAFKA_DSN: kafka:9092
APP_MERGE_PLUGIN: "yes"
env_file:
- ".env"
database:
Expand Down
44 changes: 0 additions & 44 deletions local-packages.json

This file was deleted.

22 changes: 10 additions & 12 deletions packages/Amqp/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,15 @@
"domain driven design"
],
"description": "AMQP / RabbitMQ transport for Ecotone asynchronous messaging, outbox, and dead letter.",
"repositories": [
{
"type": "path",
"url": "../*",
"options": {
"symlink": true
}
}
],
"autoload": {
"psr-4": {
"Ecotone\\Amqp\\": "src"
Expand All @@ -51,7 +60,6 @@
"phpunit/phpunit": "^10.5|^11.0",
"phpstan/phpstan": "^1.8",
"doctrine/annotations": "^1.13|^2.0",
"wikimedia/composer-merge-plugin": "^2.1",
"ext-amqp": "*",
"enqueue/amqp-ext": "^0.10.18",
"enqueue/amqp-lib": "^0.10.25"
Expand Down Expand Up @@ -89,11 +97,6 @@
"ecotone": {
"repository": "amqp"
},
"merge-plugin": {
"include": [
"../local_packages.json"
]
},
"license-info": {
"Apache-2.0": {
"name": "Apache License 2.0",
Expand All @@ -106,10 +109,5 @@
}
},
"release-time": "2026-05-04 16:26:55"
},
"config": {
"allow-plugins": {
"wikimedia/composer-merge-plugin": true
}
}
}
}
24 changes: 11 additions & 13 deletions packages/DataProtection/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@
"Secure Messages"
],
"description": "Field-level encryption and PII masking for Ecotone messages \u2014 GDPR-friendly data protection with crypto-shredding.",
"repositories": [
{
"type": "path",
"url": "../*",
"options": {
"symlink": true
}
}
],
"autoload": {
"psr-4": {
"Ecotone\\DataProtection\\": "src"
Expand All @@ -45,8 +54,7 @@
"require-dev": {
"ecotone/pdo-event-sourcing": "~1.310.0",
"phpunit/phpunit": "^11.0",
"phpstan/phpstan": "^2.1",
"wikimedia/composer-merge-plugin": "^2.1"
"phpstan/phpstan": "^2.1"
},
"suggest": {
"ext-simplexml": "Required if application/xml is used as serialization media type"
Expand All @@ -69,11 +77,6 @@
"ecotone": {
"repository": "data-protection"
},
"merge-plugin": {
"include": [
"../local_packages.json"
]
},
"license-info": {
"Apache-2.0": {
"name": "Apache License 2.0",
Expand All @@ -86,10 +89,5 @@
}
},
"release-time": "2026-05-04 16:26:55"
},
"config": {
"allow-plugins": {
"wikimedia/composer-merge-plugin": true
}
}
}
}
22 changes: 10 additions & 12 deletions packages/Dbal/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@
"ecotone"
],
"description": "Doctrine DBAL integration for Ecotone \u2014 database-backed message channel, outbox pattern, dead letter queue, and document store.",
"repositories": [
{
"type": "path",
"url": "../*",
"options": {
"symlink": true
}
}
],
"autoload": {
"psr-4": {
"Ecotone\\Dbal\\": "src",
Expand All @@ -45,7 +54,6 @@
"doctrine/orm": "^2.11|^3.0",
"doctrine/cache": "^1.0.0|^2.0",
"doctrine/annotations": "^1.13|^2.0",
"wikimedia/composer-merge-plugin": "^2.1",
"ecotone/jms-converter": "~1.310.0",
"symfony/expression-language": "^6.4|^7.0|^8.0"
},
Expand All @@ -64,11 +72,6 @@
"ecotone": {
"repository": "dbal"
},
"merge-plugin": {
"include": [
"../local_packages.json"
]
},
"license-info": {
"Apache-2.0": {
"name": "Apache License 2.0",
Expand All @@ -82,12 +85,7 @@
},
"release-time": "2026-05-04 16:26:55"
},
"config": {
"allow-plugins": {
"wikimedia/composer-merge-plugin": true
}
},
"conflict": {
"enqueue/dbal": "*"
}
}
}
Loading
Loading