Skip to content

Commit d989d39

Browse files
[license] Preserve literal author emails (#179) (#226)
* [license] Preserve literal author emails (#179) * Update wiki submodule pointer for PR #226 * [tooling] Avoid nested fixture vendors (#179) * Update wiki submodule pointer for PR #226 * [git-attributes] Clarify trailing raw row handling (#179) * [tests] Mock GitHub Actions output in process queue test (#179) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 2db3b18 commit d989d39

43 files changed

Lines changed: 290 additions & 139 deletions

Some content is hidden

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

.github/wiki

Submodule wiki updated from caa2be0 to 2182ccf

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717

1818
### Fixed
1919

20+
- Preserve literal angle brackets around maintainer emails when generating LICENSE files from composer metadata (#179)
2021
- Keep packaged `.agents` payloads exportable and synchronize packaged skills and agents with repository-relative symlink targets so consumer repositories no longer receive broken absolute machine paths (#188)
2122
- Rewrite drifted Git hooks by removing the previous target first, restore the intended `0o755` executable mode, and report unwritable hook replacements cleanly when `.git/hooks` stays locked (#190)
2223
- Keep Composer plugin command discovery compatible with consumer environments by moving unsupported Symfony Console named parameters out of command metadata/configuration and by decoupling the custom filesystem wrapper from Composer's bundled Symfony Filesystem signatures (#185)
24+
- Keep Composer autoload, Rector, and ECS from traversing nested fixture `vendor` directories when the composer-plugin consumer fixture has installed dependencies (#179)
2325

2426
## [1.20.0] - 2026-04-23
2527

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
"FastForward\\DevTools\\Tests\\": "tests/"
9494
},
9595
"classmap": [
96-
"tests/Fixtures/"
96+
"tests/Fixtures/Console/"
9797
]
9898
},
9999
"bin": "bin/dev-tools",

src/Changelog/DependabotChangelogEntryMessageResolver.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919

2020
namespace FastForward\DevTools\Changelog;
2121

22+
use function Safe\preg_replace;
23+
use function Safe\preg_match;
24+
2225
/**
2326
* Normalizes minimal changelog entry messages for Dependabot pull requests.
2427
*/
@@ -32,10 +35,10 @@
3235
*/
3336
public function resolve(string $title, int $pullRequestNumber): string
3437
{
35-
$message = \preg_replace('/\s+/', ' ', \trim($title)) ?? \trim($title);
36-
$message = \rtrim($message, " \t\n\r\0\x0B.");
38+
$message = preg_replace('/\s+/', ' ', trim($title)) ?? trim($title);
39+
$message = rtrim($message, " \t\n\r\0\x0B.");
3740

38-
if (\preg_match('/\(#\d+\)$/', $message) === 1) {
41+
if (1 === preg_match('/\(#\d+\)$/', $message)) {
3942
return $message;
4043
}
4144

src/Config/ECSConfig.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,11 @@ public static function applyDefaultPathsAndSkips(
127127
ECSConfigBuilder $config,
128128
string $workingDirectory
129129
): ECSConfigBuilder {
130-
$skipPaths = WorkingProjectPathResolver::getToolingExcludedDirectories($workingDirectory);
130+
$paths = WorkingProjectPathResolver::getToolingSourcePaths($workingDirectory);
131+
$skipPaths = WorkingProjectPathResolver::getToolingExcludedDirectories();
131132

132133
return $config
133-
->withPaths([$workingDirectory])
134+
->withPaths($paths)
134135
->withSkip([...$skipPaths, ...self::DEFAULT_SKIPPED_RULES]);
135136
}
136137

src/Config/RectorConfig.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,12 @@ public static function configure(?callable $customize = null): callable
9292
{
9393
return static function (RectorConfigInterface $rectorConfig) use ($customize): void {
9494
$workingDirectory = getcwd();
95-
$skipPaths = WorkingProjectPathResolver::getToolingExcludedDirectories($workingDirectory);
95+
$paths = WorkingProjectPathResolver::getToolingSourcePaths();
96+
$skipPaths = WorkingProjectPathResolver::getToolingExcludedDirectories();
9697
$skipRules = self::DEFAULT_SKIPPED_RULES;
9798

9899
$rectorConfig->sets(self::DEFAULT_SETS);
99-
$rectorConfig->paths([$workingDirectory]);
100+
$rectorConfig->paths($paths);
100101
$rectorConfig->skip([...$skipPaths, ...$skipRules]);
101102
$rectorConfig->cacheDirectory(
102103
ManagedWorkspace::getCacheDirectory(ManagedWorkspace::RECTOR, $workingDirectory)

src/Console/Command/AgentsCommand.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@
3333
/**
3434
* Synchronizes packaged Fast Forward project agents into the consumer repository.
3535
*/
36-
#[AsCommand(
37-
name: 'agents',
38-
description: 'Synchronizes Fast Forward project agents into .agents/agents directory.'
39-
)]
36+
#[AsCommand(name: 'agents', description: 'Synchronizes Fast Forward project agents into .agents/agents directory.')]
4037
final class AgentsCommand extends BaseCommand implements LoggerAwareCommandInterface
4138
{
4239
use HasJsonOption;

src/Console/Command/ChangelogShowCommand.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@
3535
/**
3636
* Prints the rendered notes body for a released changelog version.
3737
*/
38-
#[AsCommand(
39-
name: 'changelog:show',
40-
description: 'Prints the notes body for a released changelog version.'
41-
)]
38+
#[AsCommand(name: 'changelog:show', description: 'Prints the notes body for a released changelog version.')]
4239
final class ChangelogShowCommand extends BaseCommand implements LoggerAwareCommandInterface
4340
{
4441
use HasJsonOption;

src/Console/Command/CodeOwnersCommand.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@
3535
/**
3636
* Generates and synchronizes CODEOWNERS files from local project metadata.
3737
*/
38-
#[AsCommand(
39-
name: 'codeowners',
40-
description: 'Generates .github/CODEOWNERS from local project metadata.'
41-
)]
38+
#[AsCommand(name: 'codeowners', description: 'Generates .github/CODEOWNERS from local project metadata.')]
4239
final class CodeOwnersCommand extends BaseCommand implements LoggerAwareCommandInterface
4340
{
4441
use HasJsonOption;

src/Console/Command/CopyResourceCommand.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@
3737
/**
3838
* Copies packaged or local resources into the consumer repository.
3939
*/
40-
#[AsCommand(
41-
name: 'copy-resource',
42-
description: 'Copies a file or directory resource into the current project.'
43-
)]
40+
#[AsCommand(name: 'copy-resource', description: 'Copies a file or directory resource into the current project.')]
4441
final class CopyResourceCommand extends BaseCommand implements LoggerAwareCommandInterface
4542
{
4643
use HasJsonOption;

0 commit comments

Comments
 (0)