Skip to content

Commit ecf8098

Browse files
authored
ref(ember): Update addon to support Ember 4.0.0 (beta) (#3915)
### Summary This should make the addon compatible with the upcoming 4.0 versions of Ember. Primarily a couple packages needed to be updated, but also in functionality the private '_backburner' moved (looking briefly I think it was this commit emberjs/ember.js@aece1dc). There are likely other improvements that can be made once 4.0 is release, and other deprecations, such as the Ember global usage that we should remove, but this should unblock the version functionally for now and hopefully get our beta channel tests to pass. #### Other - Tested that this works with the beta channel locally and it passed, going to push to see if any other channels break.
1 parent e46ff3e commit ecf8098

File tree

4 files changed

+107
-29
lines changed

4 files changed

+107
-29
lines changed

packages/ember/addon/instance-initializers/sentry-performance.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import ApplicationInstance from '@ember/application/instance';
22
import Ember from 'ember';
3-
import { run } from '@ember/runloop';
3+
import { run, _backburner, scheduleOnce } from '@ember/runloop';
44
import * as Sentry from '@sentry/browser';
55
import { Span, Transaction, Integration } from '@sentry/types';
66
import { EmberRunQueues } from '@ember/runloop/-private/types';
@@ -28,6 +28,13 @@ export function initialize(appInstance: ApplicationInstance): void {
2828
}
2929
}
3030

31+
function getBackburner() {
32+
if (run.backburner) {
33+
return run.backburner;
34+
}
35+
return _backburner;
36+
}
37+
3138
function getTransitionInformation(transition: any, router: any) {
3239
const fromRoute = transition?.from?.name;
3340
const toRoute = transition && transition.to ? transition.to.name : router.currentRouteName;
@@ -86,7 +93,7 @@ export function _instrumentEmberRouter(
8693
return;
8794
}
8895
activeTransaction.finish();
89-
run.backburner.off('end', finishActiveTransaction);
96+
getBackburner().off('end', finishActiveTransaction);
9097
};
9198

9299
routerService.on('routeWillChange', (transition: any) => {
@@ -118,7 +125,7 @@ export function _instrumentEmberRouter(
118125
return;
119126
}
120127

121-
run.backburner.on('end', finishActiveTransaction);
128+
getBackburner().on('end', finishActiveTransaction);
122129
});
123130

124131
return {
@@ -142,7 +149,7 @@ function _instrumentEmberRunloop(config: EmberSentryConfig) {
142149
'destroy',
143150
] as EmberRunQueues[];
144151

145-
run.backburner.on('begin', (_: any, previousInstance: any) => {
152+
getBackburner().on('begin', (_: any, previousInstance: any) => {
146153
if (previousInstance) {
147154
return;
148155
}
@@ -156,8 +163,8 @@ function _instrumentEmberRunloop(config: EmberSentryConfig) {
156163
currentQueueStart = timestampWithMs();
157164

158165
instrumentedEmberQueues.forEach(queue => {
159-
run.scheduleOnce(queue, null, () => {
160-
run.scheduleOnce(queue, null, () => {
166+
scheduleOnce(queue, null, () => {
167+
scheduleOnce(queue, null, () => {
161168
// Process this queue using the end of the previous queue.
162169
if (currentQueueStart) {
163170
const now = timestampWithMs();
@@ -186,7 +193,7 @@ function _instrumentEmberRunloop(config: EmberSentryConfig) {
186193
});
187194
});
188195
});
189-
run.backburner.on('end', (_: any, nextInstance: any) => {
196+
getBackburner().on('end', (_: any, nextInstance: any) => {
190197
if (nextInstance) {
191198
return;
192199
}

packages/ember/addon/runloop.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ interface ExtendedBackburner extends Backburner {
1313
*/
1414
declare module '@ember/runloop' {
1515
interface RunNamespace {
16-
backburner: ExtendedBackburner;
16+
backburner?: ExtendedBackburner;
1717
}
18+
export const _backburner: ExtendedBackburner; // Ember 4.0
1819
}

packages/ember/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,18 @@
3737
"@sentry/types": "6.11.0",
3838
"@sentry/utils": "6.11.0",
3939
"ember-auto-import": "^1.6.0",
40-
"ember-cli-babel": "^7.20.5",
40+
"ember-cli-babel": "^7.26.6",
4141
"ember-cli-htmlbars": "^5.1.2",
42-
"ember-cli-typescript": "^3.1.4"
42+
"ember-cli-typescript": "^3.1.4",
43+
"ember-source": "3.24.3"
4344
},
4445
"devDependencies": {
4546
"@ember/optional-features": "^1.3.0",
4647
"@embroider/test-setup": "~0.37.0",
4748
"@glimmer/component": "^1.0.0",
4849
"@glimmer/tracking": "^1.0.0",
4950
"@sentry-internal/eslint-config-sdk": "6.11.0",
50-
"@types/ember": "^3.16.3",
51+
"@types/ember": "^3.16.5",
5152
"@types/ember-qunit": "^3.4.9",
5253
"@types/ember__test-helpers": "^1.7.0",
5354
"@types/qunit": "^2.9.1",
@@ -70,7 +71,7 @@
7071
"ember-source": "~3.24.0",
7172
"ember-source-channel-url": "^2.0.1",
7273
"ember-template-lint": "^2.9.1",
73-
"ember-test-selectors": "^4.1.0",
74+
"ember-test-selectors": "~5.5.0",
7475
"ember-try": "^1.4.0",
7576
"ember-window-mock": "^0.7.1",
7677
"eslint-plugin-ember": "^8.6.0",

yarn.lock

Lines changed: 86 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,11 @@
201201
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
202202
integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
203203

204+
"@babel/helper-plugin-utils@^7.14.5":
205+
version "7.14.5"
206+
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
207+
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
208+
204209
"@babel/helper-remap-async-to-generator@^7.13.0":
205210
version "7.13.0"
206211
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
@@ -671,11 +676,11 @@
671676
"@babel/helper-plugin-utils" "^7.12.13"
672677

673678
"@babel/plugin-transform-object-assign@^7.8.3":
674-
version "7.12.13"
675-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.13.tgz#d9b9200a69e03403a813e44a933ad9f4bddfd050"
676-
integrity sha512-4QxDMc0lAOkIBSfCrnSGbAJ+4epDBF2XXwcLXuBcG1xl9u7LrktNVD4+LwhL47XuKVPQ7R25e/WdcV+h97HyZA==
679+
version "7.14.5"
680+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz#62537d54b6d85de04f4df48bfdba2eebff17b760"
681+
integrity sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==
677682
dependencies:
678-
"@babel/helper-plugin-utils" "^7.12.13"
683+
"@babel/helper-plugin-utils" "^7.14.5"
679684

680685
"@babel/plugin-transform-object-super@^7.12.13":
681686
version "7.12.13"
@@ -2885,7 +2890,7 @@
28852890
"@types/jquery" "*"
28862891
"@types/rsvp" "*"
28872892

2888-
"@types/ember@*", "@types/ember@^3.16.3":
2893+
"@types/ember@*":
28892894
version "3.16.4"
28902895
resolved "https://registry.yarnpkg.com/@types/ember/-/ember-3.16.4.tgz#bfccd8ed198ca7bee09878a3423ca6e1a9caac17"
28912896
integrity sha512-kCZNxuCofZN2sYUltfUmPegqAr1wvZ4b6aH0i8AsG+AsUiaWCDzVfCayMfr4CRUOhUiQ2VA9AOgnZT+JgBvjXQ==
@@ -2910,6 +2915,32 @@
29102915
"@types/jquery" "*"
29112916
"@types/rsvp" "*"
29122917

2918+
"@types/ember@^3.16.5":
2919+
version "3.16.5"
2920+
resolved "https://registry.yarnpkg.com/@types/ember/-/ember-3.16.5.tgz#c2d6b0f178761c0c2fbc6fc39b4b6958c256d0ac"
2921+
integrity sha512-8BzT1g8r7xQsN2p7qIUZ0AXWEVpJ5LmaRWP3iT79PLyIQfTAYvHSueUl14lrB8renETjwr4+ZvVPKurn9TKxNA==
2922+
dependencies:
2923+
"@types/ember__application" "*"
2924+
"@types/ember__array" "*"
2925+
"@types/ember__component" "*"
2926+
"@types/ember__controller" "*"
2927+
"@types/ember__debug" "*"
2928+
"@types/ember__destroyable" "*"
2929+
"@types/ember__engine" "*"
2930+
"@types/ember__error" "*"
2931+
"@types/ember__object" "*"
2932+
"@types/ember__polyfills" "*"
2933+
"@types/ember__routing" "*"
2934+
"@types/ember__runloop" "*"
2935+
"@types/ember__service" "*"
2936+
"@types/ember__string" "*"
2937+
"@types/ember__template" "*"
2938+
"@types/ember__test" "*"
2939+
"@types/ember__utils" "*"
2940+
"@types/htmlbars-inline-precompile" "*"
2941+
"@types/jquery" "*"
2942+
"@types/rsvp" "*"
2943+
29132944
"@types/ember__application@*":
29142945
version "3.16.2"
29152946
resolved "https://registry.yarnpkg.com/@types/ember__application/-/ember__application-3.16.2.tgz#32bab774a3da681f454372224aaeeed84b747e1b"
@@ -2953,6 +2984,11 @@
29532984
"@types/ember__engine" "*"
29542985
"@types/ember__object" "*"
29552986

2987+
"@types/ember__destroyable@*":
2988+
version "3.22.0"
2989+
resolved "https://registry.yarnpkg.com/@types/ember__destroyable/-/ember__destroyable-3.22.0.tgz#2af2c27f5d8996694c3f0fe906e2536b2e4c5aca"
2990+
integrity sha512-T5wZGK1MwEelNIv1bbAvRQZPo9zvfjpGyyFPwjz+sakjImKVcQzb/yq1SgGyT0QTAQAT7l0L+kFru9+fSVVo5A==
2991+
29562992
"@types/ember__engine@*":
29572993
version "3.16.2"
29582994
resolved "https://registry.yarnpkg.com/@types/ember__engine/-/ember__engine-3.16.2.tgz#886e916b0bb0d417bfeee1db3a3b3fc4591e24ad"
@@ -8236,7 +8272,7 @@ ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.8.1:
82368272
ember-cli-version-checker "^2.1.2"
82378273
semver "^5.5.0"
82388274

8239-
ember-cli-babel@^7.0.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.17.2, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.26.2, ember-cli-babel@^7.7.3:
8275+
ember-cli-babel@^7.0.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.17.2, ember-cli-babel@^7.20.5, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.26.2, ember-cli-babel@^7.7.3:
82408276
version "7.26.3"
82418277
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.3.tgz#e93ce7ec458208894d10844cf76e41cc06fdbeb6"
82428278
integrity sha512-ZCs0g99d3kYaHs1+HT33oMY7/K+nLCAAv7dCLxsMzg7cQf55O6Pq4ZKnWEr3IHVs33xbJFnEb9prt1up36QVnw==
@@ -8269,6 +8305,39 @@ ember-cli-babel@^7.0.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.12.0, ember-
82698305
rimraf "^3.0.1"
82708306
semver "^5.5.0"
82718307

8308+
ember-cli-babel@^7.26.4, ember-cli-babel@^7.26.6:
8309+
version "7.26.6"
8310+
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.6.tgz#322fbbd3baad9dd99e3276ff05bc6faef5e54b39"
8311+
integrity sha512-040svtfj2RC35j/WMwdWJFusZaXmNoytLAMyBDGLMSlRvznudTxZjGlPV6UupmtTBApy58cEF8Fq4a+COWoEmQ==
8312+
dependencies:
8313+
"@babel/core" "^7.12.0"
8314+
"@babel/helper-compilation-targets" "^7.12.0"
8315+
"@babel/plugin-proposal-class-properties" "^7.13.0"
8316+
"@babel/plugin-proposal-decorators" "^7.13.5"
8317+
"@babel/plugin-transform-modules-amd" "^7.13.0"
8318+
"@babel/plugin-transform-runtime" "^7.13.9"
8319+
"@babel/plugin-transform-typescript" "^7.13.0"
8320+
"@babel/polyfill" "^7.11.5"
8321+
"@babel/preset-env" "^7.12.0"
8322+
"@babel/runtime" "7.12.18"
8323+
amd-name-resolver "^1.3.1"
8324+
babel-plugin-debug-macros "^0.3.4"
8325+
babel-plugin-ember-data-packages-polyfill "^0.1.2"
8326+
babel-plugin-ember-modules-api-polyfill "^3.5.0"
8327+
babel-plugin-module-resolver "^3.2.0"
8328+
broccoli-babel-transpiler "^7.8.0"
8329+
broccoli-debug "^0.6.4"
8330+
broccoli-funnel "^2.0.2"
8331+
broccoli-source "^2.1.2"
8332+
clone "^2.1.2"
8333+
ember-cli-babel-plugin-helpers "^1.1.1"
8334+
ember-cli-version-checker "^4.1.0"
8335+
ensure-posix-path "^1.0.2"
8336+
fixturify-project "^1.10.0"
8337+
resolve-package-path "^3.1.0"
8338+
rimraf "^3.0.1"
8339+
semver "^5.5.0"
8340+
82728341
ember-cli-dependency-checker@^3.2.0:
82738342
version "3.2.0"
82748343
resolved "https://registry.yarnpkg.com/ember-cli-dependency-checker/-/ember-cli-dependency-checker-3.2.0.tgz#9202ad9e14d6fda33cffc22a11c343c2a8885330"
@@ -8500,7 +8569,7 @@ ember-cli-version-checker@^4.1.0:
85008569
semver "^6.3.0"
85018570
silent-error "^1.1.1"
85028571

8503-
ember-cli-version-checker@^5.0.2, ember-cli-version-checker@^5.1.1, ember-cli-version-checker@^5.1.2:
8572+
ember-cli-version-checker@^5.1.1, ember-cli-version-checker@^5.1.2:
85048573
version "5.1.2"
85058574
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.2.tgz#649c7b6404902e3b3d69c396e054cea964911ab0"
85068575
integrity sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==
@@ -8723,10 +8792,10 @@ ember-source-channel-url@^3.0.0:
87238792
dependencies:
87248793
node-fetch "^2.6.0"
87258794

8726-
ember-source@~3.24.0:
8727-
version "3.24.4"
8728-
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.4.tgz#db3f70cbe4155d48474177f1564627a1fc980f64"
8729-
integrity sha512-C5sFGxT743n2PCaTnpvy3GWHdPz+/Ve9qjcSdfRjUvFCSYNhsRkxkpXRvXEU8WoUXY35Pm4vV9RsiorX1M+/Tw==
8795+
8796+
version "3.24.3"
8797+
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.3.tgz#fb535adec2eb9289e8af21afbe0e1ed5cd0a0889"
8798+
integrity sha512-EEAoz/pwgKZCosFiHUpkXewOcGsx8zjd7JtrwIh97JjRY/EUhBsMovjycieCjLrSXQrLjayr1vuVun2FJBESRw==
87308799
dependencies:
87318800
"@babel/helper-module-imports" "^7.8.3"
87328801
"@babel/plugin-transform-block-scoping" "^7.8.3"
@@ -8787,14 +8856,14 @@ ember-template-recast@^5.0.1:
87878856
tmp "^0.2.1"
87888857
workerpool "^6.0.3"
87898858

8790-
ember-test-selectors@^4.1.0:
8791-
version "4.1.0"
8792-
resolved "https://registry.yarnpkg.com/ember-test-selectors/-/ember-test-selectors-4.1.0.tgz#0416c9ebdbd5ded4585643ba121115e45932dfc2"
8793-
integrity sha512-njyopeK018CP4PUWvkRdNFcP+56B7yfVYGt6k+71+4t8WscUzWPqgJvDYaJ64avn5EvrI+QBSWb80NC7Q++WDA==
8859+
ember-test-selectors@~5.5.0:
8860+
version "5.5.0"
8861+
resolved "https://registry.yarnpkg.com/ember-test-selectors/-/ember-test-selectors-5.5.0.tgz#114bd29c4a33eee3a328c9ce32a57a018c27f5f6"
8862+
integrity sha512-PiKhbPnidRYQ5ed/CTU3teJV3XmzkjYjsCGx1UTy7qEY/1dEqxezlZu1DtisoLJ9Y+BcjTVlE+596lo9cOXd3w==
87948863
dependencies:
87958864
calculate-cache-key-for-tree "^2.0.0"
8796-
ember-cli-babel "^7.19.0"
8797-
ember-cli-version-checker "^5.0.2"
8865+
ember-cli-babel "^7.26.4"
8866+
ember-cli-version-checker "^5.1.2"
87988867

87998868
ember-test-waiters@^1.1.1:
88008869
version "1.2.0"

0 commit comments

Comments
 (0)