Skip to content

Commit

Permalink
ref(ember): Update addon to support Ember 4.0.0 (beta) (#3915)
Browse files Browse the repository at this point in the history
### 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.
  • Loading branch information
k-fish committed Aug 23, 2021
1 parent e46ff3e commit ecf8098
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 29 deletions.
21 changes: 14 additions & 7 deletions packages/ember/addon/instance-initializers/sentry-performance.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import ApplicationInstance from '@ember/application/instance';
import Ember from 'ember';
import { run } from '@ember/runloop';
import { run, _backburner, scheduleOnce } from '@ember/runloop';
import * as Sentry from '@sentry/browser';
import { Span, Transaction, Integration } from '@sentry/types';
import { EmberRunQueues } from '@ember/runloop/-private/types';
Expand Down Expand Up @@ -28,6 +28,13 @@ export function initialize(appInstance: ApplicationInstance): void {
}
}

function getBackburner() {
if (run.backburner) {
return run.backburner;
}
return _backburner;
}

function getTransitionInformation(transition: any, router: any) {
const fromRoute = transition?.from?.name;
const toRoute = transition && transition.to ? transition.to.name : router.currentRouteName;
Expand Down Expand Up @@ -86,7 +93,7 @@ export function _instrumentEmberRouter(
return;
}
activeTransaction.finish();
run.backburner.off('end', finishActiveTransaction);
getBackburner().off('end', finishActiveTransaction);
};

routerService.on('routeWillChange', (transition: any) => {
Expand Down Expand Up @@ -118,7 +125,7 @@ export function _instrumentEmberRouter(
return;
}

run.backburner.on('end', finishActiveTransaction);
getBackburner().on('end', finishActiveTransaction);
});

return {
Expand All @@ -142,7 +149,7 @@ function _instrumentEmberRunloop(config: EmberSentryConfig) {
'destroy',
] as EmberRunQueues[];

run.backburner.on('begin', (_: any, previousInstance: any) => {
getBackburner().on('begin', (_: any, previousInstance: any) => {
if (previousInstance) {
return;
}
Expand All @@ -156,8 +163,8 @@ function _instrumentEmberRunloop(config: EmberSentryConfig) {
currentQueueStart = timestampWithMs();

instrumentedEmberQueues.forEach(queue => {
run.scheduleOnce(queue, null, () => {
run.scheduleOnce(queue, null, () => {
scheduleOnce(queue, null, () => {
scheduleOnce(queue, null, () => {
// Process this queue using the end of the previous queue.
if (currentQueueStart) {
const now = timestampWithMs();
Expand Down Expand Up @@ -186,7 +193,7 @@ function _instrumentEmberRunloop(config: EmberSentryConfig) {
});
});
});
run.backburner.on('end', (_: any, nextInstance: any) => {
getBackburner().on('end', (_: any, nextInstance: any) => {
if (nextInstance) {
return;
}
Expand Down
3 changes: 2 additions & 1 deletion packages/ember/addon/runloop.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ interface ExtendedBackburner extends Backburner {
*/
declare module '@ember/runloop' {
interface RunNamespace {
backburner: ExtendedBackburner;
backburner?: ExtendedBackburner;
}
export const _backburner: ExtendedBackburner; // Ember 4.0
}
9 changes: 5 additions & 4 deletions packages/ember/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,18 @@
"@sentry/types": "6.11.0",
"@sentry/utils": "6.11.0",
"ember-auto-import": "^1.6.0",
"ember-cli-babel": "^7.20.5",
"ember-cli-babel": "^7.26.6",
"ember-cli-htmlbars": "^5.1.2",
"ember-cli-typescript": "^3.1.4"
"ember-cli-typescript": "^3.1.4",
"ember-source": "3.24.3"
},
"devDependencies": {
"@ember/optional-features": "^1.3.0",
"@embroider/test-setup": "~0.37.0",
"@glimmer/component": "^1.0.0",
"@glimmer/tracking": "^1.0.0",
"@sentry-internal/eslint-config-sdk": "6.11.0",
"@types/ember": "^3.16.3",
"@types/ember": "^3.16.5",
"@types/ember-qunit": "^3.4.9",
"@types/ember__test-helpers": "^1.7.0",
"@types/qunit": "^2.9.1",
Expand All @@ -70,7 +71,7 @@
"ember-source": "~3.24.0",
"ember-source-channel-url": "^2.0.1",
"ember-template-lint": "^2.9.1",
"ember-test-selectors": "^4.1.0",
"ember-test-selectors": "~5.5.0",
"ember-try": "^1.4.0",
"ember-window-mock": "^0.7.1",
"eslint-plugin-ember": "^8.6.0",
Expand Down
103 changes: 86 additions & 17 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==

"@babel/helper-plugin-utils@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==

"@babel/helper-remap-async-to-generator@^7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
Expand Down Expand Up @@ -671,11 +676,11 @@
"@babel/helper-plugin-utils" "^7.12.13"

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

"@babel/plugin-transform-object-super@^7.12.13":
version "7.12.13"
Expand Down Expand Up @@ -2885,7 +2890,7 @@
"@types/jquery" "*"
"@types/rsvp" "*"

"@types/ember@*", "@types/ember@^3.16.3":
"@types/ember@*":
version "3.16.4"
resolved "https://registry.yarnpkg.com/@types/ember/-/ember-3.16.4.tgz#bfccd8ed198ca7bee09878a3423ca6e1a9caac17"
integrity sha512-kCZNxuCofZN2sYUltfUmPegqAr1wvZ4b6aH0i8AsG+AsUiaWCDzVfCayMfr4CRUOhUiQ2VA9AOgnZT+JgBvjXQ==
Expand All @@ -2910,6 +2915,32 @@
"@types/jquery" "*"
"@types/rsvp" "*"

"@types/ember@^3.16.5":
version "3.16.5"
resolved "https://registry.yarnpkg.com/@types/ember/-/ember-3.16.5.tgz#c2d6b0f178761c0c2fbc6fc39b4b6958c256d0ac"
integrity sha512-8BzT1g8r7xQsN2p7qIUZ0AXWEVpJ5LmaRWP3iT79PLyIQfTAYvHSueUl14lrB8renETjwr4+ZvVPKurn9TKxNA==
dependencies:
"@types/ember__application" "*"
"@types/ember__array" "*"
"@types/ember__component" "*"
"@types/ember__controller" "*"
"@types/ember__debug" "*"
"@types/ember__destroyable" "*"
"@types/ember__engine" "*"
"@types/ember__error" "*"
"@types/ember__object" "*"
"@types/ember__polyfills" "*"
"@types/ember__routing" "*"
"@types/ember__runloop" "*"
"@types/ember__service" "*"
"@types/ember__string" "*"
"@types/ember__template" "*"
"@types/ember__test" "*"
"@types/ember__utils" "*"
"@types/htmlbars-inline-precompile" "*"
"@types/jquery" "*"
"@types/rsvp" "*"

"@types/ember__application@*":
version "3.16.2"
resolved "https://registry.yarnpkg.com/@types/ember__application/-/ember__application-3.16.2.tgz#32bab774a3da681f454372224aaeeed84b747e1b"
Expand Down Expand Up @@ -2953,6 +2984,11 @@
"@types/ember__engine" "*"
"@types/ember__object" "*"

"@types/ember__destroyable@*":
version "3.22.0"
resolved "https://registry.yarnpkg.com/@types/ember__destroyable/-/ember__destroyable-3.22.0.tgz#2af2c27f5d8996694c3f0fe906e2536b2e4c5aca"
integrity sha512-T5wZGK1MwEelNIv1bbAvRQZPo9zvfjpGyyFPwjz+sakjImKVcQzb/yq1SgGyT0QTAQAT7l0L+kFru9+fSVVo5A==

"@types/ember__engine@*":
version "3.16.2"
resolved "https://registry.yarnpkg.com/@types/ember__engine/-/ember__engine-3.16.2.tgz#886e916b0bb0d417bfeee1db3a3b3fc4591e24ad"
Expand Down Expand Up @@ -8236,7 +8272,7 @@ ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.8.1:
ember-cli-version-checker "^2.1.2"
semver "^5.5.0"

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:
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:
version "7.26.3"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.3.tgz#e93ce7ec458208894d10844cf76e41cc06fdbeb6"
integrity sha512-ZCs0g99d3kYaHs1+HT33oMY7/K+nLCAAv7dCLxsMzg7cQf55O6Pq4ZKnWEr3IHVs33xbJFnEb9prt1up36QVnw==
Expand Down Expand Up @@ -8269,6 +8305,39 @@ ember-cli-babel@^7.0.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.12.0, ember-
rimraf "^3.0.1"
semver "^5.5.0"

ember-cli-babel@^7.26.4, ember-cli-babel@^7.26.6:
version "7.26.6"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.6.tgz#322fbbd3baad9dd99e3276ff05bc6faef5e54b39"
integrity sha512-040svtfj2RC35j/WMwdWJFusZaXmNoytLAMyBDGLMSlRvznudTxZjGlPV6UupmtTBApy58cEF8Fq4a+COWoEmQ==
dependencies:
"@babel/core" "^7.12.0"
"@babel/helper-compilation-targets" "^7.12.0"
"@babel/plugin-proposal-class-properties" "^7.13.0"
"@babel/plugin-proposal-decorators" "^7.13.5"
"@babel/plugin-transform-modules-amd" "^7.13.0"
"@babel/plugin-transform-runtime" "^7.13.9"
"@babel/plugin-transform-typescript" "^7.13.0"
"@babel/polyfill" "^7.11.5"
"@babel/preset-env" "^7.12.0"
"@babel/runtime" "7.12.18"
amd-name-resolver "^1.3.1"
babel-plugin-debug-macros "^0.3.4"
babel-plugin-ember-data-packages-polyfill "^0.1.2"
babel-plugin-ember-modules-api-polyfill "^3.5.0"
babel-plugin-module-resolver "^3.2.0"
broccoli-babel-transpiler "^7.8.0"
broccoli-debug "^0.6.4"
broccoli-funnel "^2.0.2"
broccoli-source "^2.1.2"
clone "^2.1.2"
ember-cli-babel-plugin-helpers "^1.1.1"
ember-cli-version-checker "^4.1.0"
ensure-posix-path "^1.0.2"
fixturify-project "^1.10.0"
resolve-package-path "^3.1.0"
rimraf "^3.0.1"
semver "^5.5.0"

ember-cli-dependency-checker@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ember-cli-dependency-checker/-/ember-cli-dependency-checker-3.2.0.tgz#9202ad9e14d6fda33cffc22a11c343c2a8885330"
Expand Down Expand Up @@ -8500,7 +8569,7 @@ ember-cli-version-checker@^4.1.0:
semver "^6.3.0"
silent-error "^1.1.1"

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

ember-source@~3.24.0:
version "3.24.4"
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.4.tgz#db3f70cbe4155d48474177f1564627a1fc980f64"
integrity sha512-C5sFGxT743n2PCaTnpvy3GWHdPz+/Ve9qjcSdfRjUvFCSYNhsRkxkpXRvXEU8WoUXY35Pm4vV9RsiorX1M+/Tw==
ember-source@3.24.3:
version "3.24.3"
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.3.tgz#fb535adec2eb9289e8af21afbe0e1ed5cd0a0889"
integrity sha512-EEAoz/pwgKZCosFiHUpkXewOcGsx8zjd7JtrwIh97JjRY/EUhBsMovjycieCjLrSXQrLjayr1vuVun2FJBESRw==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
"@babel/plugin-transform-block-scoping" "^7.8.3"
Expand Down Expand Up @@ -8787,14 +8856,14 @@ ember-template-recast@^5.0.1:
tmp "^0.2.1"
workerpool "^6.0.3"

ember-test-selectors@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ember-test-selectors/-/ember-test-selectors-4.1.0.tgz#0416c9ebdbd5ded4585643ba121115e45932dfc2"
integrity sha512-njyopeK018CP4PUWvkRdNFcP+56B7yfVYGt6k+71+4t8WscUzWPqgJvDYaJ64avn5EvrI+QBSWb80NC7Q++WDA==
ember-test-selectors@~5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/ember-test-selectors/-/ember-test-selectors-5.5.0.tgz#114bd29c4a33eee3a328c9ce32a57a018c27f5f6"
integrity sha512-PiKhbPnidRYQ5ed/CTU3teJV3XmzkjYjsCGx1UTy7qEY/1dEqxezlZu1DtisoLJ9Y+BcjTVlE+596lo9cOXd3w==
dependencies:
calculate-cache-key-for-tree "^2.0.0"
ember-cli-babel "^7.19.0"
ember-cli-version-checker "^5.0.2"
ember-cli-babel "^7.26.4"
ember-cli-version-checker "^5.1.2"

ember-test-waiters@^1.1.1:
version "1.2.0"
Expand Down

0 comments on commit ecf8098

Please sign in to comment.