Skip to content

Commit a07d87e

Browse files
committed
Merge branch '3.5.x'
2 parents 6641115 + e9e5ec1 commit a07d87e

20 files changed

+443
-113
lines changed

.craft.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ github:
55
changelogPolicy: simple
66
statusProvider:
77
name: github
8+
artifactProvider:
9+
name: none
810
preReleaseCommand: ""
911
targets:
1012
- name: github
11-
includeNames: /none/
1213
- name: registry
1314
type: sdk
14-
includeNames: /none/
1515
config:
1616
canonical: 'composer:sentry/sentry-symfony'

.github/workflows/tests.yaml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: CI
2+
3+
on:
4+
pull_request: null
5+
push:
6+
branches:
7+
- master
8+
- 3.5.x
9+
10+
jobs:
11+
Tests:
12+
runs-on: ubuntu-latest
13+
continue-on-error: ${{ matrix.experimental == true }}
14+
strategy:
15+
matrix:
16+
php:
17+
- '7.4'
18+
- '7.3'
19+
- '7.2'
20+
- '7.1'
21+
sentry_constraint: [false]
22+
symfony_constraint: [false]
23+
experimental: [false]
24+
include:
25+
# - description: 'sentry/sentry dev-develop'
26+
# php: '7.4'
27+
# sentry_constraint: 'dev-develop'
28+
# experimental: true
29+
- description: 'Symfony 4.4'
30+
php: '7.3'
31+
symfony_constraint: 4.4.*
32+
- description: 'Symfony 3.4'
33+
php: '7.1'
34+
symfony_constraint: 3.4.*
35+
env:
36+
SYMFONY_DEPRECATIONS_HELPER: disabled
37+
- description: 'prefer lowest'
38+
php: '7.1'
39+
composer_option: '--prefer-lowest'
40+
symfony_constraint: 3.4.*
41+
env:
42+
SYMFONY_DEPRECATIONS_HELPER: disabled
43+
44+
name: PHP ${{ matrix.php }} tests (${{ matrix.description }})
45+
steps:
46+
- uses: actions/checkout@v2
47+
- uses: actions/cache@v2
48+
with:
49+
path: ~/.composer/cache/files
50+
key: ${{ matrix.php }}-${{ matrix.symfony_constraint }}-${{ matrix.composer_option }}
51+
- uses: shivammathur/setup-php@v2
52+
with:
53+
php-version: ${{ matrix.php }}
54+
coverage: xdebug
55+
- run: |
56+
sed -ri '/symfony\/(monolog-bundle|phpunit-bridge|messenger)/! s/"symfony\/(.+)": "(.+)"/"symfony\/\1": "'${{ matrix.symfony_constraint }}'"/' composer.json;
57+
if: matrix.symfony_constraint
58+
- run: composer remove --dev symfony/messenger --no-update
59+
if: matrix.symfony_constraint == '3.4.*'
60+
- run: composer update --no-progress --ansi ${{ matrix.composer_option }}
61+
- run: composer require sentry/sentry dev-develop
62+
if: matrix.sentry_constraint == 'dev-develop'
63+
- run: vendor/bin/phpunit --coverage-clover=coverage.xml
64+
- uses: codecov/codecov-action@v1
65+
with:
66+
file: './coverage.xml'
67+
fail_ci_if_error: true
68+
PHP-CS-Fixer:
69+
runs-on: ubuntu-latest
70+
name: Code style
71+
steps:
72+
- uses: actions/checkout@v2
73+
- uses: actions/cache@v2
74+
with:
75+
path: ~/.composer/cache/files
76+
key: '7.4--'
77+
- uses: shivammathur/setup-php@v2
78+
with:
79+
php-version: '7.4'
80+
- run: composer install --no-progress --ansi
81+
- run: vendor/bin/php-cs-fixer fix --ansi --verbose --dry-run
82+
PHPStan:
83+
runs-on: ubuntu-latest
84+
name: PHPStan
85+
steps:
86+
- uses: actions/checkout@v2
87+
- uses: actions/cache@v2
88+
with:
89+
path: ~/.composer/cache/files
90+
key: '7.4--'
91+
- uses: shivammathur/setup-php@v2
92+
with:
93+
php-version: '7.4'
94+
- run: composer install --no-progress --ansi
95+
- run: vendor/bin/phpstan analyse

.travis.yml

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

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,15 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

77
## Unreleased
8-
- ...
8+
- CLI commands registration policy changed to lazy load
9+
10+
## 3.5.3 (2020-10-13)
11+
- Refactors and fixes class aliases for more robustness (#315 #359, thanks to @guilliamxavier)
12+
13+
## 3.5.2 (2020-07-08)
14+
- Use `jean85/pretty-package-versions` `^1.5` to leverage the new `getRootPackageVersion` method (c8799ac)
15+
- Fix support for PHP preloading (#354, thanks to @annuh)
16+
- Fix `capture_soft_fails: false` option for the Messenger (#353)
917

1018
## 4.0.0 (TBA)
1119
- Enable back all error listeners from base SDK integration (#322)

composer.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
},
2121
"require": {
2222
"php": "^7.1",
23-
"jean85/pretty-package-versions": "^1.0",
24-
"ocramius/package-versions": "^1.3.0",
23+
"jean85/pretty-package-versions": "^1.5",
2524
"sentry/sdk": "^2.1",
2625
"symfony/config": "^3.4||^4.0||^5.0",
2726
"symfony/console": "^3.4||^4.0||^5.0",
@@ -35,6 +34,7 @@
3534
"jangregor/phpstan-prophecy": "^0.6.2",
3635
"monolog/monolog": "^1.11||^2.0",
3736
"php-http/mock-client": "^1.0",
37+
"phpspec/prophecy": "!=1.11.0",
3838
"phpstan/extension-installer": "^1.0",
3939
"phpstan/phpstan": "^0.12.19",
4040
"phpstan/phpstan-phpunit": "^0.12.8",
@@ -48,9 +48,6 @@
4848
"symfony/process": "^3.4||^4.0||^5.0",
4949
"symfony/yaml": "^3.4||^4.0||^5.0"
5050
},
51-
"conflict": {
52-
"ocramius/package-versions": "<1.3"
53-
},
5451
"suggest": {
5552
"monolog/monolog": "Required to use the Monolog handler"
5653
},

phpstan-baseline.neon

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,17 +226,17 @@ parameters:
226226
path: test/DependencyInjection/SentryExtensionTest.php
227227

228228
-
229-
message: "#^Method Sentry\\\\SentryBundle\\\\Test\\\\DependencyInjection\\\\ClientMock\\:\\:captureEvent\\(\\) has parameter \\$payload with no value type specified in iterable type array\\.$#"
229+
message: "#^Comparison operation \"\\>\\=\" between \\d+ and 40300 is always true\\.$#"
230230
count: 1
231-
path: test/DependencyInjection/SentryExtensionTest.php
231+
path: test/End2End/App/Kernel.php
232232

233233
-
234-
message: "#^Method Sentry\\\\SentryBundle\\\\Test\\\\End2End\\\\App\\\\Kernel\\:\\:build\\(\\) has no return typehint specified\\.$#"
234+
message: "#^Class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Client not found\\.$#"
235235
count: 1
236-
path: test/End2End/App/Kernel.php
236+
path: test/End2End/End2EndTest.php
237237

238238
-
239-
message: "#^Class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Client not found\\.$#"
239+
message: "#^Comparison operation \"\\<\" between \\d+ and 40300 is always false\\.$#"
240240
count: 1
241241
path: test/End2End/End2EndTest.php
242242

src/Command/SentryTestCommand.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99

1010
class SentryTestCommand extends Command
1111
{
12-
public function __construct()
13-
{
14-
parent::__construct('sentry:test');
15-
}
12+
protected static $defaultName = 'sentry:test';
1613

1714
protected function execute(InputInterface $input, OutputInterface $output): int
1815
{

src/DependencyInjection/Configuration.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
namespace Sentry\SentryBundle\DependencyInjection;
44

5-
use Composer\InstalledVersions;
65
use Jean85\PrettyVersions;
7-
use PackageVersions\Versions;
86
use Sentry\Options;
97
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
108
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
@@ -116,12 +114,7 @@ public function getConfigTreeBuilder(): TreeBuilder
116114
$releaseNode = $optionsChildNodes->scalarNode('release')
117115
->info('Release version to be reported to sentry, see https://docs.sentry.io/workflow/releases/?platform=php')
118116
->example('my/application@ff11bb');
119-
120-
if (class_exists(InstalledVersions::class)) {
121-
$releaseNode->defaultValue(PrettyVersions::getVersion(InstalledVersions::getRootPackage()['name'])->getPrettyVersion());
122-
} elseif (class_exists(Versions::class)) {
123-
$releaseNode->defaultValue(PrettyVersions::getVersion(Versions::ROOT_PACKAGE_NAME)->getPrettyVersion());
124-
}
117+
$releaseNode->defaultValue(PrettyVersions::getRootPackageVersion()->getPrettyVersion());
125118

126119
$optionsChildNodes->floatNode('sample_rate')
127120
->min(0.0)
@@ -150,7 +143,7 @@ public function getConfigTreeBuilder(): TreeBuilder
150143
$listenerPriorities->scalarNode('console_error')
151144
->defaultValue(128);
152145
$listenerPriorities->scalarNode('worker_error')
153-
->defaultValue(128);
146+
->defaultValue(99);
154147

155148
// Monolog handler configuration
156149
$monologConfiguration = $rootNode->children()

src/EventListener/RequestListener.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,19 @@
1414
use Symfony\Component\Security\Core\User\UserInterface;
1515

1616
if (Kernel::MAJOR_VERSION >= 5) {
17-
class_alias(RequestEvent::class, RequestListenerRequestEvent::class);
18-
class_alias(ControllerEvent::class, RequestListenerControllerEvent::class);
17+
if (! class_exists(RequestListenerRequestEvent::class, false)) {
18+
class_alias(RequestEvent::class, RequestListenerRequestEvent::class);
19+
}
20+
if (! class_exists(RequestListenerControllerEvent::class, false)) {
21+
class_alias(ControllerEvent::class, RequestListenerControllerEvent::class);
22+
}
1923
} else {
20-
class_alias(GetResponseEvent::class, RequestListenerRequestEvent::class);
21-
class_alias(FilterControllerEvent::class, RequestListenerControllerEvent::class);
24+
if (! class_exists(RequestListenerRequestEvent::class, false)) {
25+
class_alias(GetResponseEvent::class, RequestListenerRequestEvent::class);
26+
}
27+
if (! class_exists(RequestListenerControllerEvent::class, false)) {
28+
class_alias(FilterControllerEvent::class, RequestListenerControllerEvent::class);
29+
}
2230
}
2331

2432
/**

src/EventListener/SubRequestListener.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,13 @@
99
use Symfony\Component\HttpKernel\Kernel;
1010

1111
if (Kernel::MAJOR_VERSION >= 5) {
12-
class_alias(RequestEvent::class, SubRequestListenerRequestEvent::class);
12+
if (! class_exists(SubRequestListenerRequestEvent::class, false)) {
13+
class_alias(RequestEvent::class, SubRequestListenerRequestEvent::class);
14+
}
1315
} else {
14-
class_alias(GetResponseEvent::class, SubRequestListenerRequestEvent::class);
16+
if (! class_exists(SubRequestListenerRequestEvent::class, false)) {
17+
class_alias(GetResponseEvent::class, SubRequestListenerRequestEvent::class);
18+
}
1519
}
1620

1721
final class SubRequestListener

test/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function testConfigurationDefaults(): void
5151
'console' => 1,
5252
'request_error' => 128,
5353
'console_error' => 128,
54-
'worker_error' => 128,
54+
'worker_error' => 99,
5555
],
5656
'options' => [
5757
'class_serializers' => [],
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace Sentry\SentryBundle\Test\End2End\App\Controller;
4+
5+
use Sentry\SentryBundle\Test\End2End\App\Messenger\FooMessage;
6+
use Symfony\Component\HttpFoundation\Response;
7+
use Symfony\Component\Messenger\MessageBusInterface;
8+
9+
class MessengerController
10+
{
11+
/** @var MessageBusInterface */
12+
private $messenger;
13+
14+
public function __construct(MessageBusInterface $messenger)
15+
{
16+
$this->messenger = $messenger;
17+
}
18+
19+
public function dispatchMessage(): Response
20+
{
21+
$this->messenger->dispatch(new FooMessage());
22+
23+
return new Response('Success');
24+
}
25+
26+
public function dispatchUnrecoverableMessage(): Response
27+
{
28+
$this->messenger->dispatch(new FooMessage(false));
29+
30+
return new Response('Success');
31+
}
32+
}

0 commit comments

Comments
 (0)