Skip to content

Commit 17b1629

Browse files
committed
[TASK] Add custom worker
1 parent 4c8e6ea commit 17b1629

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
},
4141
"autoload": {
4242
"psr-4": {
43-
"A9f\\FractorMonorepo\\": "src/",
43+
"a9f\\FractorMonorepo\\": "src",
4444
"a9f\\FractorComposerJson\\": [
4545
"packages/fractor-composer-json/rules",
4646
"packages/fractor-composer-json/src"

monorepo-builder.php

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
declare(strict_types=1);
44

5+
use a9f\FractorMonorepo\Release\ReleaseWorker\DefineFractorApplicationReleaseVersionWorker;
56
use Symplify\MonorepoBuilder\ComposerJsonManipulator\ValueObject\ComposerJsonSection;
67
use Symplify\MonorepoBuilder\Config\MBConfig;
78
use Symplify\MonorepoBuilder\Release\ReleaseWorker\AddTagToChangelogReleaseWorker;
@@ -14,6 +15,9 @@
1415
use Symplify\MonorepoBuilder\Release\ReleaseWorker\UpdateReplaceReleaseWorker;
1516
use Symplify\MonorepoBuilder\ValueObject\Option;
1617

18+
// MonoRepoBuilder uses own autoloader in custom vendor folder
19+
require_once __DIR__ . '/src/Release/ReleaseWorker/DefineFractorApplicationReleaseVersionWorker.php';
20+
1721
return static function (MBConfig $mbConfig): void {
1822
$mbConfig->packageDirectories([__DIR__ . '/packages']);
1923
$mbConfig->packageAliasFormat('<major>.<minor>.x-dev');
@@ -28,6 +32,7 @@
2832
]);
2933
// release workers - in order of execution
3034
$mbConfig->workers([
35+
DefineFractorApplicationReleaseVersionWorker::class,
3136
UpdateReplaceReleaseWorker::class,
3237
SetCurrentMutualDependenciesReleaseWorker::class,
3338
AddTagToChangelogReleaseWorker::class,

packages/fractor/src/FractorApplication.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ final class FractorApplication extends Application
1010
{
1111
public const NAME = 'Fractor';
1212

13+
private const FRACTOR_CONSOLE_VERSION = '0.1.0';
14+
1315
public function __construct()
1416
{
15-
parent::__construct(self::NAME, 'dev');
17+
parent::__construct(self::NAME, self::FRACTOR_CONSOLE_VERSION);
1618
}
1719
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace a9f\FractorMonorepo\Release\ReleaseWorker;
5+
6+
use a9f\Fractor\FractorApplication;
7+
use Nette\Utils\FileSystem;
8+
use Nette\Utils\Strings;
9+
use PharIo\Version\Version;
10+
use Symplify\MonorepoBuilder\Release\Contract\ReleaseWorker\ReleaseWorkerInterface;
11+
12+
final readonly class DefineFractorApplicationReleaseVersionWorker implements ReleaseWorkerInterface
13+
{
14+
public function getDescription(Version $version): string
15+
{
16+
return \sprintf('Add "%s" to "%s"', $version->getVersionString(), FractorApplication::class);
17+
}
18+
19+
public function work(Version $version): void
20+
{
21+
$applicationFile = __DIR__ . '/../../../packages/fractor/src/FractorApplication.php';
22+
$content = Filesystem::read($applicationFile);
23+
$content = Strings::replace($content, '/(const FRACTOR_CONSOLE_VERSION = \')\d+\.\d+\.\d+/', 'const FRACTOR_CONSOLE_VERSION = \'' . $version->getVersionString());
24+
FileSystem::write($applicationFile, $content);
25+
}
26+
}

0 commit comments

Comments
 (0)