Skip to content

meta(changelog): Update changelog for 8.20.0 #13036

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 24, 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
231fc00
feat(express): Allow to pass options to `setupExpressErrorHandler` (#…
mydea Jul 19, 2024
a49b2b9
chore(repo): Add internal blank issue template (#12986)
Lms24 Jul 19, 2024
eb23dc4
Merge pull request #12988 from getsentry/master
github-actions[bot] Jul 19, 2024
81e20c3
feat(node): Allow to pass `registerEsmLoaderHooks` to preload (#12998)
mydea Jul 22, 2024
849d1cf
feat(node): Send client reports (#12951)
lforst Jul 22, 2024
c48d87c
test(nuxt): Add Nuxt 3 E2E test for client-side (#13002)
s1gr1d Jul 22, 2024
5a709df
fix(node): Do not emit fetch spans when tracing is disabled (#13003)
mydea Jul 23, 2024
f867cc0
feat(nuxt): Automatically add BrowserTracing (#13005)
s1gr1d Jul 23, 2024
b577079
feat(nestjs): Change nest sdk setup (#12920)
nicohrubec Jul 23, 2024
1a5e3e3
test(e2e): Remove experimental intrumentation flag for Next.js `onReq…
lforst Jul 23, 2024
edea287
chore(google-cloud): Update private key used for tests (#13023)
AbhiPrasad Jul 23, 2024
65042b5
feat(feedback): Trigger button aria label configuration (#13008)
c298lee Jul 23, 2024
04a26a4
feat(node): Extend ESM hooks options for iitm v1.10.0 (#13016)
timfish Jul 23, 2024
b2dded8
test(solid): Switch to explicit vitest imports (#13028)
AbhiPrasad Jul 24, 2024
4bdd979
feat(replay): Improve public Replay APIs (#13000)
chargome Jul 24, 2024
aaaedbc
docs(nuxt): Add readme docs for server-side setup (ESM) (#13019)
s1gr1d Jul 24, 2024
ea07ec7
feat(nuxt): Setup source maps with vite config (#13018)
s1gr1d Jul 24, 2024
84f6fee
meta(changelog): Update changelog for 8.20.0
s1gr1d Jul 24, 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
9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: 💡 [Internal] Blank Issue
description: Only for Sentry Employees! Create an issue without a template.
body:
- type: textarea
id: description
attributes:
label: Description
validations:
required: true
3 changes: 3 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1010,12 +1010,15 @@ jobs:
'generic-ts3.8',
'node-fastify',
'node-hapi',
'node-nestjs-basic',
'node-nestjs-distributed-tracing',
'nestjs-basic',
'nestjs-distributed-tracing',
'nestjs-with-submodules',
'node-exports-test-app',
'node-koa',
'node-connect',
'nuxt-3',
'vue-3',
'webpack-4',
'webpack-5'
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,29 @@

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

## 8.20.0

### Important Changes

- **feat(node): Allow to pass `registerEsmLoaderHooks` to preload (#12998)**

You can write your own custom preload script and configure this in the preload options. `registerEsmLoaderHooks` can be
passed as an option to `preloadOpenTelemetry`, which allows to exclude/include packages in the preload.

- **fix(node): Do not emit fetch spans when tracing is disabled (#13003)**

Sentry will not emit "fetch" spans if tracing is disabled. This is relevant for user who use their own sampler.

### Other Changes

- feat(feedback): Trigger button aria label configuration (#13008)
- feat(nestjs): Change nest sdk setup (#12920)
- feat(node): Extend ESM hooks options for iitm v1.10.0 (#13016)
- feat(node): Send client reports (#12951)
- feat(nuxt): Automatically add BrowserTracing (#13005)
- feat(nuxt): Setup source maps with vite config (#13018)
- feat(replay): Improve public Replay APIs (#13000)

## 8.19.0

- feat(core): Align Span interface with OTEL (#12898)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { SentryModule } from '@sentry/nestjs/setup';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
imports: [ScheduleModule.forRoot()],
imports: [SentryModule.forRoot(), ScheduleModule.forRoot()],
controllers: [AppController],
providers: [AppService],
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,13 @@
import './instrument';

// Import other modules
import { BaseExceptionFilter, HttpAdapterHost, NestFactory } from '@nestjs/core';
import * as Sentry from '@sentry/nestjs';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

const PORT = 3030;

async function bootstrap() {
const app = await NestFactory.create(AppModule);

const { httpAdapter } = app.get(HttpAdapterHost);
Sentry.setupNestErrorHandler(app, new BaseExceptionFilter(httpAdapter));

await app.listen(PORT);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"noImplicitAny": false,
"strictBindCallApply": false,
"forceConsistentCasingInFileNames": false,
"noFallthroughCasesInSwitch": false
"noFallthroughCasesInSwitch": false,
"moduleResolution": "Node16"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
import './instrument';

// Import other modules
import { BaseExceptionFilter, HttpAdapterHost, NestFactory } from '@nestjs/core';
import * as Sentry from '@sentry/nestjs';
import { NestFactory } from '@nestjs/core';
import { TraceInitiatorModule } from './trace-initiator.module';
import { TraceReceiverModule } from './trace-receiver.module';

Expand All @@ -12,10 +11,6 @@ const TRACE_RECEIVER_PORT = 3040;

async function bootstrap() {
const trace_initiator_app = await NestFactory.create(TraceInitiatorModule);

const { httpAdapter } = trace_initiator_app.get(HttpAdapterHost);
Sentry.setupNestErrorHandler(trace_initiator_app, new BaseExceptionFilter(httpAdapter));

await trace_initiator_app.listen(TRACE_INITIATOR_PORT);

const trace_receiver_app = await NestFactory.create(TraceReceiverModule);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Module } from '@nestjs/common';
import { SentryModule } from '@sentry/nestjs/setup';
import { TraceInitiatorController } from './trace-initiator.controller';
import { TraceInitiatorService } from './trace-initiator.service';

@Module({
imports: [],
imports: [SentryModule.forRoot()],
controllers: [TraceInitiatorController],
providers: [TraceInitiatorService],
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
import { Module } from '@nestjs/common';
import { SentryModule } from '@sentry/nestjs/setup';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ExampleModule } from './example-module/example.module';
import { ExampleModuleGlobalFilterWrongRegistrationOrder } from './example-module-global-filter-wrong-registration-order/example.module';
import { ExampleModuleGlobalFilter } from './example-module-global-filter/example.module';
import { ExampleModuleLocalFilter } from './example-module-local-filter/example.module';

@Module({
imports: [ExampleModule],
imports: [
ExampleModuleGlobalFilterWrongRegistrationOrder,
SentryModule.forRoot(),
ExampleModuleGlobalFilter,
ExampleModuleLocalFilter,
],
controllers: [AppController],
providers: [AppService],
})
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Controller, Get } from '@nestjs/common';
import { ExampleExceptionWrongRegistrationOrder } from './example.exception';

@Controller('example-module-wrong-order')
export class ExampleController {
constructor() {}

@Get('/expected-exception')
getCaughtException(): string {
throw new ExampleExceptionWrongRegistrationOrder();
}

@Get('/unexpected-exception')
getUncaughtException(): string {
throw new Error(`This is an uncaught exception!`);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export class ExampleExceptionWrongRegistrationOrder extends Error {
constructor() {
super('Something went wrong in the example module!');
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { ArgumentsHost, BadRequestException, Catch } from '@nestjs/common';
import { BaseExceptionFilter } from '@nestjs/core';
import { ExampleExceptionWrongRegistrationOrder } from './example.exception';

@Catch(ExampleExceptionWrongRegistrationOrder)
export class ExampleExceptionFilterWrongRegistrationOrder extends BaseExceptionFilter {
catch(exception: unknown, host: ArgumentsHost) {
if (exception instanceof ExampleExceptionWrongRegistrationOrder) {
return super.catch(new BadRequestException(exception.message), host);
}
return super.catch(exception, host);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Module } from '@nestjs/common';
import { APP_FILTER } from '@nestjs/core';
import { ExampleController } from './example.controller';
import { ExampleExceptionFilterWrongRegistrationOrder } from './example.filter';

@Module({
imports: [],
controllers: [ExampleController],
providers: [
{
provide: APP_FILTER,
useClass: ExampleExceptionFilterWrongRegistrationOrder,
},
],
})
export class ExampleModuleGlobalFilterWrongRegistrationOrder {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Controller, Get } from '@nestjs/common';
import * as Sentry from '@sentry/nestjs';
import { ExampleException } from './example.exception';

@Controller('example-module')
export class ExampleController {
constructor() {}

@Get('/expected-exception')
getCaughtException(): string {
throw new ExampleException();
}

@Get('/unexpected-exception')
getUncaughtException(): string {
throw new Error(`This is an uncaught exception!`);
}

@Get('/transaction')
testTransaction() {
Sentry.startSpan({ name: 'test-span' }, () => {
Sentry.startSpan({ name: 'child-span' }, () => {});
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ import { ExampleExceptionFilter } from './example.filter';
},
],
})
export class ExampleModule {}
export class ExampleModuleGlobalFilter {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Controller, Get, UseFilters } from '@nestjs/common';
import { LocalExampleException } from './example.exception';
import { LocalExampleExceptionFilter } from './example.filter';

@Controller('example-module-local-filter')
@UseFilters(LocalExampleExceptionFilter)
export class ExampleControllerLocalFilter {
constructor() {}

@Get('/expected-exception')
getCaughtException() {
throw new LocalExampleException();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export class LocalExampleException extends Error {
constructor() {
super('Something went wrong in the example module with local filter!');
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { ArgumentsHost, BadRequestException, Catch } from '@nestjs/common';
import { BaseExceptionFilter } from '@nestjs/core';
import { LocalExampleException } from './example.exception';

@Catch(LocalExampleException)
export class LocalExampleExceptionFilter extends BaseExceptionFilter {
catch(exception: unknown, host: ArgumentsHost) {
if (exception instanceof LocalExampleException) {
return super.catch(new BadRequestException(exception.message), host);
}
return super.catch(exception, host);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Module } from '@nestjs/common';
import { ExampleControllerLocalFilter } from './example.controller';

@Module({
imports: [],
controllers: [ExampleControllerLocalFilter],
providers: [],
})
export class ExampleModuleLocalFilter {}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,13 @@
import './instrument';

// Import other modules
import { BaseExceptionFilter, HttpAdapterHost, NestFactory } from '@nestjs/core';
import * as Sentry from '@sentry/nestjs';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

const PORT = 3030;

async function bootstrap() {
const app = await NestFactory.create(AppModule);

const { httpAdapter } = app.get(HttpAdapterHost);
Sentry.setupNestErrorHandler(app, new BaseExceptionFilter(httpAdapter));

await app.listen(PORT);
}

Expand Down
Loading
Loading