rsnext/packages/next
OJ Kwon 42e3365575
feat(next/swc): setup native next-swc crash reporter (#38076)
This PR attempts to setup native crash reporter for `next-swc`. Currently, it uses sentry internally, but it is subject to change depending on the usecase & needs. In any case it won't be breaking changes since this is not transparent to the end users.

PR sets up basic, minimal setup to collect crash reports only at the moment. We may want to expand & collect more data in native next-swc, but it is not clear what we need to collect / and I believe most cases next.js's js context can collect those data via existing telemetry. Crash report is an exception native handler can perform much better by having it in native context directly. While this is sent to different endpoint than telemetry, it is considered as same opt-in configuration. If telemetry is disabled, crash reporter won't collect as well. 

The information collected by the reporter is minimally configured by sentry's sdk. These are the informations collected for example: 

- device arch / family / model
- os kernel version / name / version
- runtime (rust) version / channel
- sentry sdk
- panic backtrace
- next.js release version
- device host name

There's no per-system uuid configurations yet.

It may need some audit if we need to omit some data included in above, while most of them seems ok to me.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [x] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm lint`
- [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
2022-06-28 23:49:21 +00:00
..
bin Drop experimental.reactRoot in favor of auto detection (#37956) 2022-06-23 18:33:16 +02:00
build feat(next/swc): setup native next-swc crash reporter (#38076) 2022-06-28 23:49:21 +00:00
bundles update webpack (#35867) 2022-04-07 16:00:26 +00:00
cli feat(cli): report eslint-config-next version in next info (#38062) 2022-06-27 14:04:47 -05:00
client Remove unnecessary <noscript> from next/future/image (#38080) 2022-06-28 00:58:50 +00:00
compiled Upgrade Edge Runtime (#38105) 2022-06-28 07:48:23 -05:00
export Drop experimental.reactRoot in favor of auto detection (#37956) 2022-06-23 18:33:16 +02:00
future Add experimental next/future/image component (#37927) 2022-06-24 14:56:05 +00:00
image-types Don't import internally from types in next-env.d.ts (#34394) 2022-02-19 04:25:49 +01:00
lib Rename page runtime edge to experimental-edge (#38041) 2022-06-26 20:02:24 -05:00
pages [Script] Allow next/script to be placed in _document body (#37894) 2022-06-27 17:56:53 +00:00
server fix(next/config): update default config for the experimental (#38123) 2022-06-28 21:20:29 +00:00
shared/lib Ensure client cache keys match between prefetch and transition (#38089) 2022-06-27 23:32:59 -05:00
telemetry Add experimental next/future/image component (#37927) 2022-06-24 14:56:05 +00:00
trace Small code improvements (#37227) 2022-05-26 23:19:47 +00:00
types Fix styled-jsx types when package is not hoisted (#37902) 2022-06-22 12:09:22 +00:00
amp.d.ts
amp.js
app.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
app.js
babel.d.ts
babel.js
client.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
client.js
config.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
config.js
constants.d.ts
constants.js
data.d.ts
data.js
data.sqlite
document.d.ts Fix document type import path (#32117) 2021-12-04 10:23:15 +00:00
document.js
dynamic.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
dynamic.js
error.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
error.js
head.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
head.js fix(#36435): apply correct fix (#36464) 2022-04-26 11:15:49 -05:00
image.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
image.js
index.d.ts Fix npm publish to include future folder (#37999) 2022-06-24 18:30:30 -05:00
jest.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
jest.js fix(#36534): enable interopClientDefaultExport for next/jest (#36824) 2022-05-11 13:13:13 -05:00
license.md Update license year 2022-01-13 16:02:34 +01:00
link.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
link.js
package.json v12.2.0 2022-06-28 09:21:07 -05:00
README.md
router.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
router.js
script.d.ts Improve exported root definitions (#32077) 2021-12-03 07:16:29 +00:00
script.js
server.d.ts Middleware: remove req.ua (#37512) 2022-06-09 11:10:21 +00:00
server.js Middleware: remove req.ua (#37512) 2022-06-09 11:10:21 +00:00
streaming.d.ts Group streaming experimental apis (#33878) 2022-02-02 13:42:14 +00:00
streaming.js Group streaming experimental apis (#33878) 2022-02-02 13:42:14 +00:00
taskfile-ncc.js Update to latest ncc and ensure caniuse-lite data is external (#32064) 2021-12-08 10:41:35 -06:00
taskfile-swc.js Revert "Enable externalHelpers when pre compiling Next.js' code" (#37829) 2022-06-19 13:19:23 -05:00
taskfile.js Fix styled-jsx types when package is not hoisted (#37902) 2022-06-22 12:09:22 +00:00
tsconfig.json Add experimental next/future/image component (#37927) 2022-06-24 14:56:05 +00:00

Next.js

Getting Started

Visit https://nextjs.org/learn to get started with Next.js.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Who is using Next.js?

Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.

Community

The Next.js community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the Next.js Discord.

Our Code of Conduct applies to all Next.js community channels.

Contributing

Please see our contributing.md.

Good First Issues

We have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.

Authors