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
15 changes: 8 additions & 7 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,9 @@ jobs:
docker run -i --rm -v $PWD:/churn ${{ matrix.vcs }} /churn/vendor/bin/simple-phpunit -c /churn/phpunit.xml.dist /churn/tests/EndToEnd/${vcs^}Test.php --coverage-clover=/churn/coverage-${{ matrix.vcs }}.xml
sed -i 's/\/churn\/src/\/home\/runner\/work\/${{ github.event.repository.name }}\/${{ github.event.repository.name }}\/src/g' coverage-${{ matrix.vcs }}.xml

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: coverage
name: coverage-${{ matrix.vcs }}
path: ./coverage-${{ matrix.vcs }}.xml

coverage:
Expand Down Expand Up @@ -146,9 +146,10 @@ jobs:
run: "vendor/bin/simple-phpunit --colors=always --testdox --testsuite churn-tests --coverage-clover=coverage.xml"

- name: "Download other code coverage reports"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: coverage
pattern: coverage-*
merge-multiple: true
path: ./coverage

- name: "List all coverage reports"
Expand Down Expand Up @@ -269,7 +270,7 @@ jobs:
run: diff -u <(build/bin/churn --format=csv | sort) <(./churn.phar --format=csv | sort)

- name: "Save Phar"
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: churn.phar
path: ./churn.phar
Expand Down Expand Up @@ -300,7 +301,7 @@ jobs:
tools: none

- name: Download churn.phar
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: churn.phar

Expand Down Expand Up @@ -342,7 +343,7 @@ jobs:
tools: none

- name: Download churn.phar
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: churn.phar

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
with:
coverage: "pcov"
ini-values: "error_reporting=-1, display_errors=On, display_startup_errors=On, zend.assertions=1"
php-version: "8.1"
php-version: "8.2"
tools: composer:v2, infection

- uses: "ramsey/composer-install@v2"
- uses: "ramsey/composer-install@v3"
with:
dependency-versions: "highest"
composer-options: "--no-scripts"
Expand Down
5 changes: 5 additions & 0 deletions phpcs-tests.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,10 @@
<exclude name="Squiz.Commenting.FunctionComment.SpacingAfterParamName"/>
<exclude name="Squiz.Commenting.FunctionComment.SpacingAfterParamType"/>
</rule>
<rule ref="SlevomatCodingStandard.Attributes.AttributesOrder">
<properties>
<property name="orderAlphabetically" value="true" />
</properties>
</rule>
<rule ref="vendor-bin/phpcs/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php"/>
</ruleset>
5 changes: 5 additions & 0 deletions phpcs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@
<exclude name="Squiz.Commenting.FunctionComment.SpacingAfterParamName"/>
<exclude name="Squiz.Commenting.FunctionComment.SpacingAfterParamType"/>
</rule>
<rule ref="SlevomatCodingStandard.Attributes.AttributesOrder">
<properties>
<property name="orderAlphabetically" value="true" />
</properties>
</rule>
<rule ref="vendor-bin/phpcs/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php"/>

<!-- Codor rules -->
Expand Down
1 change: 0 additions & 1 deletion phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,5 @@
</coverage>
<php>
<env name="SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT" value="1" />
<env name="SYMFONY_PHPUNIT_REQUIRE" value="nikic/php-parser:^4.19"/>
</php>
</phpunit>
1 change: 1 addition & 0 deletions psalm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<directory name="tests"/>
<ignoreFiles>
<file name="tests/console-application.php"/>
<directory name="tests/**/Assets*"/>
</ignoreFiles>
</projectFiles>

Expand Down
1 change: 1 addition & 0 deletions src/Assessor/CyclomaticComplexityAssessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public function __construct()
*
* @param string $contents The contents of a PHP file.
*/
#[\Override]
public function assess(string $contents): int
{
$score = 0;
Expand Down
2 changes: 2 additions & 0 deletions src/Command/AssessComplexityCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public static function newInstance(): self
/**
* Configure the command
*/
#[\Override]
protected function configure(): void
{
$this->setName('assess-complexity')
Expand All @@ -57,6 +58,7 @@ protected function configure(): void
* @param InputInterface $input Input.
* @param OutputInterface $output Output.
*/
#[\Override]
protected function execute(InputInterface $input, OutputInterface $output): int
{
$file = (string) $input->getArgument('file');
Expand Down
3 changes: 3 additions & 0 deletions src/Command/Helper/ProgressBarSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public function __construct(OutputInterface $output)
/**
* @param AfterAnalysisEvent $event The event triggered when the analysis is done.
*/
#[\Override]
public function onAfterAnalysis(AfterAnalysisEvent $event): void
{
$this->progressBar->finish();
Expand All @@ -42,6 +43,7 @@ public function onAfterAnalysis(AfterAnalysisEvent $event): void
/**
* @param BeforeAnalysisEvent $event The event triggered when the analysis starts.
*/
#[\Override]
public function onBeforeAnalysis(BeforeAnalysisEvent $event): void
{
$this->progressBar->start();
Expand All @@ -50,6 +52,7 @@ public function onBeforeAnalysis(BeforeAnalysisEvent $event): void
/**
* @param AfterFileAnalysisEvent $event The event triggered when the analysis of a file is done.
*/
#[\Override]
public function onAfterFileAnalysis(AfterFileAnalysisEvent $event): void
{
$this->progressBar->advance();
Expand Down
2 changes: 2 additions & 0 deletions src/Command/RunCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ public static function newInstance(): self
/**
* Configure the command
*/
#[\Override]
protected function configure(): void
{
$this->setName('run')
Expand All @@ -104,6 +105,7 @@ protected function configure(): void
* @param InputInterface $input Input.
* @param OutputInterface $output Output.
*/
#[\Override]
protected function execute(InputInterface $input, OutputInterface $output): int
{
if (true === $input->getOption('quiet')) {
Expand Down
2 changes: 2 additions & 0 deletions src/Configuration/Validator/BaseValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public function __construct(string $key)
/**
* Returns the configuration key.
*/
#[\Override]
public function getKey(): string
{
return $this->key;
Expand All @@ -43,6 +44,7 @@ public function getKey(): string
* @param EditableConfig $config The configuration object.
* @param array<mixed> $configuration The array containing the configuration values.
*/
#[\Override]
public function validate(EditableConfig $config, array $configuration): void
{
if (!\array_key_exists($this->key, $configuration)) {
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/CachePath.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
if (null === $value) {
Expand Down
2 changes: 2 additions & 0 deletions src/Configuration/Validator/CommitsSince.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param array<mixed> $configuration The array containing the configuration values.
*/
#[\Override]
public function validate(EditableConfig $config, array $configuration): void
{
if (!$this->hasConfigurationKey($configuration)) {
Expand All @@ -40,6 +41,7 @@ public function validate(EditableConfig $config, array $configuration): void
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::string($value, 'Commits since should be a string');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/DirectoriesToScan.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::isArray($value, 'Directories to scan should be an array of strings');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/FileExtensions.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::isArray($value, 'File extensions should be an array of strings');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/FilesToIgnore.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::isArray($value, 'Files to ignore should be an array of strings');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/FilesToShow.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::integer($value, 'Files to show should be an integer');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/Hooks.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::isArray($value, 'Hooks should be an array of strings');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/MaxScoreThreshold.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
if (null === $value) {
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/MinScoreToShow.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
if (null === $value) {
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/ParallelJobs.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::integer($value, 'Amount of parallel jobs should be an integer');
Expand Down
1 change: 1 addition & 0 deletions src/Configuration/Validator/Vcs.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct()
* @param EditableConfig $config The configuration object.
* @param mixed $value The value to validate.
*/
#[\Override]
protected function validateValue(EditableConfig $config, $value): void
{
Assert::string($value, 'VCS should be a string');
Expand Down
2 changes: 2 additions & 0 deletions src/Event/BrokerImpl.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public function __construct()
/**
* @param object $subscriber A subscriber object.
*/
#[\Override]
public function subscribe($subscriber): void
{
foreach ($this->channels as $channel) {
Expand All @@ -53,6 +54,7 @@ public function subscribe($subscriber): void
/**
* @param Event $event The triggered event.
*/
#[\Override]
public function notify(Event $event): void
{
foreach ($this->subscribers as $eventClass => $subscribers) {
Expand Down
3 changes: 3 additions & 0 deletions src/Event/Channel/AfterAnalysisChannel.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ final class AfterAnalysisChannel implements Channel
/**
* @param object $subscriber A subscriber instance.
*/
#[\Override]
public function accepts($subscriber): bool
{
return $subscriber instanceof AfterAnalysis;
Expand All @@ -26,6 +27,7 @@ public function accepts($subscriber): bool
/**
* @psalm-return class-string<AfterAnalysisEvent>
*/
#[\Override]
public function getEventClassname(): string
{
return AfterAnalysisEvent::class;
Expand All @@ -36,6 +38,7 @@ public function getEventClassname(): string
* @psalm-param AfterAnalysis $subscriber
* @psalm-return Closure(AfterAnalysisEvent): void
*/
#[\Override]
public function buildEventHandler($subscriber): Closure
{
return static function (AfterAnalysisEvent $event) use ($subscriber): void {
Expand Down
3 changes: 3 additions & 0 deletions src/Event/Channel/AfterFileAnalysisChannel.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ final class AfterFileAnalysisChannel implements Channel
/**
* @param object $subscriber A subscriber instance.
*/
#[\Override]
public function accepts($subscriber): bool
{
return $subscriber instanceof AfterFileAnalysis;
Expand All @@ -26,6 +27,7 @@ public function accepts($subscriber): bool
/**
* @psalm-return class-string<AfterFileAnalysisEvent>
*/
#[\Override]
public function getEventClassname(): string
{
return AfterFileAnalysisEvent::class;
Expand All @@ -36,6 +38,7 @@ public function getEventClassname(): string
* @psalm-param AfterFileAnalysis $subscriber
* @psalm-return Closure(AfterFileAnalysisEvent): void
*/
#[\Override]
public function buildEventHandler($subscriber): Closure
{
return static function (AfterFileAnalysisEvent $event) use ($subscriber): void {
Expand Down
3 changes: 3 additions & 0 deletions src/Event/Channel/BeforeAnalysisChannel.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ final class BeforeAnalysisChannel implements Channel
/**
* @param object $subscriber A subscriber instance.
*/
#[\Override]
public function accepts($subscriber): bool
{
return $subscriber instanceof BeforeAnalysis;
Expand All @@ -26,6 +27,7 @@ public function accepts($subscriber): bool
/**
* @psalm-return class-string<BeforeAnalysisEvent>
*/
#[\Override]
public function getEventClassname(): string
{
return BeforeAnalysisEvent::class;
Expand All @@ -36,6 +38,7 @@ public function getEventClassname(): string
* @psalm-param BeforeAnalysis $subscriber
* @psalm-return Closure(BeforeAnalysisEvent): void
*/
#[\Override]
public function buildEventHandler($subscriber): Closure
{
return static function (BeforeAnalysisEvent $event) use ($subscriber): void {
Expand Down
4 changes: 4 additions & 0 deletions src/Event/Event/AfterAnalysisEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public function __construct(ResultReporter $resultReporter)
/**
* Returns the total number of files analysed.
*/
#[\Override]
public function getNumberOfFiles(): int
{
return $this->resultReporter->getNumberOfFiles();
Expand All @@ -35,6 +36,7 @@ public function getNumberOfFiles(): int
/**
* Returns the max number of changes among the analysed files.
*/
#[\Override]
public function getMaxNumberOfChanges(): int
{
return $this->resultReporter->getMaxCommits();
Expand All @@ -43,6 +45,7 @@ public function getMaxNumberOfChanges(): int
/**
* Returns the max cyclomatic complexity among the analysed files.
*/
#[\Override]
public function getMaxCyclomaticComplexity(): int
{
return $this->resultReporter->getMaxComplexity();
Expand All @@ -51,6 +54,7 @@ public function getMaxCyclomaticComplexity(): int
/**
* Returns the highest score among the analysed files.
*/
#[\Override]
public function getMaxScore(): ?float
{
return $this->resultReporter->getMaxScore();
Expand Down
Loading
Loading