Skip to content

Commit

Permalink
Merge branch 'develop' into feat/remix-fastify-adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
rustworthy committed Apr 27, 2024
2 parents 838de36 + d381ace commit 60ba722
Show file tree
Hide file tree
Showing 413 changed files with 8,455 additions and 7,238 deletions.
13 changes: 10 additions & 3 deletions .github/workflows/auto-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,27 @@ jobs:

# https://github.com/actions-ecosystem/action-regex-match
- uses: actions-ecosystem/action-regex-match@v2
id: version
id: version-regex
with:
# Parse version from head branch
text: ${{ github.head_ref }}
# match: preprare-release/xx.xx.xx
regex: '^prepare-release\/(\d+\.\d+\.\d+)(?:-(alpha|beta)\.\d+)?$'

- name: Extract version
id: get_version
run: |
version=${{ steps.version-regex.outputs.match }}
version=${version/'prepare-release/'/''}
echo "version=$version" >> $GITHUB_OUTPUT
- name: Prepare release
uses: getsentry/action-prepare-release@v1
if: github.event.pull_request.merged == true && steps.version.outputs.match != ''
if: github.event.pull_request.merged == true && steps.version-regex.outputs.match != '' && steps.get_version.outputs.version != ''
env:
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_PAT }}
with:
version: ${{ steps.version.outputs.group1 }}
version: ${{ steps.get_version.outputs.version }}
force: false
merge_target: master
craft_config_from_merge_target: true
50 changes: 7 additions & 43 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -768,40 +768,6 @@ jobs:
name: playwright-traces
path: dev-packages/browser-integration-tests/test-results

job_browser_integration_tests:
name: Browser (${{ matrix.browser }}) Tests
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_browser == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-20.04
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
browser:
- ChromeHeadless
- FirefoxHeadless
- WebkitHeadless
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
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: Restore caches
uses: ./.github/actions/restore-cache
env:
DEPENDENCY_CACHE_KEY: ${{ needs.job_build.outputs.dependency_cache_key }}
- name: Run integration tests
env:
KARMA_BROWSER: ${{ matrix.browser }}
run: |
cd packages/browser
[[ $KARMA_BROWSER == WebkitHeadless ]] && yarn run playwright install-deps webkit
yarn test:integration
job_browser_build_tests:
name: Browser Build Tests
needs: [job_get_metadata, job_build]
Expand Down Expand Up @@ -942,12 +908,10 @@ jobs:
# We want to run this if:
# - The build job was successful, not skipped
# - AND if the profiling node bindings were either successful or skipped
# AND if this is not a PR from a fork or dependabot
if: |
always() && needs.job_build.result == 'success' &&
(needs.job_compile_bindings_profiling_node.result == 'success' || needs.job_compile_bindings_profiling_node.result == 'skipped') &&
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
github.actor != 'dependabot[bot]'
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
needs: [job_get_metadata, job_build, job_compile_bindings_profiling_node]
runs-on: ubuntu-20.04-large-js
timeout-minutes: 15
Expand Down Expand Up @@ -1005,13 +969,11 @@ 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
# Dependabot PRs sadly also don't have access to secrets, so we skip them as well
# 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) &&
github.actor != 'dependabot[bot]'
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
needs: [job_get_metadata, job_build, job_e2e_prepare]
runs-on: ubuntu-20.04
timeout-minutes: 10
Expand All @@ -1036,6 +998,7 @@ jobs:
'create-next-app',
'create-remix-app',
'create-remix-app-v2',
'create-remix-app-express',
'create-remix-app-express-vite-dev',
'create-remix-app-fastify-vite',
'debug-id-sourcemaps',
Expand All @@ -1045,8 +1008,10 @@ jobs:
'react-create-hash-router',
'react-router-6-use-routes',
'standard-frontend-react',
'svelte-5',
'sveltekit',
'sveltekit-2',
'sveltekit-2-svelte-5',
'generic-ts3.8',
'node-fastify-app',
# TODO(v8): Re-enable hapi tests
Expand Down Expand Up @@ -1142,14 +1107,14 @@ jobs:
job_profiling_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
# Dependabot PRs sadly also don't have access to secrets, so we skip them as well
# Dependabot specifically also has access to secrets
# 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:
# Only run profiling e2e tests if profiling node bindings have changed
always() && needs.job_e2e_prepare.result == 'success' &&
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
github.actor != 'dependabot[bot]' && (
(
(needs.job_get_metadata.outputs.changed_profiling_node_bindings == 'true') ||
(needs.job_get_metadata.outputs.is_release == 'true') ||
(github.event_name != 'pull_request')
Expand Down Expand Up @@ -1241,7 +1206,6 @@ jobs:
job_nextjs_integration_test,
job_node_integration_tests,
job_browser_playwright_tests,
job_browser_integration_tests,
job_browser_loader_tests,
job_remix_integration_tests,
job_e2e_tests,
Expand Down
30 changes: 15 additions & 15 deletions .size-limit.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,35 +52,28 @@ module.exports = [
path: 'packages/browser/build/npm/esm/index.js',
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'feedbackIntegration'),
gzip: true,
limit: '83 KB',
limit: '87 KB',
},
{
name: '@sentry/browser (incl. Feedback)',
path: 'packages/browser/build/npm/esm/index.js',
import: createImport('init', 'feedbackIntegration'),
gzip: true,
limit: '37 KB',
},
{
name: '@sentry/browser (incl. Feedback, Feedback Modal)',
path: 'packages/browser/build/npm/esm/index.js',
import: createImport('init', 'feedbackIntegration', 'feedbackModalIntegration'),
gzip: true,
limit: '37 KB',
limit: '40 KB',
},
{
name: '@sentry/browser (incl. Feedback, Feedback Modal, Feedback Screenshot)',
name: '@sentry/browser (incl. sendFeedback)',
path: 'packages/browser/build/npm/esm/index.js',
import: createImport('init', 'feedbackIntegration', 'feedbackModalIntegration', 'feedbackScreenshotIntegration'),
import: createImport('init', 'sendFeedback'),
gzip: true,
limit: '40 KB',
limit: '28 KB',
},
{
name: '@sentry/browser (incl. sendFeedback)',
name: '@sentry/browser (incl. FeedbackAsync)',
path: 'packages/browser/build/npm/esm/index.js',
import: createImport('init', 'sendFeedback'),
import: createImport('init', 'feedbackAsyncIntegration'),
gzip: true,
limit: '30 KB',
limit: '33 KB',
},
// React SDK (ESM)
{
Expand Down Expand Up @@ -167,6 +160,13 @@ module.exports = [
brotli: false,
limit: '220 KB',
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed',
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
gzip: false,
brotli: false,
limit: '264 KB',
},
// Next.js SDK (ESM)
{
name: '@sentry/nextjs (client)',
Expand Down
154 changes: 154 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,50 @@

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

## 8.0.0-beta.4

### Important Changes

- **feat(browser): Add INP support for v8 (#11650)**

INP web vital support was now forward-ported to version 8. Recording of INP data is enabled by default.

- **feat(core): Increase default transport buffer size from 30 to 64 (#11764)**

The default limit of queued events to be sent was increased from 30 to 64 events. You may observe a higher memory
footprint of the SDK. You can override this limit by setting the `transportOptions.bufferSize` option in
`Sentry.init()`.

- **feat(replay): Add "maxCanvasSize" option for replay canvases (#11617)**

A `maxCanvasSize` option was added to the `replayCanvasIntegration` to disallow capturing of canvases larger than a
certain size. This value defaults to `1280` which will not capture canvases bigger than 1280x1280 pixels.

### Other Changes

- deps: Downgrade `@opentelemetry/instrumentation-http` to `0.48.0` (#11745)
- deps(nextjs): Remove unnecessary and faulty `@opentelemetry/api` dependency from Next.js package (#11717)
- feat(aws): Add OTEL based integrations (#11548)
- feat(core): Ensure trace context only includes relevant data (#11713)
- feat(deps): Bump @opentelemetry/instrumentation-fastify from 0.33.0 to 0.35.0 (#11690)
- feat(deps): Bump @opentelemetry/instrumentation-graphql from 0.37.0 to 0.39.0 (#11692)
- feat(deps): Bump @opentelemetry/instrumentation-http from 0.48.0 to 0.50.0 (#11725)
- feat(deps): Bump @opentelemetry/instrumentation-mongoose from 0.35.0 to 0.37.0 (#11693)
- feat(deps): Bump @opentelemetry/instrumentation-mysql2 from 0.35.0 to 0.37.0 (#11726)
- feat(deps): Bump @opentelemetry/instrumentation-nestjs-core from 0.34.0 to 0.36.0 (#11727)
- feat(deps): Bump @opentelemetry/sdk-metrics from 1.21.0 to 1.23.0 (#11695)
- feat(deps): Bump @prisma/instrumentation from 5.9.0 to 5.12.1 (#11724)
- feat(feedback): Create async bundles and code to resolve helper integrations (#11621)
- feat(nextjs): Sample out low-quality spans on older Next.js versions (#11722)
- feat(opentelemetry): Support new http method attribute (#11756)
- feat(opentelemetry): Use rest args for addOpenTelemetryInstrumentation (#11721)
- feat(replay): Upgrade rrweb packages to 2.15.0 (#11736)
- fix(browser): Ensure `lazyLoadIntegration` works in NPM mode (#11673)
- fix(browser): Set custom sentry source correctly (#11735)
- fix(ember): Do not create rendering spans without transaction (#11749)
- fix(serverless): Check if cloud event callback is a function (#9044) (#11701)
- ref(nextjs): Remove unnecessary logic to filter symbolification/sentry spans (#11714)

## 8.0.0-beta.3

### Important Changes
Expand Down Expand Up @@ -807,6 +851,116 @@ We have also removed or updated a variety of deprecated APIs.
- ref: Remove usage of span tags (#10808)
- ref: Remove user segment (#10575)

## 7.112.2

- fix(nextjs|sveltekit): Ensure we can pass `browserTracingIntegration` (#11765)

## 7.112.1

- fix(ember/v7): Do not create rendering spans without transaction (#11750)

## 7.112.0

### Important Changes

- **feat: Export pluggable integrations from SDK packages (#11723)**

Instead of installing `@sentry/integrations`, you can now import the pluggable integrations directly from your SDK
package:

```js
// Before
import * as Sentry fromv '@sentry/browser';
import { dedupeIntegration } from '@sentry/integrations';

Sentry.init({
integrations: [dedupeIntegration()],
});

// After
import * as Sentry from '@sentry/browser';

Sentry.init({
integrations: [Sentry.dedupeIntegration()],
});
```

Note that only the functional integrations (e.g. `xxxIntegration()`) are re-exported.

### Other Changes

- feat(replay): Add "maxCanvasSize" option for replay canvases (#11732)
- fix(serverless): [v7] Check if cloud event callback is a function (#11734)

## 7.111.0

- feat(core): Add `server.address` to browser `http.client` spans (#11663)
- fix: Ensure next & sveltekit correctly handle `browserTracingIntegration` (#11647)
- fix(browser): Don't assume window.document is available (#11598)

## 7.110.1

- fix(nextjs): Fix `tunnelRoute` matching logic for hybrid cloud (#11577)

## 7.110.0

### Important Changes

- **feat(tracing): Add interactions sample rate to browser tracing integrations (#11382)**

You can now use a `interactionsSampleRate` to control the sample rate of INP spans. `interactionsSampleRate` is applied
on top of the global `tracesSampleRate`. Therefore if `interactionsSampleRate` is `0.5` and `tracesSampleRate` is `0.1`,
then the actual sample rate for interactions is `0.05`.

```js
Sentry.init({
tracesSampleRate: 0.1,
integrations: [
Sentry.browserTracingIntegration({
interactionsSampleRate: 0.5,
}),
],
});
```

- **Deprecations**

This release deprecates the `Hub` class, as well as the `addRequestDataToTransaction` method. The `trpcMiddleware`
method is no longer on the `Handlers` export, but instead is a standalone export.

Please see the detailed [Migration docs](./MIGRATION.md#deprecations-in-7x) on how to migrate to the new APIs.

- feat: Deprecate and relocate `trpcMiddleware` (#11389)
- feat(core): Deprecate `Hub` class (#11528)
- feat(types): Deprecate `Hub` interface (#11530)
- ref: Deprecate `addRequestDataToTransaction` (#11368)

### Other Changes

- feat(core): Update metric normalization (#11519)
- feat(feedback): Customize feedback placeholder text color (#11521)
- feat(remix): Skip span creation for `OPTIONS` and `HEAD` request. (#11485)
- feat(utils): Add metric buckets rate limit (#11506)
- fix(core): unref timer to not block node exit (#11483)
- fix(metrics): Map `statsd` to `metric_bucket` (#11505)
- fix(spans): Allow zero exclusive time for INP spans (#11408)
- ref(feedback): Configure feedback fonts (#11520)

## 7.109.0

This release deprecates some exports from the `@sentry/replay` package. These exports have been moved to the browser SDK
(or related framework SDKs like `@sentry/react`).

- feat(feedback): Make "required" text for input elements configurable (#11287)
- feat(node): Add scope to ANR events (#11267)
- feat(replay): Bump `rrweb` to 2.12.0 (#11317)
- fix(node): Local variables skipped after Promise (#11248)
- fix(node): Skip capturing Hapi Boom error responses (#11324)
- fix(web-vitals): Check for undefined navigation entry (#11312)
- ref(replay): Deprecate `@sentry/replay` exports (#11242)

Work in this release contributed by @soerface. Thank you for your contribution!

## 7.108.0

This release fixes issues with Time to First Byte (TTFB) calculation in the SDK that was introduced with `7.95.0`. It
Expand Down

0 comments on commit 60ba722

Please sign in to comment.