Skip to content

Commit 0e7e8cd

Browse files
committed
Remove unsupported version of Symfony + refactor
1 parent 2a38237 commit 0e7e8cd

20 files changed

Lines changed: 112 additions & 476 deletions

.github/workflows/tests.yaml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
php: [ '8.1', '8.2', '8.3', '8.4', '8.5' ]
17-
symfony: [ '4.4', '5.2', '5.3', '5.4', '6.0', '6.1', '6.2', '6.3', '6.4', '7.0' ]
17+
symfony: [ '6.4', '7.4', '8.0' ]
1818
dependencies: [ 'highest', 'lowest' ]
1919
exclude:
2020
- php: '8.1'
21-
symfony: '7.0'
21+
symfony: '7.4'
22+
- php: '8.1'
23+
symfony: '8.0'
24+
- php: '8.2'
25+
symfony: '8.0'
26+
- php: '8.3'
27+
symfony: '8.0'
2228
env:
2329
SYMFONY_REQUIRE: ${{ matrix.symfony }}.*
2430
name: PHP ${{ matrix.php }} & Symfony ${{ matrix.symfony }}${{ matrix.dependencies == 'lowest' && ' (lowest)' || '' }} Test

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Symfony bundle which provides a way to version your application using various ve
1111

1212
## Features
1313

14-
- Stores the application's version & release date into a compliant YAML or XML Symfony container configuration file
14+
- Stores the application's version & release date into a compliant YAML Symfony container configuration file
1515
- Automatically imports the file with the parameters into Symfony's container
1616
- Supports multiple versioning strategies & creating custom ones
1717
- Includes a console command for incrementing the version using the configured versioning strategy
@@ -21,7 +21,7 @@ Symfony bundle which provides a way to version your application using various ve
2121
## Requirements
2222

2323
- [PHP 8.1](http://php.net/releases/8_1_0.php) or higher
24-
- [Symfony 4.4](https://symfony.com/roadmap/4.4) or [Symfony 5.2](https://symfony.com/roadmap/5.2) or higher
24+
- [Symfony 6.4](https://symfony.com/roadmap/6.4) or [Symfony 7.4](https://symfony.com/roadmap/7.4) or higher
2525

2626
## Installation
2727

@@ -49,7 +49,7 @@ Symfony bundle which provides a way to version your application using various ve
4949
filepath: '%kernel.project_dir%/config'
5050
5151
# The format used for the version file.
52-
format: yaml # One of "yaml"; "xml"
52+
format: yaml # One of "yaml"
5353
5454
# Configuration for the VCS integration,
5555
# set to false to disable the integration.

composer.json

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,15 @@
1919
],
2020
"require": {
2121
"php": ">=8.1",
22-
"ext-dom": "*",
23-
"symfony/config": "^4.4 || ^5.2 || ^6.0 || ^7.0",
24-
"symfony/console": "^4.4 || ^5.2 || ^6.0 || ^7.0",
25-
"symfony/dependency-injection": "^4.4.2 || ^5.2 || ^6.0 || ^7.0",
26-
"symfony/http-kernel": "^4.4 || ^5.2 || ^6.0 || ^7.0",
27-
"symfony/process": "^4.4 || ^5.2 || ^6.0 || ^7.0",
28-
"symfony/yaml": "^4.4 || ^5.2 || ^6.0 || ^7.0"
22+
"symfony/config": "^6.4 || ^7.4 || ^8.0",
23+
"symfony/console": "^6.4 || ^7.4 || ^8.0",
24+
"symfony/dependency-injection": "^6.4 || ^7.4 || ^8.0",
25+
"symfony/http-kernel": "^6.4 || ^7.4 || ^8.0",
26+
"symfony/process": "^6.4 || ^7.4 || ^8.0",
27+
"symfony/yaml": "^6.4 || ^7.4 || ^8.0"
2928
},
3029
"require-dev": {
31-
"symfony/phpunit-bridge": "^6.4.1"
30+
"symfony/phpunit-bridge": "^8.0"
3231
},
3332
"autoload": {
3433
"psr-4": {

config/services.php

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
6+
7+
use Bizkit\VersioningBundle\Command\IncrementCommand;
8+
use Bizkit\VersioningBundle\Reader\ReaderInterface;
9+
use Bizkit\VersioningBundle\Reader\YamlFileReader;
10+
use Bizkit\VersioningBundle\Strategy\IncrementingStrategy;
11+
use Bizkit\VersioningBundle\Strategy\SemVerStrategy;
12+
use Bizkit\VersioningBundle\Strategy\StrategyInterface;
13+
use Bizkit\VersioningBundle\VCS\GitHandler;
14+
use Bizkit\VersioningBundle\VCS\VCSHandlerInterface;
15+
use Bizkit\VersioningBundle\Writer\WriterInterface;
16+
use Bizkit\VersioningBundle\Writer\YamlFileWriter;
17+
18+
return function (ContainerConfigurator $container): void {
19+
$container->services()
20+
->defaults()
21+
->private()
22+
23+
->set(YamlFileReader::class)
24+
->args([
25+
param('.bizkit_versioning.file'),
26+
param('.bizkit_versioning.parameter_prefix'),
27+
])
28+
->tag('bizkit_versioning.reader', ['format' => 'yaml'])
29+
30+
->set(YamlFileWriter::class)
31+
->args([
32+
param('.bizkit_versioning.file'),
33+
param('.bizkit_versioning.parameter_prefix'),
34+
])
35+
->tag('bizkit_versioning.writer', ['format' => 'yaml'])
36+
37+
->set(IncrementingStrategy::class)
38+
->tag('bizkit_versioning.strategy', ['alias' => 'incrementing'])
39+
40+
->set(SemVerStrategy::class)
41+
->args([
42+
'minor',
43+
])
44+
->tag('bizkit_versioning.strategy', ['alias' => 'semver'])
45+
46+
->set(GitHandler::class)
47+
->args([
48+
param('.bizkit_versioning.file'),
49+
param('.bizkit_versioning.vcs_commit_message'),
50+
param('.bizkit_versioning.vcs_tag_message'),
51+
param('.bizkit_versioning.vcs_name'),
52+
param('.bizkit_versioning.vcs_email'),
53+
param('.bizkit_versioning.path_to_vcs_executable'),
54+
])
55+
->tag('bizkit_versioning.vcs_handler', ['alias' => 'git'])
56+
57+
->set(IncrementCommand::class)
58+
->args([
59+
param('.bizkit_versioning.file'),
60+
service(ReaderInterface::class),
61+
service(WriterInterface::class),
62+
service(StrategyInterface::class),
63+
service(VCSHandlerInterface::class)->nullOnInvalid(),
64+
param('.bizkit_versioning.vcs_tagging_mode'),
65+
])
66+
->tag('console.command')
67+
;
68+
};

config/services.xml

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/Command/IncrementCommand.php

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,12 @@
1919
use Symfony\Component\Console\Style\StyleInterface;
2020
use Symfony\Component\Console\Style\SymfonyStyle;
2121

22-
#[AsCommand(self::DEFAULT_NAME, self::DEFAULT_DESCRIPTION)]
22+
#[AsCommand(
23+
'bizkit:versioning:increment',
24+
'Increments the version using the configured versioning strategy.',
25+
)]
2326
final class IncrementCommand extends Command
2427
{
25-
private const DEFAULT_NAME = 'bizkit:versioning:increment';
26-
private const DEFAULT_DESCRIPTION = 'Increments the version using the configured versioning strategy.';
27-
28-
protected static $defaultName = self::DEFAULT_NAME;
29-
protected static $defaultDescription = self::DEFAULT_DESCRIPTION;
30-
3128
public const TAGGING_MODES = ['always', 'never', 'ask'];
3229

3330
public function __construct(
@@ -47,11 +44,6 @@ public function __construct(
4744
parent::__construct();
4845
}
4946

50-
protected function configure(): void
51-
{
52-
$this->setDescription(self::DEFAULT_DESCRIPTION);
53-
}
54-
5547
protected function execute(InputInterface $input, OutputInterface $output): int
5648
{
5749
$io = new SymfonyStyle($input, $output);
@@ -63,23 +55,23 @@ protected function execute(InputInterface $input, OutputInterface $output): int
6355
: \sprintf('Your current application version is "%s", do you wish to increment it?', $version);
6456

6557
if (!$io->confirm($confirmationQuestion, true)) {
66-
return 0;
58+
return self::SUCCESS;
6759
}
6860

6961
try {
7062
$newVersion = ($this->strategy)($io, $version);
7163
} catch (InvalidVersionFormatException $e) {
7264
$io->error(\sprintf('Failed incrementing to a new version: %s', $e->getMessage()));
7365

74-
return 1;
66+
return self::FAILURE;
7567
}
7668

7769
try {
7870
$this->writer->write($newVersion);
7971
} catch (StorageException $e) {
8072
$io->error(\sprintf('Failed storing new version "%s": %s', $newVersion, $e->getMessage()));
8173

82-
return 1;
74+
return self::FAILURE;
8375
}
8476

8577
$io->success(\sprintf(
@@ -93,10 +85,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int
9385
} catch (VCSException $e) {
9486
$io->error($e->getMessage());
9587

96-
return 1;
88+
return self::FAILURE;
9789
}
9890

99-
return 0;
91+
return self::SUCCESS;
10092
}
10193

10294
private function commitAndTag(StyleInterface $io, Version $version): void

src/DependencyInjection/BizkitVersioningExtension.php

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use Bizkit\VersioningBundle\VCS\VCSHandlerInterface;
1010
use Bizkit\VersioningBundle\Writer\WriterInterface;
1111
use Symfony\Component\Config\FileLocator;
12-
use Symfony\Component\Config\Loader\LoaderResolver;
1312
use Symfony\Component\DependencyInjection\Alias;
1413
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1514
use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -29,8 +28,8 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
2928
$this->configuredStrategy = $mergedConfig['strategy'];
3029
$this->configuredVCSHandler = $mergedConfig['vcs']['handler'];
3130

32-
$loader = new Loader\XmlFileLoader($container, new FileLocator(\dirname(__DIR__, 2).'/config'));
33-
$loader->load('services.xml');
31+
$loader = new Loader\PhpFileLoader($container, new FileLocator(\dirname(__DIR__, 2).'/config'));
32+
$loader->load('services.php');
3433

3534
$filepath = $container->getParameterBag()->resolveValue($mergedConfig['filepath']);
3635
$file = $filepath.\DIRECTORY_SEPARATOR.$mergedConfig['filename'].'.'.$mergedConfig['format'];
@@ -47,33 +46,21 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
4746
->addTag('bizkit_versioning.vcs_handler')
4847
;
4948

50-
$container->setParameter('bizkit_versioning.parameter_prefix', $mergedConfig['parameter_prefix']);
51-
$container->setParameter('bizkit_versioning.file', $file);
49+
$container->setParameter('.bizkit_versioning.parameter_prefix', $mergedConfig['parameter_prefix']);
50+
$container->setParameter('.bizkit_versioning.file', $file);
5251

53-
$container->setParameter('bizkit_versioning.vcs_commit_message', $mergedConfig['vcs']['commit_message']);
54-
$container->setParameter('bizkit_versioning.vcs_tag_message', $mergedConfig['vcs']['tag_message']);
55-
$container->setParameter('bizkit_versioning.vcs_tagging_mode', $mergedConfig['vcs']['tagging_mode']);
56-
$container->setParameter('bizkit_versioning.vcs_name', $mergedConfig['vcs']['name']);
57-
$container->setParameter('bizkit_versioning.vcs_email', $mergedConfig['vcs']['email']);
58-
$container->setParameter('bizkit_versioning.path_to_vcs_executable', $mergedConfig['vcs']['path_to_executable']);
52+
$container->setParameter('.bizkit_versioning.vcs_commit_message', $mergedConfig['vcs']['commit_message']);
53+
$container->setParameter('.bizkit_versioning.vcs_tag_message', $mergedConfig['vcs']['tag_message']);
54+
$container->setParameter('.bizkit_versioning.vcs_tagging_mode', $mergedConfig['vcs']['tagging_mode']);
55+
$container->setParameter('.bizkit_versioning.vcs_name', $mergedConfig['vcs']['name']);
56+
$container->setParameter('.bizkit_versioning.vcs_email', $mergedConfig['vcs']['email']);
57+
$container->setParameter('.bizkit_versioning.path_to_vcs_executable', $mergedConfig['vcs']['path_to_executable']);
5958
}
6059

6160
private function importVersionFile(ContainerBuilder $container, string $file, string $format): void
6261
{
63-
$locator = new FileLocator();
64-
$loaderResolver = new LoaderResolver([
65-
new Loader\YamlFileLoader($container, $locator),
66-
new Loader\XmlFileLoader($container, $locator),
67-
]);
68-
69-
/** @var Loader\FileLoader|false $loader */
70-
$loader = $loaderResolver->resolve($file, $format);
71-
72-
if (false === $loader) {
73-
throw new InvalidArgumentException(\sprintf('Invalid version file format "%s" provided.', $format));
74-
}
75-
76-
$loader->import($file, null, 'not_found');
62+
$loader = new Loader\YamlFileLoader($container, new FileLocator());
63+
$loader->import($file, $format, 'not_found');
7764
}
7865

7966
/**

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function getConfigTreeBuilder(): TreeBuilder
4343

4444
->enumNode('format')
4545
->info('The format used for the version file.')
46-
->values(['yaml', 'xml'])
46+
->values(['yaml'])
4747
->cannotBeEmpty()
4848
->defaultValue('yaml')
4949
->end()

src/Reader/XmlFileReader.php

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)