Skip to content

meta(changelog): Update changelog for 8.15.0 #12777

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 18 commits into from
Jul 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
993acd4
test: Fix e2e test race condition by buffering events (#12739)
Jul 4, 2024
77ce28a
test(remix): Update remix E2E tests to avoid sending to Sentry (#12750)
mydea Jul 4, 2024
ddb539c
Merge pull request #12753 from getsentry/master
github-actions[bot] Jul 4, 2024
506e6ca
feat(core): allow unregistering callback through `on` (#11710)
arturovt Jul 4, 2024
ef7e5b6
fix(tracing): Report dropped spans for transactions (#12751)
mydea Jul 4, 2024
dc2659c
test(ember): Update ember tests to use E2E structure (#11827)
mydea Jul 4, 2024
8c0631a
test(e2e): Do not require DSN to run E2E tests (#12743)
mydea Jul 4, 2024
4018f80
fix(hapi): Specify error channel to filter boom errors (#12725)
s1gr1d Jul 4, 2024
e0adb41
ref(scope): Delete unused public `getStack()` (#12737)
s1gr1d Jul 4, 2024
f8f3c98
docs(e2e): Be more explicit about when to run yarn build:tarball in e…
nicohrubec Jul 4, 2024
41d946e
feat(nestjs): Add function-level span decorator to nestjs (#12721)
nicohrubec Jul 4, 2024
b4d6469
feat(otel): Export & use `spanTimeInputToSeconds` for otel span expor…
onurtemizkan Jul 4, 2024
eedd7c0
ci: Fix external contributor workflow (#12755)
mydea Jul 4, 2024
0bad43b
fix(deno): Publish from build directory (#12773)
AbhiPrasad Jul 5, 2024
0951036
build: Ensure we use pnpm 9.4.0 everywhere on CI (#12772)
mydea Jul 5, 2024
1845bf4
fix(core): Pass origin as referrer for `lazyLoadIntegration` (#12766)
jaulz Jul 5, 2024
69b6531
fix(react): Revert back to `jsxRuntime: 'classic'` to prevent breakin…
andreiborza Jul 5, 2024
1af7d0a
meta(changelog): Update changelog for 8.15.0
andreiborza Jul 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 25 additions & 18 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ jobs:
- 'packages/rollup-utils/**'
- 'packages/utils/**'
- 'packages/types/**'
- 'dev-packages/test-utils/**'
browser: &browser
- *shared
- 'packages/browser/**'
Expand Down Expand Up @@ -970,22 +971,19 @@ jobs:

job_e2e_tests:
name: E2E ${{ matrix.label || matrix.test-application }} Test
# We only run E2E tests for non-fork PRs because the E2E tests require secrets to work and they can't be accessed from forks
# We need to add the `always()` check here because the previous step has this as well :(
# See: https://github.com/actions/runner/issues/2205
if:
always() && needs.job_e2e_prepare.result == 'success' &&
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
if: always() && needs.job_e2e_prepare.result == 'success'
needs: [job_get_metadata, job_build, job_e2e_prepare]
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
E2E_TEST_AUTH_TOKEN: ${{ secrets.E2E_TEST_AUTH_TOKEN }}
E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
# We just use a dummy DSN here, only send to the tunnel anyhow
E2E_TEST_DSN: 'https://username@domain/123'
# Needed because some apps expect a certain prefix
NEXT_PUBLIC_E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
PUBLIC_E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
REACT_APP_E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
NEXT_PUBLIC_E2E_TEST_DSN: 'https://username@domain/123'
PUBLIC_E2E_TEST_DSN: 'https://username@domain/123'
REACT_APP_E2E_TEST_DSN: 'https://username@domain/123'
E2E_TEST_SENTRY_ORG_SLUG: 'sentry-javascript-sdks'
E2E_TEST_SENTRY_PROJECT: 'sentry-javascript-e2e-tests'
strategy:
Expand Down Expand Up @@ -1014,6 +1012,8 @@ jobs:
'node-express-esm-without-loader',
'node-express-cjs-preload',
'node-otel-sdk-node',
'ember-classic',
'ember-embroider',
'nextjs-app-dir',
'nextjs-14',
'nextjs-15',
Expand Down Expand Up @@ -1069,7 +1069,7 @@ jobs:
ref: ${{ env.HEAD_COMMIT }}
- uses: pnpm/action-setup@v4
with:
version: 8.3.1
version: 9.4.0
- name: Set up Node
uses: actions/setup-node@v4
with:
Expand Down Expand Up @@ -1106,12 +1106,12 @@ jobs:
- name: Build E2E app
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
timeout-minutes: 5
run: yarn ${{ matrix.build-command || 'test:build' }}
run: pnpm ${{ matrix.build-command || 'test:build' }}

- name: Run E2E test
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
timeout-minutes: 5
run: yarn test:assert
run: pnpm test:assert

- name: Deploy Astro to Cloudflare
uses: cloudflare/pages-action@v1
Expand Down Expand Up @@ -1146,8 +1146,6 @@ jobs:
strategy:
fail-fast: false
matrix:
is_dependabot:
- ${{ github.actor == 'dependabot[bot]' }}
test-application:
[
'react-send-to-sentry',
Expand All @@ -1156,8 +1154,17 @@ jobs:
]
build-command:
- false
assert-command:
- false
label:
- false
include:
- test-application: 'create-remix-app'
assert-command: 'test:assert-sourcemaps'
label: 'create-remix-app (sourcemaps)'
- test-application: 'create-remix-app-legacy'
assert-command: 'test:assert-sourcemaps'
label: 'create-remix-app-legacy (sourcemaps)'

steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
Expand All @@ -1166,7 +1173,7 @@ jobs:
ref: ${{ env.HEAD_COMMIT }}
- uses: pnpm/action-setup@v4
with:
version: 8.3.1
version: 9.4.0
- name: Set up Node
uses: actions/setup-node@v4
with:
Expand Down Expand Up @@ -1200,12 +1207,12 @@ jobs:
- name: Build E2E app
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
timeout-minutes: 5
run: yarn ${{ matrix.build-command || 'test:build' }}
run: pnpm ${{ matrix.build-command || 'test:build' }}

- name: Run E2E test
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
timeout-minutes: 5
run: yarn test:assert
run: pnpm ${{ matrix.assert-command || 'test:assert' }}

job_profiling_e2e_tests:
name: E2E ${{ matrix.label || matrix.test-application }} Test
Expand Down Expand Up @@ -1245,7 +1252,7 @@ jobs:
ref: ${{ env.HEAD_COMMIT }}
- uses: pnpm/action-setup@v4
with:
version: 8.3.1
version: 9.4.0
- name: Set up Node
uses: actions/setup-node@v4
with:
Expand Down
56 changes: 7 additions & 49 deletions .github/workflows/canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 20
env:
E2E_TEST_AUTH_TOKEN: ${{ secrets.E2E_TEST_AUTH_TOKEN }}
E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
# Needed because certain apps expect a certain prefix
NEXT_PUBLIC_E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
PUBLIC_E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
REACT_APP_E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
# We just use a dummy DSN here, only send to the tunnel anyhow
E2E_TEST_DSN: 'https://username@domain/123'
# Needed because some apps expect a certain prefix
NEXT_PUBLIC_E2E_TEST_DSN: 'https://username@domain/123'
PUBLIC_E2E_TEST_DSN: 'https://username@domain/123'
REACT_APP_E2E_TEST_DSN: 'https://username@domain/123'
E2E_TEST_SENTRY_ORG_SLUG: 'sentry-javascript-sdks'
E2E_TEST_SENTRY_PROJECT: 'sentry-javascript-e2e-tests'
strategy:
Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
ref: ${{ env.HEAD_COMMIT }}
- uses: pnpm/action-setup@v4
with:
version: 8.3.1
version: 9.4.0

- name: Set up Node
uses: actions/setup-node@v4
Expand Down Expand Up @@ -151,45 +151,3 @@ jobs:
with:
filename: .github/CANARY_FAILURE_TEMPLATE.md
update_existing: true

job_ember_canary_test:
name: Ember Canary Tests
runs-on: ubuntu-20.04
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
# scenario: [ember-release, embroider-optimized, ember-4.0]
scenario: [ember-4.0]
steps:
- name: 'Check out current commit'
uses: actions/checkout@v4
with:
ref: ${{ env.HEAD_COMMIT }}
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
- name: Install dependencies
run: yarn install --ignore-engines --frozen-lockfile

- name: Build dependencies
run: |
yarn lerna run build:types --scope=@sentry/ember --include-dependencies
yarn lerna run build:transpile --scope=@sentry/ember --include-dependencies

- name: Run Ember tests
run: |
cd packages/ember
yarn ember try:one ${{ matrix.scenario }} --skip-cleanup=true

- name: Create Issue
if: failure() && github.event_name == 'schedule'
uses: JasonEtco/create-an-issue@1b14a70e4d8dc185e5cc76d3bec9eab20257b2c5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RUN_LINK: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
TITLE: Ember Canary ${{ matrix.scenario }} Test Failed
with:
filename: .github/CANARY_FAILURE_TEMPLATE.md
update_existing: true
2 changes: 0 additions & 2 deletions .github/workflows/external-contributors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ jobs:
&& github.actor != 'dependabot[bot]'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Set up Node
uses: actions/setup-node@v4
with:
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@

- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott

## 8.15.0

- feat(core): allow unregistering callback through `on` (#11710)
- feat(nestjs): Add function-level span decorator to nestjs (#12721)
- feat(otel): Export & use `spanTimeInputToSeconds` for otel span exporter (#12699)
- fix(core): Pass origin as referrer for `lazyLoadIntegration` (#12766)
- fix(deno): Publish from build directory (#12773)
- fix(hapi): Specify error channel to filter boom errors (#12725)
- fix(react): Revert back to `jsxRuntime: 'classic'` to prevent breaking react 17 (#12775)
- fix(tracing): Report dropped spans for transactions (#12751)
- ref(scope): Delete unused public `getStack()` (#12737)

Work in this release was contributed by @arturovt and @jaulz. Thank you for your contributions!

## 8.14.0

### Important Changes
Expand Down
8 changes: 6 additions & 2 deletions dev-packages/e2e-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ current state.
Prerequisites: Docker

- Copy `.env.example` to `.env`
- Fill in auth information in `.env` for an example Sentry project
- Run `yarn build:tarball` in the root of the repository
- OPTIONAL: Fill in auth information in `.env` for an example Sentry project - you only need this to run E2E tests that
send data to Sentry.
- Run `yarn build:tarball` in the root of the repository (needs to be rerun after every update in /packages for the
changes to have effect on the tests).

To finally run all of the tests:

Expand Down Expand Up @@ -90,6 +92,8 @@ test apps enables us to reuse the same test suite over a number of different fra

### Standardized Frontend Test Apps

TODO: This is not up to date.

A standardized frontend test application has the following features:

- Just for the sake of consistency we prefix the standardized frontend tests with `standard-frontend-`. For example
Expand Down
33 changes: 0 additions & 33 deletions dev-packages/e2e-tests/lib/validate.ts

This file was deleted.

5 changes: 0 additions & 5 deletions dev-packages/e2e-tests/prepare.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
/* eslint-disable no-console */
import * as dotenv from 'dotenv';

import { validate } from './lib/validate';
import { registrySetup } from './registrySetup';

async function run(): Promise<void> {
// Load environment variables from .env file locally
dotenv.config();

if (!validate()) {
process.exit(1);
}

try {
registrySetup();
} catch (error) {
Expand Down
23 changes: 15 additions & 8 deletions dev-packages/e2e-tests/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ import { resolve } from 'path';
import * as dotenv from 'dotenv';
import { sync as globSync } from 'glob';

import { validate } from './lib/validate';
import { registrySetup } from './registrySetup';

const DEFAULT_DSN = 'https://username@domain/123';
const DEFAULT_SENTRY_ORG_SLUG = 'sentry-javascript-sdks';
const DEFAULT_SENTRY_PROJECT = 'sentry-javascript-e2e-tests';

function asyncExec(command: string, options: { env: Record<string, string | undefined>; cwd: string }): Promise<void> {
return new Promise((resolve, reject) => {
const process = spawn(command, { ...options, shell: true });
Expand Down Expand Up @@ -39,17 +42,21 @@ async function run(): Promise<void> {
// Allow to run a single app only via `yarn test:run <app-name>`
const appName = process.argv[2];

if (!validate()) {
process.exit(1);
}
const dsn = process.env.E2E_TEST_DSN || DEFAULT_DSN;

const envVarsToInject = {
NEXT_PUBLIC_E2E_TEST_DSN: process.env.E2E_TEST_DSN,
PUBLIC_E2E_TEST_DSN: process.env.E2E_TEST_DSN,
REACT_APP_E2E_TEST_DSN: process.env.E2E_TEST_DSN,
E2E_TEST_DSN: dsn,
NEXT_PUBLIC_E2E_TEST_DSN: dsn,
PUBLIC_E2E_TEST_DSN: dsn,
REACT_APP_E2E_TEST_DSN: dsn,
E2E_TEST_SENTRY_ORG_SLUG: process.env.E2E_TEST_SENTRY_ORG_SLUG || DEFAULT_SENTRY_ORG_SLUG,
E2E_TEST_SENTRY_PROJECT: process.env.E2E_TEST_SENTRY_PROJECT || DEFAULT_SENTRY_PROJECT,
};

const env = { ...process.env, ...envVarsToInject };
const env = {
...process.env,
...envVarsToInject,
};

try {
console.log('Cleaning test-applications...');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
"devDependencies": {
"@sentry-internal/test-utils": "link:../../../test-utils",
"@playwright/test": "^1.41.1",
"@playwright/test": "^1.44.1",
"wait-port": "1.0.4"
},
"volta": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ import { startEventProxyServer } from '@sentry-internal/test-utils';
startEventProxyServer({
port: 3031,
proxyServerName: 'aws-serverless-lambda-layer-cjs',
forwardToSentry: false,
});
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
import { expect, test } from '@playwright/test';
import { waitForTransaction } from '@sentry-internal/test-utils';

const authToken = process.env.E2E_TEST_AUTH_TOKEN;
const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG;
const sentryTestProject = process.env.E2E_TEST_SENTRY_PROJECT;
const EVENT_POLLING_TIMEOUT = 90_000;

test('Sends server-side transactions to Sentry', async ({ baseURL }) => {
const transactionEventPromise = waitForTransaction('create-next-app', transactionEvent => {
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,6 @@ Sentry.init({
tunnel: 'http://localhost:3031/', // proxy server
});

Sentry.addEventProcessor(event => {
if (
event.type === 'transaction' &&
(event.contexts?.trace?.op === 'pageload' || event.contexts?.trace?.op === 'navigation')
) {
const eventId = event.event_id;
if (eventId) {
window.recordedTransactions = window.recordedTransactions || [];
window.recordedTransactions.push(eventId);
}
}

return event;
});

startTransition(() => {
hydrateRoot(
document,
Expand Down
Loading
Loading