meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

meta(changelog): Update changelog for 7.71.0 - #9103

Merged
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0
Sep 25, 2023
Merged

meta(changelog): Update changelog for 7.71.0#9103
lforst merged 16 commits into
masterfrom
prepare-release/7.71.0

Conversation

@lforst

Copy link
Copy Markdown
Contributor

Minor bc of #9022

github-actionsBotand others added 16 commits September 20, 2023 11:14
[Gitflow] Merge master into develop
…#9064)
Even if no scope is passed.
I guess this is kind of behavior changing, but I'd argue it is just
fixing an unexpected behaviour that's not actually intuitive/logical -
that global event processors are only applied if a scope is provided.
I noticed that while from an API POV the current behavior makes kind-of
sense IMHO:
1. Run global event processors
2. Run scope event processors
3. Run client event processors
It is potentially breaking, as if we rewrite integrations to use the new
client processors, their processing will run after any user global event
processors, leading to potentially unexpected outcomes.
So this PR changes this to instead run them in this order:
1. Run client event processors
2. Run global event processors
3. Run scope event processors
Which should be more stable for now. In v8, we should update this to run a more sensible order:
1. Global
2. Client
3. Scope
…9070)
Also update all OTEL dependencies to latest to align these properly.
The sdk-trace-node package actually just wraps sdk-trace-base, adds some
default exports (that we do not need) + sets the async local storage
context manager by default (which we overwrite anyhow).
So we can cut down on one dependency there and make this a tiny bit
easier.
I also made a central `OtelSpan` type in node-experimental to avoid
using this everywhere throughout the codebase.
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
)
This refactors browser integrations to use the new `processEvent` hook
on the Integrations interface.
It also updates Replay to register it's event processor on the client,
not globally. This is also needed to ensure the order is somewhat
stable, as global processors are run separately from the client ones.
Previously, the error name would always be `React ErrorBoundary Error`,
because `errorBoundaryError.name` refers to the name of the Error object
that was just created.
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.3.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.3.0...v16.8.1)
---
updated-dependencies:
- dependency-name: graphql
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
)
To keep things better together, and in preparation for follow up PRs
with more OTEL-specific stuff.
Nothing functionally changes here, this is just to keep follow up PRs
more readable as there is a lot going on...
…#9099)
Also add tests for this. This can then be reused e.g. by
node-experimental in a later step.

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@lforst
lforst merged commit 3ee7e00 into masterSep 25, 2023
@lforst
lforst deleted the prepare-release/7.71.0 branch September 25, 2023 12:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lforst@mydea@onurtemizkan@AbhiPrasad@jorrit