Skip to content

Commit 51dc3e0

Browse files
authored
Various udpates and more tests (#235)
1 parent 775dae5 commit 51dc3e0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+880
-416
lines changed

.github/workflows/codecov.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ jobs:
4242
XDEBUG_MODE: coverage
4343
PHPUNIT_OPTIONS: --coverage-clover coverage.xml --log-junit junit.xml
4444
- name: Upload coverage reports to Codecov
45-
uses: codecov/codecov-action@v3
46-
env:
47-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
45+
uses: codecov/codecov-action@v4
46+
with:
47+
token: ${{ secrets.CODECOV_TOKEN }}
4848
- name: Upload test results to Codecov
4949
if: ${{ !cancelled() }}
5050
uses: codecov/test-results-action@v1
5151
with:
52-
token: ${{ secrets.CODECOV_TOKEN }}
52+
token: ${{ secrets.CODECOV_TOKEN }}

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,4 +248,4 @@
248248
"@php -r \"if(file_exists('./.git')&&file_exists('./build/hooks/pre-commit')){copy('./build/hooks/pre-commit','./.git/hooks/pre-commit');chmod('./.git/hooks/pre-commit',0755);}\""
249249
]
250250
}
251-
}
251+
}

docs/bard/commands.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
# Commands
1+
---
2+
title: Bard Commands
3+
---
4+
5+
All commands have usage examples along with help documentation in the commands.
6+
To view more details, run `bard <command> -h`.
27

38
## init
49

docs/bard/overview.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,19 @@
22
title: Bard
33
---
44

5-
# Bard
6-
75
Bard is used to manage monorepos.
86

7+
## Installing
8+
9+
Bard is meant to be installed into a "tools" folder for use with your project.
10+
11+
```shell
12+
mkdir tools/bard
13+
composer require --working-dir=tools/bard sonsofphp/bard
14+
echo "composer.lock\nvendor/" > tools/bard/.gitignore
15+
php tools/bard/vendor/bin/bard
16+
```
17+
918
## Usage
1019

1120
Initialize a new bard.json file for new monorepos.

src/SonsOfPHP/Bard/Tests/Console/Command/AddCommandTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
use SonsOfPHP\Bard\Console\Command\SplitCommand;
2222
use SonsOfPHP\Bard\Console\Command\UpdateCommand;
2323
use SonsOfPHP\Bard\JsonFile;
24-
use SonsOfPHP\Bard\Worker\File\Bard\AddPackageWorker;
24+
use SonsOfPHP\Bard\Operation\Bard\AddPackageOperation;
2525
use Symfony\Component\Console\Tester\CommandTester;
2626

2727
#[Group('bard')]
@@ -38,7 +38,7 @@
3838
#[UsesClass(SplitCommand::class)]
3939
#[UsesClass(UpdateCommand::class)]
4040
#[UsesClass(JsonFile::class)]
41-
#[UsesClass(AddPackageWorker::class)]
41+
#[UsesClass(AddPackageOperation::class)]
4242
final class AddCommandTest extends TestCase
4343
{
4444
private Application $application;

src/SonsOfPHP/Bard/Tests/Console/Command/CopyCommandTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
use SonsOfPHP\Bard\Console\Command\SplitCommand;
2222
use SonsOfPHP\Bard\Console\Command\UpdateCommand;
2323
use SonsOfPHP\Bard\JsonFile;
24-
use SonsOfPHP\Bard\Worker\File\Bard\AddPackageWorker;
24+
use SonsOfPHP\Bard\Operation\Bard\AddPackageOperation;
2525
use Symfony\Component\Console\Tester\CommandTester;
2626

2727
#[Group('bard')]
@@ -38,7 +38,7 @@
3838
#[UsesClass(SplitCommand::class)]
3939
#[UsesClass(UpdateCommand::class)]
4040
#[UsesClass(JsonFile::class)]
41-
#[UsesClass(AddPackageWorker::class)]
41+
#[UsesClass(AddPackageOperation::class)]
4242
final class CopyCommandTest extends TestCase
4343
{
4444
private Application $application;

src/SonsOfPHP/Bard/Tests/Console/Command/MergeCommandTest.php

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@
2121
use SonsOfPHP\Bard\Console\Command\SplitCommand;
2222
use SonsOfPHP\Bard\Console\Command\UpdateCommand;
2323
use SonsOfPHP\Bard\JsonFile;
24-
use SonsOfPHP\Bard\Worker\File\Composer\Package\Authors;
25-
use SonsOfPHP\Bard\Worker\File\Composer\Package\BranchAlias;
26-
use SonsOfPHP\Bard\Worker\File\Composer\Package\Funding;
27-
use SonsOfPHP\Bard\Worker\File\Composer\Package\Support;
28-
use SonsOfPHP\Bard\Worker\File\Composer\Root\ClearSection;
29-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateAutoloadDevSection;
30-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateAutoloadSection;
31-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateProvideSection;
32-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateReplaceSection;
33-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateRequireDevSection;
34-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateRequireSection;
24+
use SonsOfPHP\Bard\Operation\ClearSectionOperation;
25+
use SonsOfPHP\Bard\Operation\Composer\Package\CopyAuthorsSectionFromRootToPackageOperation;
26+
use SonsOfPHP\Bard\Operation\Composer\Package\CopyBranchAliasValueFromRootToPackageOperation;
27+
use SonsOfPHP\Bard\Operation\Composer\Package\CopyFundingSectionFromRootToPackageOperation;
28+
use SonsOfPHP\Bard\Operation\Composer\Package\CopySupportSectionFromRootToPackageOperation;
29+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateAutoloadDevSectionOperation;
30+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateAutoloadSectionOperation;
31+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateProvideSectionOperation;
32+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateReplaceSectionOperation;
33+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateRequireDevSectionOperation;
34+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateRequireSectionOperation;
3535
use Symfony\Component\Console\Tester\CommandTester;
3636

3737
#[Group('bard')]
@@ -48,17 +48,17 @@
4848
#[UsesClass(SplitCommand::class)]
4949
#[UsesClass(UpdateCommand::class)]
5050
#[UsesClass(JsonFile::class)]
51-
#[UsesClass(Authors::class)]
52-
#[UsesClass(BranchAlias::class)]
53-
#[UsesClass(Funding::class)]
54-
#[UsesClass(Support::class)]
55-
#[UsesClass(ClearSection::class)]
56-
#[UsesClass(UpdateAutoloadDevSection::class)]
57-
#[UsesClass(UpdateAutoloadSection::class)]
58-
#[UsesClass(UpdateProvideSection::class)]
59-
#[UsesClass(UpdateReplaceSection::class)]
60-
#[UsesClass(UpdateRequireSection::class)]
61-
#[UsesClass(UpdateRequireDevSection::class)]
51+
#[UsesClass(CopyAuthorsSectionFromRootToPackageOperation::class)]
52+
#[UsesClass(CopyBranchAliasValueFromRootToPackageOperation::class)]
53+
#[UsesClass(CopyFundingSectionFromRootToPackageOperation::class)]
54+
#[UsesClass(CopySupportSectionFromRootToPackageOperation::class)]
55+
#[UsesClass(ClearSectionOperation::class)]
56+
#[UsesClass(UpdateAutoloadDevSectionOperation::class)]
57+
#[UsesClass(UpdateAutoloadSectionOperation::class)]
58+
#[UsesClass(UpdateProvideSectionOperation::class)]
59+
#[UsesClass(UpdateReplaceSectionOperation::class)]
60+
#[UsesClass(UpdateRequireSectionOperation::class)]
61+
#[UsesClass(UpdateRequireDevSectionOperation::class)]
6262
final class MergeCommandTest extends TestCase
6363
{
6464
private Application $application;

src/SonsOfPHP/Bard/Tests/Console/Command/PushCommandTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
use SonsOfPHP\Bard\Console\Command\SplitCommand;
2222
use SonsOfPHP\Bard\Console\Command\UpdateCommand;
2323
use SonsOfPHP\Bard\JsonFile;
24-
use SonsOfPHP\Bard\Worker\File\Bard\AddPackageWorker;
24+
use SonsOfPHP\Bard\Operation\Bard\AddPackageOperation;
2525
use Symfony\Component\Console\Tester\CommandTester;
2626

2727
#[Group('bard')]
@@ -38,7 +38,7 @@
3838
#[UsesClass(SplitCommand::class)]
3939
#[UsesClass(UpdateCommand::class)]
4040
#[UsesClass(JsonFile::class)]
41-
#[UsesClass(AddPackageWorker::class)]
41+
#[UsesClass(AddPackageOperation::class)]
4242
final class PushCommandTest extends TestCase
4343
{
4444
private Application $application;

src/SonsOfPHP/Bard/Tests/Console/Command/ReleaseCommandTest.php

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,18 @@
2121
use SonsOfPHP\Bard\Console\Command\SplitCommand;
2222
use SonsOfPHP\Bard\Console\Command\UpdateCommand;
2323
use SonsOfPHP\Bard\JsonFile;
24-
use SonsOfPHP\Bard\Worker\File\Bard\UpdateVersionWorker;
25-
use SonsOfPHP\Bard\Worker\File\Composer\Package\BranchAlias;
26-
use SonsOfPHP\Bard\Worker\File\Composer\Root\UpdateReplaceSection;
24+
use SonsOfPHP\Bard\Operation\Bard\UpdateVersionOperation;
25+
use SonsOfPHP\Bard\Operation\ClearSectionOperation;
26+
use SonsOfPHP\Bard\Operation\Composer\Package\CopyAuthorsSectionFromRootToPackageOperation;
27+
use SonsOfPHP\Bard\Operation\Composer\Package\CopyBranchAliasValueFromRootToPackageOperation;
28+
use SonsOfPHP\Bard\Operation\Composer\Package\CopyFundingSectionFromRootToPackageOperation;
29+
use SonsOfPHP\Bard\Operation\Composer\Package\CopySupportSectionFromRootToPackageOperation;
30+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateAutoloadDevSectionOperation;
31+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateAutoloadSectionOperation;
32+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateProvideSectionOperation;
33+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateReplaceSectionOperation;
34+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateRequireDevSectionOperation;
35+
use SonsOfPHP\Bard\Operation\Composer\Root\UpdateRequireSectionOperation;
2736
use SonsOfPHP\Component\Version\Version;
2837
use Symfony\Component\Console\Tester\CommandTester;
2938

@@ -41,9 +50,18 @@
4150
#[UsesClass(SplitCommand::class)]
4251
#[UsesClass(UpdateCommand::class)]
4352
#[UsesClass(JsonFile::class)]
44-
#[UsesClass(UpdateVersionWorker::class)]
45-
#[UsesClass(BranchAlias::class)]
46-
#[UsesClass(UpdateReplaceSection::class)]
53+
#[UsesClass(CopyAuthorsSectionFromRootToPackageOperation::class)]
54+
#[UsesClass(CopyBranchAliasValueFromRootToPackageOperation::class)]
55+
#[UsesClass(CopyFundingSectionFromRootToPackageOperation::class)]
56+
#[UsesClass(CopySupportSectionFromRootToPackageOperation::class)]
57+
#[UsesClass(ClearSectionOperation::class)]
58+
#[UsesClass(UpdateAutoloadDevSectionOperation::class)]
59+
#[UsesClass(UpdateAutoloadSectionOperation::class)]
60+
#[UsesClass(UpdateProvideSectionOperation::class)]
61+
#[UsesClass(UpdateReplaceSectionOperation::class)]
62+
#[UsesClass(UpdateRequireSectionOperation::class)]
63+
#[UsesClass(UpdateRequireDevSectionOperation::class)]
64+
#[UsesClass(UpdateVersionOperation::class)]
4765
#[UsesClass(Version::class)]
4866
final class ReleaseCommandTest extends TestCase
4967
{

src/SonsOfPHP/Bard/Tests/JsonFileTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PHPUnit\Framework\Attributes\Group;
99
use PHPUnit\Framework\TestCase;
1010
use SonsOfPHP\Bard\JsonFile;
11+
use SonsOfPHP\Bard\Operation\OperationInterface;
1112

1213
#[Group('bard')]
1314
#[CoversClass(JsonFile::class)]
@@ -67,4 +68,13 @@ public function testItCanConvertUpdatedConfigToJson(): void
6768
$this->assertArrayHasKey('version', $json);
6869
$this->assertSame('1.2.4', $json['version']);
6970
}
71+
72+
public function testItWillApplyOperation(): void
73+
{
74+
$file = new JsonFile(__DIR__ . '/fixtures/test.json');
75+
$operation = $this->createMock(OperationInterface::class);
76+
$operation->expects($this->once())->method('apply')->willReturn($file);
77+
78+
$file->with($operation);
79+
}
7080
}

0 commit comments

Comments
 (0)