chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, '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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, '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 > 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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, '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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, '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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, '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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza
, '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

chore: migrate to oxfmt - #19200

Merged
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt
Feb 13, 2026
Merged

chore: migrate to oxfmt#19200
logaretm merged 9 commits into
developfrom
awad/migrate-to-oxfmt

Conversation

@logaretm

@logaretmlogaretm commented Feb 5, 2026

Copy link
Copy Markdown
Member

This PR migrates our formatting tool from prettier to oxfmt which is part of the oxc toolchain and offers faster checking and format fixing speeds while maintaining the same coverage.

I created a follow up PR in #19311 to unignore a few rules and fix the associated snapshot tests affected by it.

Benchmarks

BenchmarkPrettieroxfmtSpeedup
CI45s6.0s-7.0s~5x-7.5×
Local M3 Pro22s1.22s-1.98s~11×

closes#19223

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊


Generated by Codecov Action

@github-actions

github-actionsBot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,908-8,750+2%
GET With Sentry1,62318%1,591+2%
GET With Sentry (error only)6,05068%5,956+2%
POST Baseline1,134-1,155-2%
POST With Sentry58251%571+2%
POST With Sentry (error only)1,05993%1,036+2%
MYSQL Baseline3,197-3,207-0%
MYSQL With Sentry44314%463-4%
MYSQL With Sentry (error only)2,61682%2,577+2%

View base workflow run

@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch 3 times, most recently from 2a7f522 to f9f27f0CompareFebruary 12, 2026 18:26
@logaretm
logaretmforce-pushed the awad/migrate-to-oxfmt branch from f9f27f0 to b2db955CompareFebruary 13, 2026 15:04
@logaretm
logaretm marked this pull request as ready for review February 13, 2026 16:01
@logaretm
logaretm requested a review from a team as a code ownerFebruary 13, 2026 16:01
CopilotAI review requested due to automatic review settings February 13, 2026 16:01

@timfishtimfish left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Particularly nice because our prettier version was so out of date!

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the codebase from Prettier to oxfmt for code formatting. Oxfmt is a Rust-based, Prettier-compatible formatter that's ~30x faster. The migration includes updating all formatting scripts, configuration files, tooling integrations (VSCode, GitHub workflows), and documentation to use oxfmt instead of Prettier.

Changes:

  • Replaced Prettier with oxfmt (version 0.31.0) as the formatting tool
  • Updated all npm scripts across the monorepo from fix:prettier/lint:prettier to fix:oxfmt/lint:oxfmt
  • Migrated configuration from embedded package.json prettier config to .oxfmtrc.json with appropriate ignore patterns for HTML and Handlebars files

Reviewed changes

Copilot reviewed 33 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
package.jsonRemoved prettier and prettier-plugin-astro dependencies; added oxfmt; updated scripts and removed embedded prettier config
yarn.lockAdded oxfmt@0.31.0 with platform-specific bindings; removed prettier-plugin-astro and related dependencies
packages/replay-internal/package.jsonUpdated scripts to use oxfmt instead of prettier
.oxfmtrc.jsonNew oxfmt configuration file with formatting rules matching previous prettier settings and ignore patterns for problematic file types
.prettierignoreRemoved (replaced by ignorePatterns in .oxfmtrc.json)
.vscode/settings.jsonUpdated default formatter from prettier-vscode to oxc-vscode
.vscode/extensions.jsonUpdated recommended extension from prettier-vscode to oxc-vscode
.github/workflows/build.ymlUpdated formatting check command from lint:prettier to format:check
CLAUDE.mdUpdated documentation to reference oxfmt and added new format:check/format commands
.cursor/rules/sdk_development.mdcAdded format:check and format commands documentation
.editorconfigMinor whitespace formatting fix
packages/sveltekit/test/server-common/serverRoute.test.tsRemoved redundant "type" keyword from type import
Multiple Angular component filesReformatted inline templates to multi-line format
Multiple wrangler.jsonc filesAdded trailing commas and reformatted indentation
Prisma migration lock filesRemoved trailing newlines

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -34,6 +34,8 @@ You are working on the Sentry JavaScript SDK, a critical production SDK used by

- `yarn lint` - Run ESLint and Prettier checks

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The comment on this line still references "Prettier" but should be updated to "Oxfmt" to match the migration. The command now runs oxfmt checks instead of prettier checks.

Suggested change
- `yarn lint` - Run ESLint and Prettier checks
- `yarn lint` - Run ESLint and Oxfmt checks

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 8
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The file header comment appears to be duplicated. Lines 1-4 and lines 5-8 contain identical comments. This is likely a formatting error introduced during the migration to oxfmt.

Copilot uses AI. Check for mistakes.
Comment thread.oxfmtrc.json
"dev-packages/**/*.html",
"dev-packages/**/*.hbs",
"packages/ember/**/*.hbs",
"packages/ember/**/*.html"

CopilotAIFeb 13, 2026

Copy link

Choose a reason for hiding this comment

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

The lerna.json file was explicitly excluded in the old .prettierignore but is not included in the new .oxfmtrc.json ignorePatterns. With the trailingComma configuration set to "all", oxfmt will want to format lerna.json (adding a trailing comma after "npmClient": "yarn"), which may cause formatting check failures. Consider adding "lerna.json" to the ignorePatterns array in .oxfmtrc.json to maintain the previous behavior.

Suggested change
"packages/ember/**/*.html"
"packages/ember/**/*.html",
"lerna.json"

Copilot uses AI. Check for mistakes.

@andreiborzaandreiborza 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.

Very nice, the fact that no formatting in packages changed is great.

@Lms24Lms24 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.

Thank you for taking care of this!

@logaretm
logaretm merged commit 6fb1ee1 into developFeb 13, 2026
232 checks passed
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.

Migrate from Prettier to oxfmt

5 participants

@logaretm@timfish@Lms24@andreiborza