Skip to content

Commit 4971ab4

Browse files
authored
Release v1.10.0
2 parents efedeb2 + cf519f0 commit 4971ab4

File tree

10 files changed

+332
-2
lines changed

10 files changed

+332
-2
lines changed

.ci/require-symfony.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ if [ "$SYMFONY_VERSION" = "latest" ]; then
3838
composer require "symfony/http-foundation:$(lastversion symfony/http-foundation --pre)" --no-update
3939
composer require "symfony/http-kernel:$(lastversion symfony/http-kernel --pre)" --no-update
4040
composer require "symfony/security-core:$(lastversion symfony/security-core --pre)" --no-update
41+
composer require "symfony/messenger:$(lastversion symfony/messenger --pre)" --no-update
4142
else
4243
# If we're requesting a specific version we can simply install it
4344
composer require "symfony/config:${SYMFONY_VERSION}" --no-update
@@ -46,4 +47,10 @@ else
4647
composer require "symfony/http-foundation:${SYMFONY_VERSION}" --no-update
4748
composer require "symfony/http-kernel:${SYMFONY_VERSION}" --no-update
4849
composer require "symfony/security-core:${SYMFONY_VERSION}" --no-update
50+
51+
# Symfony Messenger only exists from 4.1.0 onward
52+
case "$SYMFONY_VERSION" in
53+
4.0*) ;;
54+
^[4-5]*) composer require "symfony/messenger:${SYMFONY_VERSION}" --no-update ;;
55+
esac
4956
fi

.github/workflows/license-audit.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Audit bugsnag-symfony dependency licenses
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
license-audit:
7+
runs-on: ubuntu-latest
8+
strategy:
9+
matrix:
10+
symfony-version: ['^3.4', '^4.4', '^5.0']
11+
12+
steps:
13+
- uses: actions/checkout@v2
14+
15+
- name: install PHP
16+
uses: shivammathur/setup-php@v2
17+
with:
18+
php-version: '8.0'
19+
20+
- name: Fetch decisions.yml
21+
run: curl https://raw.githubusercontent.com/bugsnag/license-audit/master/config/decision_files/global.yml -o decisions.yml
22+
23+
- name: Require Symfony
24+
run: ./.ci/require-symfony.sh "${{ matrix.symfony-version }}"
25+
26+
- name: Install dependencies
27+
run: composer update --prefer-dist --no-progress --no-suggest --no-interaction --no-dev
28+
29+
- name: Run License Finder
30+
# for some reason license finder doesn't run without a login shell (-l)
31+
run: >
32+
docker run -v $PWD:/scan licensefinder/license_finder /bin/bash -lc "
33+
cd /scan &&
34+
license_finder --decisions-file decisions.yml --composer-check-require-only=true --enabled-package-managers=composer
35+
"

.github/workflows/test-package.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,32 @@ jobs:
3636
symfony-version: '2.8.*'
3737
- php-version: 7.1
3838
symfony-version: '^3.0'
39+
- php-version: 7.1
40+
symfony-version: '4.0.*'
3941
- php-version: 7.1
4042
symfony-version: '^4.0'
4143
- php-version: 7.2
4244
symfony-version: '2.8.*'
4345
- php-version: 7.2
4446
symfony-version: '^3.0'
47+
- php-version: 7.2
48+
symfony-version: '4.0.*'
4549
- php-version: 7.2
4650
symfony-version: '^4.0'
4751
- php-version: 7.2
4852
symfony-version: '^5.0'
4953
- php-version: 7.3
5054
symfony-version: '^3.0'
55+
- php-version: 7.3
56+
symfony-version: '4.0.*'
5157
- php-version: 7.3
5258
symfony-version: '^4.0'
5359
- php-version: 7.3
5460
symfony-version: '^5.0'
5561
- php-version: 7.4
5662
symfony-version: '^3.0'
63+
- php-version: 7.4
64+
symfony-version: '4.0.*'
5765
- php-version: 7.4
5866
symfony-version: '^4.0'
5967
- php-version: 7.4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
/composer.phar
55
/.idea
66
.phpunit.result.cache
7+
decisions.yml

BugsnagBundle.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ class BugsnagBundle extends Bundle
1111
*
1212
* @return string
1313
*/
14-
const VERSION = '1.9.0';
14+
const VERSION = '1.10.0';
1515
}

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
Changelog
22
=========
33

4+
## 1.10.0 (2021-06-30)
5+
6+
### Enhancements
7+
8+
* Add support for Symfony Messenger. Exceptions in workers will now automatically be reported to Bugsnag. The queue of events will also be flushed after each successful job
9+
[Mathieu](https://github.com/MatTheCat)
10+
[#89](https://github.com/bugsnag/bugsnag-symfony/pull/89)
11+
[#125](https://github.com/bugsnag/bugsnag-symfony/pull/125)
12+
13+
### Bug Fixes
14+
15+
* Use `hasPreviousSession` instead of `hasSession` when checking for session data
16+
[Oleg Andreyev](https://github.com/oleg-andreyev)
17+
[#124](https://github.com/bugsnag/bugsnag-symfony/pull/124)
18+
19+
* Set the severity of exceptions to "error" instead of "warning"
20+
[#126](https://github.com/bugsnag/bugsnag-symfony/pull/126)
21+
422
## 1.9.0 (2021-02-10)
523

624
### Enhancements

EventListener/BugsnagListener.php

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
use Symfony\Component\HttpKernel\Event\RequestEvent;
1919
use Symfony\Component\HttpKernel\HttpKernelInterface;
2020
use Symfony\Component\HttpKernel\KernelEvents;
21+
use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
22+
use Symfony\Component\Messenger\Event\WorkerMessageHandledEvent;
2123

2224
class BugsnagListener implements EventSubscriberInterface
2325
{
@@ -144,6 +146,41 @@ public function onConsoleError(ConsoleErrorEvent $event)
144146
$this->sendNotify($event->getError(), ['command' => $meta]);
145147
}
146148

149+
/**
150+
* Handle a failing message.
151+
*
152+
* @param \Symfony\Component\Messenger\Event\WorkerMessageFailedEvent $event
153+
*
154+
* @return void
155+
*/
156+
public function onWorkerMessageFailed(WorkerMessageFailedEvent $event)
157+
{
158+
$this->sendNotify(
159+
$event->getThrowable(),
160+
['Messenger' => ['willRetry' => $event->willRetry()]]
161+
);
162+
163+
// Normally we flush after a message has been handled, but this event
164+
// doesn't fire for failed messages so we have to flush here instead
165+
$this->client->flush();
166+
}
167+
168+
/**
169+
* Flush any accumulated reports after a message has been handled.
170+
*
171+
* In batch sending mode reports are usually sent on shutdown but workers
172+
* are (generally) long running processes so this doesn't work. Instead we
173+
* flush after each handled message
174+
*
175+
* @param WorkerMessageHandledEvent $event
176+
*
177+
* @return void
178+
*/
179+
public function onWorkerMessageHandled(WorkerMessageHandledEvent $event)
180+
{
181+
$this->client->flush();
182+
}
183+
147184
/**
148185
* @param \Throwable $throwable
149186
* @param array $meta
@@ -161,6 +198,7 @@ private function sendNotify($throwable, $meta)
161198
$throwable
162199
);
163200
$report->setUnhandled(true);
201+
$report->setSeverity('error');
164202
$report->setSeverityReason([
165203
'type' => 'unhandledExceptionMiddleware',
166204
'attributes' => [
@@ -227,6 +265,16 @@ public static function getSubscribedEvents()
227265
}
228266
}
229267

268+
if (class_exists(WorkerMessageFailedEvent::class)) {
269+
// This must run after Symfony's "SendFailedMessageForRetryListener"
270+
// as it sets the "willRetry" flag
271+
$listeners[WorkerMessageFailedEvent::class] = ['onWorkerMessageFailed', 64];
272+
}
273+
274+
if (class_exists(WorkerMessageHandledEvent::class)) {
275+
$listeners[WorkerMessageHandledEvent::class] = ['onWorkerMessageHandled', 128];
276+
}
277+
230278
return $listeners;
231279
}
232280
}

Request/SymfonyRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function isRequest()
4444
public function getSession()
4545
{
4646
$session = null;
47-
if ($this->request->hasSession()) {
47+
if ($this->request->hasPreviousSession()) {
4848
$session = $this->request->getSession();
4949
}
5050

0 commit comments

Comments
 (0)