[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell
, '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

[0.74] Switch New Architecture templates to use prebuilt NuGets - #13621

Merged
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74
Aug 27, 2024
Merged

[0.74] Switch New Architecture templates to use prebuilt NuGets#13621
Jon Thysell (jonthysell) merged 1 commit into
microsoft:0.74-stablefrom
jonthysell:fabricnugets74

Conversation

@jonthysell

@jonthysellJon Thysell (jonthysell) commented Aug 27, 2024

Copy link
Copy Markdown
Contributor

This PR backports #13338 to 0.74.

Description

This PR updates the cpp-app and cpp-lib new architecture templates to build against the pre-built Microsoft.ReactNative NuGet packages by default.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Why

Building the Microsoft.ReactNative native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.

Resolves#12639

What

The cpp-app and cpp-lib new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built Microsoft.ReactNative NuGet packages by default.

The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.

To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.

This PR also fixes the --singleproc flag for run-windows. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.

Screenshots

Building x64 Release Paper (build RNW from source): image

Building x64 Release Fabric (use RNW Nugets):
image

Testing

Verified new projects build and run using the pre-built nugets.

Changelog

Should this change be included in the release notes: yes

[0.74] Switch New Architecture templates to use prebuilt NuGets

Microsoft Reviewers: Open in CodeFlow

This PR backports #13338 to 0.74.
## Description
This PR updates the `cpp-app` and `cpp-lib` new architecture templates to build against the pre-built `Microsoft.ReactNative` NuGet packages by default.
### Type of Change
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
Building the `Microsoft.ReactNative` native code is very resource-intensive. Pre-building that code makes for much faster builds and greatly improved developer experience. This experience has been experimental and poorly support for Paper for some time now - for the new architecture projects we want using NuGets to be the primary experience from day one.
Resolves#12639
### What
The `cpp-app` and `cpp-lib` new architecture templates now set up projects to consume the ("-Fabric" versions) of the pre-built `Microsoft.ReactNative` NuGet packages by default.
The CI and PR builds have also been updated to make sure nugets for x64, x86, arm64 are built first and then consumed by the new project tests.
To support working on RNW itself, the new projects made using "devMode" (i.e. by yarn linking with your local RNW repo) will still build against the source of that local RNW repo rather than the nugets.
This PR also fixes the `--singleproc` flag for `run-windows`. Previously it didn't do anything on machines with high RAM, but now if you specify the flag it forces single processor builds as expected.
## Screenshots
Building x64 Release Paper (build RNW from source): ![image](https://github.com/user-attachments/assets/d7a529b9-d313-4227-b236-f4781aa25855)
Building x64 Release Fabric (use RNW Nugets):
![image](https://github.com/user-attachments/assets/bdb81df2-e111-4d61-a20a-302b3b6b1ecf)
## Testing
Verified new projects build and run using the pre-built nugets.
## Changelog
Should this change be included in the release notes: _yes_
[0.74] Switch New Architecture templates to use prebuilt NuGets
@jonthysell
Jon Thysell (jonthysell) marked this pull request as ready for review August 27, 2024 21:24
@jonthysell
Jon Thysell (jonthysell) merged commit e4b77e5 into microsoft:0.74-stableAug 27, 2024
@jonthysell
Jon Thysell (jonthysell) deleted the fabricnugets74 branch August 28, 2024 00:10
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants

@jonthysell@marlenecota@jthysell