Skip to content
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

meta: Update Changelog for 7.59.0 #8560

Merged
merged 14 commits into from
Jul 17, 2023
Merged

meta: Update Changelog for 7.59.0 #8560

merged 14 commits into from
Jul 17, 2023

Commits on Jul 13, 2023

  1. Merge pull request #8525 from getsentry/master

    [Gitflow] Merge master into develop
    github-actions[bot] authored Jul 13, 2023
    Configuration menu
    Copy the full SHA
    4ba98e2 View commit details
    Browse the repository at this point in the history
  2. feat(remix): Add Remix v2 support (#8415)

    Adds support for new error handling utilities of Remix v2.
    ([ErrorBoundary](https://remix.run/docs/en/main/route/error-boundary-v2),
    [handleError](https://github.com/remix-run/remix/releases/tag/remix%401.17.0))
    
    ## `ErrorBoundary` v2
    
    Remix's `ErrorBoundary` captures all client / server / SSR errors and
    shows a customizable error page.
    In v1, to capture client-side errors we were wrapping the whole Remix
    application with `@sentry/react`s `ErrorBoundary` which caused
    inconsistencies in error pages. (See:
    #5762)
    
    v2 implementation does not wrap user's application with
    `@sentry/react`'s ErrorBoundary, instead it exports a capturing utility
    to be used inside the Remix application's `ErrorBoundary` function.
    
    Can be used like:
    
    ```typescript
    import { captureRemixErrorBoundaryError } from '@sentry/remix';
    
    export const ErrorBoundary: V2_ErrorBoundaryComponent = () => {
      const error = useRouteError();
    
      captureRemixErrorBoundaryError(error);
    
      return <div> ... </div>;
    };
    ```
    
    It also requires `v2_errorBoundary` [future
    flag](https://remix.run/docs/en/1.18.0/pages/api-development-strategy#current-future-flags)
    to be enabled.
    
    ## `handleError`
    
    For server-side errors apart from 'Error Responses' (thrown responses
    are handled in `ErrorBoundary`), this implementation exports another
    utility to be used in `handleError` function. The errors we capture in
    `handleError` also appear on `ErrorBoundary` functions but stacktraces
    are not available. So, we skip those errors in
    `captureRemixErrorBoundaryError` function.
    
    `handleError` can be instrumented as below:
    
    ```typescript
    
    export function handleError(error: unknown, { request }: DataFunctionArgs): void {
      if (error instanceof Error) {
        Sentry.captureRemixServerException(error, 'remix.server', request);
      } else {
        // Optionally
        Sentry.captureException(error);
      }
    ```
    onurtemizkan authored Jul 13, 2023
    Configuration menu
    Copy the full SHA
    2c3066e View commit details
    Browse the repository at this point in the history
  3. feat(core): Add ModuleMetadata integration (#8475)

    - Adds the `ModuleMetadata` integration that fetches metadata injected via bundler plugins and attaches is to the `module_metadata` property of every `StackFrame`. 
      - This can later be used in `beforeSend` or another integration to route events depending on the metadata.
      - This integration is 
        - Exported separately from `@sentry/core` (ie. not in `Integrations`) so it doesn't get included in default bundles
        - Exported separately from `@sentry/browser` so that it can be used without depending directly on core
    - Uses the `beforeEnvelope` hook to strip the `module_metadata` property from stack frames
    - Adds a test to ensure `module_metadata` is available in `beforeSend` and is stripped before sending
    timfish authored Jul 13, 2023
    Configuration menu
    Copy the full SHA
    2b4121f View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2023

  1. test(nextjs): Pin Nextjs 13 integration tests to [email protected] (#8551)

    As long as our SDK and `[email protected]` aren't compatible, we need to
    hard-pin our NextJS integration tests to `13.4.9` to unblock our CI.
    
    We need to revert this change once we figured out 13.4.10! (Set a reminder
    for myself)
    Lms24 authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    69a4fa3 View commit details
    Browse the repository at this point in the history
  2. fix(replay): Handle errors in beforeAddRecordingEvent callback (#8548)

    When an error occurs in `beforeAddRecordingEvent`, we just skip this
    event and log the error.
    
    Closes #8542
    mydea authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    c2b1bfd View commit details
    Browse the repository at this point in the history
  3. fix(replay): Better session storage check (#8547)

    Apparently accessing sessionStorage in an iframe with certain
    permissions can result in a throw, so we try-catch this to ensure we do
    not produce any errors.
    
    Closes #8392
    mydea authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    6444b34 View commit details
    Browse the repository at this point in the history
  4. build: Ensure build:dev:watch commands work (#8553)

    Noticed the commands are a bit off, so fixed them!
    mydea authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    459c5d2 View commit details
    Browse the repository at this point in the history
  5. fix(otel): Use HTTP_URL attribute for client requests (#8539)

    Turns out, `HTTP_TARGET` is always the relative path, even for outgoing
    requests, which omits the host. So we handle this specifically now here.
    
    While at it (and as I'm working a bit in this codebase), I also renamed
    the files from kebap-case to camelCase, to align with the rest of the
    codebase better - unless there was a specific reason to use that here
    @AbhiPrasad ?
    
    Closes #8535
    mydea authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    2919511 View commit details
    Browse the repository at this point in the history
  6. fix(nextjs): Avoid importing SentryWebpackPlugin in dev mode (#8557)

    As reported in #8541, our NextJS SDK currently breaks dev mode for the
    newest NextJS 13.4.10 version
    
    I still have absolutely no idea which of the changes in
    [13.4.10](https://github.com/vercel/next.js/releases/tag/v13.4.10) is
    causing this.
    However, I traced the error back and it happens as soon as our NextJS
    SDK package requires @sentry/webpack-plugin:
    
    * @sentry/nextjs calls `require('@sentry/webpack-plugin')`
    * @sentry/webpack-plugin calls `const { RawSource } =
    require('webpack-sources');`
    * For _whatever_ reason, NextJS can't require `webpack-sources` and
    throws
    
    Since we don't enable our Webpack plugin [in dev
    
    mode](https://github.com/getsentry/sentry-javascript/blob/723f851f358b75cd39da353804c51ff27ebb0c11/packages/nextjs/src/config/webpack.ts#L305)
    anyway, one way to get rid of this error is to only require it if we're
    _not_ in dev mode.
    
    This hotfix therefore moves the top-level require of
    `@sentry/webpack-plugin` to a dynamic require. This isn't a great
    solution and honestly quite ugly but if it unblocks users for now I'd
    say we merge it. I think we should definitely revisit this though once
    we know more about why NextJS suddenly isn't able to import
    `webpack-sources`.
    
    closes #8541
    Lms24 authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    0ca7389 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e6cc124 View commit details
    Browse the repository at this point in the history
  8. fix(tracing): Improve network.protocol.version (#8502)

    Protocols are from https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids which don't exactly match the OSI. We can consider adding a lookup table later if people are finding this insufficient.
    
    Co-authored-by: Abhijeet Prasad <[email protected]>
    k-fish and AbhiPrasad authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    6b009c0 View commit details
    Browse the repository at this point in the history
  9. feat(core): Allow multiplexed transport to send to multiple releases (#…

    …8559)
    
    The multiplexed transport can already route events to different or
    multiple DSNs but we also need to be able to route to specific releases
    too.
    
    In a page with micro-frontends, it's possible (and probably even quite
    common) to be using the same dependency multiple times but different
    versions (ie. different releases). Depending on where an error occurs we
    might want to send an event to `[email protected]` or
    `[email protected]` at the same DSN.
    
    This PR:
    - Adds a private `makeOverrideReleaseTransport` which can used to wrap a
    transport and override the release on all events
    - Modifies `makeMultiplexedTransport` so it now creates a transport for
    each unique dsn/release pair
    - And uses `makeOverrideReleaseTransport` whenever a release is returned
    from the callback
    timfish authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    c2bd091 View commit details
    Browse the repository at this point in the history
  10. feat(tracing): Bring http timings out of experiment (#8563)

    Co-authored-by: Abhijeet Prasad <[email protected]>
    k-fish and AbhiPrasad authored Jul 17, 2023
    Configuration menu
    Copy the full SHA
    564af01 View commit details
    Browse the repository at this point in the history
  11. meta: Update CHANGELOG for 7.59.0

    Lms24 authored and AbhiPrasad committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    5eb0bdd View commit details
    Browse the repository at this point in the history