Skip to content

Commit 4b42c97

Browse files
Support symfony 8 (#1839)
* Support symfony 8 * Fix psalm and stan errors * Add Psalm suppressions for Symfony 8 compatibility In Symfony 8, the NodeParentInterface was changed to an empty interface, removing method declarations that existed in Symfony 5-7. The fluent builder methods (end(), scalarNode(), etc.) still exist on concrete classes but are no longer part of the interface signature. Additionally, Symfony 8 removed template parameters from node definition classes, causing TooManyTemplateParams errors for our internal NodeDefinition classes that extend Symfony's base classes. * Revert InstrumentationConfigurationRegistry
1 parent b4b274d commit 4b42c97

13 files changed

Lines changed: 39 additions & 17 deletions

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"psr/http-message": "^1.0.1|^2.0",
1818
"psr/log": "^1.1|^2.0|^3.0",
1919
"ramsey/uuid": "^3.0 || ^4.0",
20-
"symfony/config": "^5.4 || ^6.4 || ^7.0",
20+
"symfony/config": "^5.4 || ^6.4 || ^7.0 || ^8.0",
2121
"symfony/polyfill-mbstring": "^1.23",
2222
"symfony/polyfill-php82": "^1.26",
2323
"symfony/polyfill-php83": "^1.32",
@@ -108,9 +108,9 @@
108108
"phpstan/phpstan-phpunit": "^1.3",
109109
"phpunit/phpunit": "^10 || ^11",
110110
"sebastian/exporter": "<= 6.0.1 || >= 6.1.3",
111-
"symfony/http-client": "^5.2",
112-
"symfony/var-exporter": "^5.4 || ^6.4 || ^7.0",
113-
"symfony/yaml": "^5.4 || ^6.4 || ^7.0"
111+
"symfony/http-client": "^5.2 || ^6.4 || ^7.0 || ^8.0",
112+
"symfony/var-exporter": "^5.4 || ^6.4 || ^7.0 || ^8.0",
113+
"symfony/yaml": "^5.4 || ^6.4 || ^7.0 || ^8.0"
114114
},
115115
"conflict": {
116116
"mockery/mockery": "1.6.12"

phpstan.neon.dist

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ parameters:
3434
message: "#Call to an undefined method .*:expects.*#"
3535
paths:
3636
- tests
37-
-
38-
message: "#Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeParentInterface::.*#"
39-
paths:
40-
- src/Config/SDK
41-
- tests/Integration/Config
4237
-
4338
message: "#Cannot call method .* on null#"
4439
paths:

psalm.xml.dist

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,6 @@
4545
<directory name="src/Config/SDK/Configuration/Internal"/>
4646
</errorLevel>
4747
</InvalidArgument>
48-
<UndefinedInterfaceMethod>
49-
<errorLevel type="suppress">
50-
<directory name="src/Config/SDK/ComponentProvider"/>
51-
<directory name="tests/Integration/Config/ComponentProvider"/>
52-
</errorLevel>
53-
</UndefinedInterfaceMethod>
5448
<PossiblyInvalidArgument>
5549
<errorLevel type="suppress">
5650
<directory name="src/Config/SDK/Configuration"/>
@@ -69,6 +63,23 @@
6963
<directory name="tests"/>
7064
</errorLevel>
7165
</MoreSpecificImplementedParamType>
66+
<UndefinedInterfaceMethod>
67+
<errorLevel type="suppress">
68+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::end"/>
69+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::scalarNode"/>
70+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::integerNode"/>
71+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::booleanNode"/>
72+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::arrayNode"/>
73+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::variableNode"/>
74+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::enumNode"/>
75+
<referencedMethod name="Symfony\Component\Config\Definition\Builder\NodeParentInterface::floatNode"/>
76+
</errorLevel>
77+
</UndefinedInterfaceMethod>
78+
<TooManyTemplateParams>
79+
<errorLevel type="suppress">
80+
<directory name="src/Config/SDK/Configuration/Internal/NodeDefinition"/>
81+
</errorLevel>
82+
</TooManyTemplateParams>
7283
<UndefinedMagicMethod>
7384
<errorLevel type="suppress">
7485
<referencedMethod name="Prophecy\Prophecy\ObjectProphecy::accepts"/>

src/Config/SDK/Configuration/Internal/NodeDefinition/ArrayNodeDefinition.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
1010
use Symfony\Component\Config\Definition\NodeInterface;
1111

12+
/**
13+
* @extends \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition<NodeParentInterface|null>
14+
*/
1215
class ArrayNodeDefinition extends \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition
1316
{
1417
use NodeDefinitionTrait;

src/Config/SDK/Configuration/Internal/NodeDefinition/BooleanNodeDefinition.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
namespace OpenTelemetry\Config\SDK\Configuration\Internal\NodeDefinition;
66

77
use OpenTelemetry\Config\SDK\Configuration\Internal\Node\BooleanNode;
8+
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
89

910
/**
1011
* @internal
12+
* @extends \Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition<NodeParentInterface|null>
1113
*/
1214
final class BooleanNodeDefinition extends \Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition
1315
{

src/Config/SDK/Configuration/Internal/NodeDefinition/EnumNodeDefinition.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
namespace OpenTelemetry\Config\SDK\Configuration\Internal\NodeDefinition;
66

77
use OpenTelemetry\Config\SDK\Configuration\Internal\Node\EnumNode;
8+
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
89

910
/**
1011
* @internal
12+
* @extends \Symfony\Component\Config\Definition\Builder\EnumNodeDefinition<NodeParentInterface|null>
1113
*/
1214
final class EnumNodeDefinition extends \Symfony\Component\Config\Definition\Builder\EnumNodeDefinition
1315
{

src/Config/SDK/Configuration/Internal/NodeDefinition/FloatNodeDefinition.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
namespace OpenTelemetry\Config\SDK\Configuration\Internal\NodeDefinition;
66

77
use OpenTelemetry\Config\SDK\Configuration\Internal\Node\FloatNode;
8+
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
89

910
/**
1011
* @internal
12+
* @extends \Symfony\Component\Config\Definition\Builder\FloatNodeDefinition<NodeParentInterface|null>
1113
*/
1214
final class FloatNodeDefinition extends \Symfony\Component\Config\Definition\Builder\FloatNodeDefinition
1315
{

src/Config/SDK/Configuration/Internal/NodeDefinition/IntegerNodeDefinition.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
namespace OpenTelemetry\Config\SDK\Configuration\Internal\NodeDefinition;
66

77
use OpenTelemetry\Config\SDK\Configuration\Internal\Node\IntegerNode;
8+
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
89

910
/**
1011
* @internal
12+
* @extends \Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition<NodeParentInterface|null>
1113
*/
1214
final class IntegerNodeDefinition extends \Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition
1315
{

src/Config/SDK/Configuration/Internal/NodeDefinition/ScalarNodeDefinition.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
namespace OpenTelemetry\Config\SDK\Configuration\Internal\NodeDefinition;
66

77
use OpenTelemetry\Config\SDK\Configuration\Internal\Node\ScalarNode;
8+
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
89

910
/**
1011
* @internal
12+
* @extends \Symfony\Component\Config\Definition\Builder\ScalarNodeDefinition<NodeParentInterface|null>
1113
*/
1214
final class ScalarNodeDefinition extends \Symfony\Component\Config\Definition\Builder\ScalarNodeDefinition
1315
{

src/Config/SDK/Configuration/Internal/NodeDefinition/StringNodeDefinition.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
namespace OpenTelemetry\Config\SDK\Configuration\Internal\NodeDefinition;
66

77
use OpenTelemetry\Config\SDK\Configuration\Internal\Node\StringNode;
8+
use Symfony\Component\Config\Definition\Builder\NodeParentInterface;
89
use Symfony\Component\Config\Definition\ScalarNode;
910

1011
/**
1112
* @internal
13+
* @extends \Symfony\Component\Config\Definition\Builder\ScalarNodeDefinition<NodeParentInterface|null>
1214
*/
1315
final class StringNodeDefinition extends \Symfony\Component\Config\Definition\Builder\ScalarNodeDefinition
1416
{

0 commit comments

Comments
 (0)