helloadhavan/github_issues huggingface dataset:
Repository: denoland/deno
Pull request: ci: update release template


Changed files:
filename: tools/release/release_doc_template.md
patch: @@ -122,7 +122,7 @@ verify on GitHub that everything looks correct.
 - ⛔ Verify that:
   - [ ] There are 24 assets on the
         [GitHub release draft](https://github.com/denoland/deno/releases/v$VERSION).
-  - [ ] There are 10 zip files for this version on
+  - [ ] There are 20 zip files for this version on
         [dl.deno.land](https://console.cloud.google.com/storage/browser/dl.deno.land/release/v$VERSION).
 
 - [ ] Publish the release on Github
Repository: ggml-org/llama.cpp
Pull request: passkey : add short intro to README.md [no-ci]

This commit adds a short introduction to the README.md file in the examples/passkey directory.



- [x] I have read the [contributing guidelines](https://github.com/ggerganov/llama.cpp/blob/master/CONTRIBUTING.md)
- Self-reported review complexity:
  - [x] Low
  - [ ] Medium
  - [ ] High


Changed files:
filename: examples/passkey/README.md
patch: @@ -1,5 +1,8 @@
 # llama.cpp/example/passkey
 
+A passkey retrieval task is an evaluation method used to measure a language
+models ability to recall information from long contexts.
+
 See the following PRs for more info:
 
 - https://github.com/ggerganov/llama.cpp/pull/3856
Repository: denoland/deno
Pull request: fix(ext/node): sqlite bind support bigint values


Changed files:
filename: ext/node/ops/sqlite/statement.rs
patch: @@ -261,6 +261,20 @@ impl StatementSync {
               ffi::SQLITE_TRANSIENT(),
             );
           }
+        } else if value.is_big_int() {
+          let value: v8::Local<v8::BigInt> = value.try_into().unwrap();
+          let (as_int, lossless) = value.i64_value();
+          if !lossless {
+            return Err(SqliteError::FailedBind(
+              "BigInt value is too large to bind",
+            ));
+          }
+
+          // SAFETY: `self.inner` is a valid pointer to a sqlite3_stmt
+          // as it lives as long as the StatementSync instance.
+          unsafe {
+            ffi::sqlite3_bind_int64(raw, i + 1, as_int);
+          }
         } else {
           return Err(SqliteError::FailedBind("Unsupported type"));
         }

filename: tests/unit_node/sqlite_test.ts
patch: @@ -52,6 +52,15 @@ Deno.test(
   },
 );
 
+Deno.test("[node/sqlite] StatementSync bind bigints", () => {
+  const db = new DatabaseSync(":memory:");
+  db.exec("CREATE TABLE data(key INTEGER PRIMARY KEY);");
+
+  const stmt = db.prepare("INSERT INTO data (key) VALUES (?)");
+  assertEquals(stmt.run(100n), { lastInsertRowid: 100, changes: 1 });
+  db.close();
+});
+
 Deno.test("[node/sqlite] StatementSync read bigints are supported", () => {
   const db = new DatabaseSync(":memory:");
   db.exec("CREATE TABLE data(key INTEGER PRIMARY KEY);");
Repository: huggingface/transformers
Pull request: Fix custom generate from local directory

Passing a local folder to `custom_generate` via `model.generate(**inputs, custom_generate="custom_generate_example", ...)` fails because 
1. `shutil.copy` in `src/transformers/dynamic_module_utils.py` silently fails if the parent directory structure doesn't exist. 
2. The relative imports do not get correctly copied to the fresh submodule in .cache.

So, this PR does:
1. Create parent dirs before copying files (custom_generate dir)
2. Correctly copy relative import files to the submodule folder.
3. Update docs.

Changed files:
filename: docs/source/en/generation_strategies.md
patch: @@ -468,9 +468,17 @@ def generate(model, input_ids, generation_config=None, left_padding=None, **kwar
 Follow the recommended practices below to ensure your custom decoding method works as expected.
 - Feel free to reuse the logic for validation and input preparation in the original [`~GenerationMixin.generate`].
 - Pin the `transformers` version in the requirements if you use any private method/attribute in `model`.
-- You can add other files in the `custom_generate` folder, and use relative imports.
 - Consider adding model validation, input validation, or even a separate test file to help users sanity-check your code in their environment.
 
+Your custom `generate` method can relative import code from the `custom_generate` folder. For example, if you have a `utils.py` file, you can import it like this:
+
+```py
+from .utils import some_function
+```
+
+Only relative imports from the same-level `custom_generate` folder are supported. Parent/sibling folder imports are not valid. The `custom_generate` argument also works locally with any directory that contains a `custom_generate` structure. This is the recommended workflow for developing your custom decoding method.
+
+
 #### requirements.txt
 
 You can optionally specify additional Python requirements in a `requirements.txt` file inside the `custom_generate` folder. These are checked at runtime and an exception will be thrown if they're missing, nudging users to update their environment accordingly.

filename: src/transformers/dynamic_module_utils.py
patch: @@ -402,10 +402,11 @@ def get_cached_module_file(
         if not (submodule_path / module_file).exists() or not filecmp.cmp(
             resolved_module_file, str(submodule_path / module_file)
         ):
+            (submodule_path / module_file).parent.mkdir(parents=True, exist_ok=True)
             shutil.copy(resolved_module_file, submodule_path / module_file)
             importlib.invalidate_caches()
         for module_needed in modules_needed:
-            module_needed = f"{module_needed}.py"
+            module_needed = Path(module_file).parent / f"{module_needed}.py"
             module_needed_file = os.path.join(pretrained_model_name_or_path, module_needed)
             if not (submodule_path / module_needed).exists() or not filecmp.cmp(
                 module_needed_file, str(submodule_path / module_needed)
Repository: ggml-org/llama.cpp
Pull request: perplexity : update comments/error msg to use decode [no ci]

This commit updates comments and error messages to use "decode" instead of "eval" in perplexity.cpp.

The motivation for this is that `llama_eval` was renamed to `llama_decode` a while ago, but the comments and error messages still referred to "eval". This change ensures consistency and clarity.


Changed files:
filename: tools/perplexity/perplexity.cpp
patch: @@ -525,7 +525,7 @@ static results_perplexity perplexity(llama_context * ctx, const common_params &
     }
 
     // We get the logits for all the tokens in the context window (params.n_ctx)
-    // from llama_eval above.  Now, based on https://huggingface.co/docs/transformers/perplexity,
+    // from llama_decode below.  Now, based on https://huggingface.co/docs/transformers/perplexity,
     // calculate the perplexity over the last half of the window (so the model always has
     // some context to predict the token).
     //
@@ -559,7 +559,7 @@ static results_perplexity perplexity(llama_context * ctx, const common_params &
             for (int seq = 0; seq < n_seq_batch; seq++) {
                 int seq_start = batch_start + seq*n_ctx;
 
-                // save original token and restore it after eval
+                // save original token and restore it after decode
                 const auto token_org = tokens[seq_start];
 
                 // add BOS token for the first batch of each chunk
@@ -584,7 +584,7 @@ static results_perplexity perplexity(llama_context * ctx, const common_params &
             }
 
             if (llama_decode(ctx, batch)) {
-                LOG_INF("%s : failed to eval\n", __func__);
+                LOG_INF("%s : failed to decode\n", __func__);
                 return {tokens, -1, logit_history, prob_history};
             }
Repository: denoland/deno
Pull request: fix(cli): Fix panic in `load_native_certs`

Fixes https://github.com/denoland/deno/issues/27528

Can't really trigger the panic myself hence no test.

Changed files:
filename: cli/lib/args.rs
patch: @@ -60,6 +60,8 @@ pub enum RootCertStoreLoadError {
   FailedAddPemFile(String),
   #[error("Failed opening CA file: {0}")]
   CaFileOpenError(String),
+  #[error("Failed to load platform certificates: {0}")]
+  FailedNativeCerts(String),
 }
 
 /// Create and populate a root cert store based on the passed options and
@@ -89,7 +91,9 @@ pub fn get_root_cert_store(
         root_cert_store.extend(webpki_roots::TLS_SERVER_ROOTS.to_vec());
       }
       "system" => {
-        let roots = load_native_certs().expect("could not load platform certs");
+        let roots = load_native_certs().map_err(|err| {
+          RootCertStoreLoadError::FailedNativeCerts(err.to_string())
+        })?;
         for root in roots {
           if let Err(err) = root_cert_store
             .add(rustls::pki_types::CertificateDer::from(root.0.clone()))
Repository: ggml-org/llama.cpp
Pull request: quantize : update usage comment in quantize.cpp [no ci]

This commit updates the usage comment in quantize.cpp to reflect the new name of the executable, which is llama-quantize.



- [x] I have read the [contributing guidelines](https://github.com/ggerganov/llama.cpp/blob/master/CONTRIBUTING.md)
- Self-reported review complexity:
  - [x] Low
  - [ ] Medium
  - [ ] High


Changed files:
filename: examples/quantize/quantize.cpp
patch: @@ -91,7 +91,7 @@ static bool try_parse_ftype(const std::string & ftype_str_in, llama_ftype & ftyp
 }
 
 // usage:
-//  ./quantize [--allow-requantize] [--leave-output-tensor] [--pure] models/llama/ggml-model.gguf [models/llama/ggml-model-quant.gguf] type [nthreads]
+//  ./llama-quantize [--allow-requantize] [--leave-output-tensor] [--pure] models/llama/ggml-model.gguf [models/llama/ggml-model-quant.gguf] type [nthreads]
 //
 [[noreturn]]
 static void usage(const char * executable) {
Repository: vercel/next.js
Pull request: [test] Reduce flakiness of instrumentation-order

The test was implicitly relying on `preloadEntriesOnStart` to load the module in our prod tests.

Fixes https://github.com/vercel/next.js/actions/runs/15774186781/job/44464850249?pr=80710#step:34:282 and [other flakes](https://app.datadoghq.com/ci/test/runs?query=test_level%3Atest%20%40test.source.file%3A%22test%2Fe2e%2Fapp-dir%2Finstrumentation-order%2Finstrumentation-order.test.ts%22%20%40test.status%3Afail&agg_m=count&agg_m_source=base&agg_t=count&currentTab=overview&eventStack=&fromUser=true&index=citest&start=1749804083936&end=1750408883936&paused=true)

Now we always trigger the page for the first time in the test and wait for the logs to come in instead of hardcoding a timeout.

Changed files:
filename: test/e2e/app-dir/instrumentation-order/instrumentation-order.test.ts
patch: @@ -1,35 +1,31 @@
 import { nextTestSetup } from 'e2e-utils'
-import { waitFor } from 'next-test-utils'
-
-const ORDERED_LOGS = [
-  'instrumentation:side-effect',
-  'instrumentation:register:begin',
-  'instrumentation:register:timeout',
-  'instrumentation:register:end',
-  'global-side-effect:app-router-page',
-]
+import { retry } from 'next-test-utils'
 
 describe('instrumentation-order', () => {
-  const { next, isNextDev } = nextTestSetup({
+  const { next } = nextTestSetup({
     files: __dirname,
     skipDeployment: true,
   })
 
-  it('should work using cheerio', async () => {
-    // Wait for the timeout in the instrumentation to complete
-    await waitFor(500)
+  it('should work', async () => {
+    await next.fetch('/')
 
-    // Dev mode requires to render the page to trigger the build of the page
-    if (isNextDev) {
-      await next.render$('/')
-    }
+    await retry(async () => {
+      const serverLog = next.cliOutput.split('Starting...')[1]
+      const cliOutputLines = serverLog.split('\n')
 
-    const serverLog = next.cliOutput.split('Starting...')[1]
-    const cliOutputLines = serverLog.split('\n')
-    const searchedLines = cliOutputLines.filter((line) =>
-      ORDERED_LOGS.includes(line.trim())
-    )
+      const ORDERED_LOGS = [
+        'instrumentation:side-effect',
+        'instrumentation:register:begin',
+        'instrumentation:register:timeout',
+        'instrumentation:register:end',
+        'global-side-effect:app-router-page',
+      ]
+      const searchedLines = cliOutputLines.filter((line) =>
+        ORDERED_LOGS.includes(line.trim())
+      )
 
-    expect(searchedLines).toEqual(ORDERED_LOGS)
+      expect(searchedLines).toEqual(ORDERED_LOGS)
+    })
   })
 })

filename: test/e2e/app-dir/instrumentation-order/next.config.js
patch: @@ -1,6 +1,10 @@
 /**
  * @type {import('next').NextConfig}
  */
-const nextConfig = {}
+const nextConfig = {
+  experimental: {
+    preloadEntriesOnStart: false,
+  },
+}
 
 module.exports = nextConfig
Repository: facebook/react
Pull request: Add two event system cleanup TODOs

There is so much old stuff in these files. I am weeping.

Changed files:
filename: packages/react-dom-bindings/src/events/plugins/SimpleEventPlugin.js
patch: @@ -72,6 +72,8 @@ function extractEvents(
       // Firefox creates a keypress event for function keys too. This removes
       // the unwanted keypress events. Enter is however both printable and
       // non-printable. One would expect Tab to be as well (but it isn't).
+      // TODO: Fixed in https://bugzilla.mozilla.org/show_bug.cgi?id=968056. Can
+      // probably remove.
       if (getEventCharCode(((nativeEvent: any): KeyboardEvent)) === 0) {
         return;
       }
@@ -95,6 +97,8 @@ function extractEvents(
     case 'click':
       // Firefox creates a click event on right mouse clicks. This removes the
       // unwanted click events.
+      // TODO: Fixed in https://phabricator.services.mozilla.com/D26793. Can
+      // probably remove.
       if (nativeEvent.button === 2) {
         return;
       }
Repository: ggml-org/llama.cpp
Pull request: readme : remove stray double quote


Changed files:
filename: README.md
patch: @@ -532,7 +532,7 @@ Building the program with BLAS support may lead to some performance improvements
         cmake -B build -DLLAMA_HIPBLAS=ON -DAMDGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \
         && cmake --build build --config Release -- -j 16
     ```
-    On Linux it is also possible to use unified memory architecture (UMA) to share main memory between the CPU and integrated GPU by setting `-DLLAMA_HIP_UMA=ON"`.
+    On Linux it is also possible to use unified memory architecture (UMA) to share main memory between the CPU and integrated GPU by setting `-DLLAMA_HIP_UMA=ON`.
     However, this hurts performance for non-integrated GPUs (but enables working with integrated GPUs).
 
   - Using `make` (example for target gfx1030, build with 16 CPU threads):
Repository: electron/electron
Pull request: fix: don't use deprecated ui::MouseEvent constructor

Backport of #44868

See that PR for details.


Notes: none.

Changed files:
filename: shell/browser/osr/osr_render_widget_host_view.cc
patch: @@ -56,31 +56,6 @@ namespace {
 const float kDefaultScaleFactor = 1.0;
 
 ui::MouseEvent UiMouseEventFromWebMouseEvent(blink::WebMouseEvent event) {
-  ui::EventType type = ui::EventType::kUnknown;
-  switch (event.GetType()) {
-    case blink::WebInputEvent::Type::kMouseDown:
-      type = ui::EventType::kMousePressed;
-      break;
-    case blink::WebInputEvent::Type::kMouseUp:
-      type = ui::EventType::kMouseReleased;
-      break;
-    case blink::WebInputEvent::Type::kMouseMove:
-      type = ui::EventType::kMouseMoved;
-      break;
-    case blink::WebInputEvent::Type::kMouseEnter:
-      type = ui::EventType::kMouseEntered;
-      break;
-    case blink::WebInputEvent::Type::kMouseLeave:
-      type = ui::EventType::kMouseExited;
-      break;
-    case blink::WebInputEvent::Type::kMouseWheel:
-      type = ui::EventType::kMousewheel;
-      break;
-    default:
-      type = ui::EventType::kUnknown;
-      break;
-  }
-
   int button_flags = 0;
   switch (event.button) {
     case blink::WebMouseEvent::Button::kBack:
@@ -103,12 +78,12 @@ ui::MouseEvent UiMouseEventFromWebMouseEvent(blink::WebMouseEvent event) {
       break;
   }
 
-  ui::MouseEvent ui_event(type,
-                          gfx::Point(std::floor(event.PositionInWidget().x()),
-                                     std::floor(event.PositionInWidget().y())),
-                          gfx::Point(std::floor(event.PositionInWidget().x()),
-                                     std::floor(event.PositionInWidget().y())),
-                          ui::EventTimeForNow(), button_flags, button_flags);
+  ui::MouseEvent ui_event{event.GetTypeAsUiEventType(),
+                          event.PositionInWidget(),
+                          event.PositionInWidget(),
+                          ui::EventTimeForNow(),
+                          button_flags,
+                          button_flags};
   ui_event.SetClickCount(event.click_count);
 
   return ui_event;
Repository: vercel/next.js
Pull request: Fix Next DevTools Storybook in recent Node.js versions

Affected all Node.js versions with `require(esm)` support. We needed https://github.com/storybookjs/addon-webpack5-compiler-swc/commit/70a8e63516bd4f664c2751b9094f38697f39f0ff to fix `pnpm storybook`.

Tested with Node.js 20.19.2 which previously failed.

Changed files:
filename: packages/next/package.json
patch: @@ -173,7 +173,7 @@
     "@storybook/addon-a11y": "8.6.0",
     "@storybook/addon-essentials": "8.6.0",
     "@storybook/addon-interactions": "8.6.0",
-    "@storybook/addon-webpack5-compiler-swc": "1.0.5",
+    "@storybook/addon-webpack5-compiler-swc": "3.0.0",
     "@storybook/blocks": "8.6.0",
     "@storybook/react": "8.6.0",
     "@storybook/react-webpack5": "8.6.0",

filename: pnpm-lock.yaml
patch: @@ -1055,8 +1055,8 @@ importers:
         specifier: 8.6.0
         version: 8.6.0(storybook@8.6.0(prettier@3.3.3))
       '@storybook/addon-webpack5-compiler-swc':
-        specifier: 1.0.5
-        version: 1.0.5(@swc/helpers@0.5.15)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2))
+        specifier: 3.0.0
+        version: 3.0.0(@swc/helpers@0.5.15)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2))
       '@storybook/blocks':
         specifier: 8.6.0
         version: 8.6.0(react-dom@19.2.0-canary-197d6a04-20250424(react@19.2.0-canary-197d6a04-20250424))(react@19.2.0-canary-197d6a04-20250424)(storybook@8.6.0(prettier@3.3.3))
@@ -5010,8 +5010,8 @@ packages:
     peerDependencies:
       storybook: ^8.6.0
 
-  '@storybook/addon-webpack5-compiler-swc@1.0.5':
-    resolution: {integrity: sha512-1NlM3noit2vA22OyWb8Ma2lhcEKCS1Snv2kr+EkaVABUqNDfVc9AD/GgYQhF7F/2CoF5N2JU7uzXDzFHd5TzZg==}
+  '@storybook/addon-webpack5-compiler-swc@3.0.0':
+    resolution: {integrity: sha512-qkQwQEvHlxwPCHz/xakGfXJusEa1gKMw7enELh6QGopblfN3rMiV084boqiIqBReqWTasSwHOqvuElAu0NQ+8w==}
     engines: {node: '>=18'}
 
   '@storybook/blocks@8.6.0':
@@ -20691,7 +20691,7 @@ snapshots:
       memoizerific: 1.11.3
       storybook: 8.6.0(prettier@3.3.3)
 
-  '@storybook/addon-webpack5-compiler-swc@1.0.5(@swc/helpers@0.5.15)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2))':
+  '@storybook/addon-webpack5-compiler-swc@3.0.0(@swc/helpers@0.5.15)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2))':
     dependencies:
       '@swc/core': 1.11.24(@swc/helpers@0.5.15)
       swc-loader: 0.2.6(@swc/core@1.11.24(@swc/helpers@0.5.15))(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2))
Repository: electron/electron
Pull request: fix: don't use deprecated ui::MouseEvent constructor

#### Description of Change

Our `UiMouseEventFromWebMouseEvent()` function was added in 2017 by 218e28b136124bdad6abd7e763ba89b36910aaca and it's mostly been unchanged since then.

This PR makes two changes:

- Use the `gfx::PointF` constructor of `ui::MouseEvent` intead of the deprecated `gfx::Point` variant. This was added upstream in 2019 by https://chromium-review.googlesource.com/c/1444251.
- Use `WebInputEvent::GetTypeAsUiEventType()` instead of rolling our own. This was added upstream in 2020 by https://chromium-review.googlesource.com/c/chromium/src/+/2180291.

#### Checklist

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: none.

Changed files:
filename: shell/browser/osr/osr_render_widget_host_view.cc
patch: @@ -56,31 +56,6 @@ namespace {
 const float kDefaultScaleFactor = 1.0;
 
 ui::MouseEvent UiMouseEventFromWebMouseEvent(blink::WebMouseEvent event) {
-  ui::EventType type = ui::EventType::kUnknown;
-  switch (event.GetType()) {
-    case blink::WebInputEvent::Type::kMouseDown:
-      type = ui::EventType::kMousePressed;
-      break;
-    case blink::WebInputEvent::Type::kMouseUp:
-      type = ui::EventType::kMouseReleased;
-      break;
-    case blink::WebInputEvent::Type::kMouseMove:
-      type = ui::EventType::kMouseMoved;
-      break;
-    case blink::WebInputEvent::Type::kMouseEnter:
-      type = ui::EventType::kMouseEntered;
-      break;
-    case blink::WebInputEvent::Type::kMouseLeave:
-      type = ui::EventType::kMouseExited;
-      break;
-    case blink::WebInputEvent::Type::kMouseWheel:
-      type = ui::EventType::kMousewheel;
-      break;
-    default:
-      type = ui::EventType::kUnknown;
-      break;
-  }
-
   int button_flags = 0;
   switch (event.button) {
     case blink::WebMouseEvent::Button::kBack:
@@ -103,12 +78,12 @@ ui::MouseEvent UiMouseEventFromWebMouseEvent(blink::WebMouseEvent event) {
       break;
   }
 
-  ui::MouseEvent ui_event(type,
-                          gfx::Point(std::floor(event.PositionInWidget().x()),
-                                     std::floor(event.PositionInWidget().y())),
-                          gfx::Point(std::floor(event.PositionInWidget().x()),
-                                     std::floor(event.PositionInWidget().y())),
-                          ui::EventTimeForNow(), button_flags, button_flags);
+  ui::MouseEvent ui_event{event.GetTypeAsUiEventType(),
+                          event.PositionInWidget(),
+                          event.PositionInWidget(),
+                          ui::EventTimeForNow(),
+                          button_flags,
+                          button_flags};
   ui_event.SetClickCount(event.click_count);
 
   return ui_event;
Repository: facebook/react
Pull request: [actions] commit from special branches iff they exist

This creates 2 special branches. If these special branches exist, we'll commit build artifacts from these branches, main otherwise.

Changed files:
filename: .github/workflows/commit_artifacts.yml
patch: @@ -1,13 +1,22 @@
-name: Commit Artifacts for Facebook WWW and fbsource
+name: Commit Artifacts for Meta WWW and fbsource
 
 on:
   push:
-    branches: [main]
+    branches: [main, meta-www, meta-fbsource]
 
 jobs:
   download_artifacts:
     runs-on: ubuntu-latest
+    outputs:
+      www_branch_count: ${{ steps.check_branches.outputs.www_branch_count }}
+      fbsource_branch_count: ${{ steps.check_branches.outputs.fbsource_branch_count }}
     steps:
+      - uses: actions/checkout@v3
+      - name: "Check branches"
+        id: check_branches
+        run: |
+          echo "www_branch_count=$(git ls-remote --heads origin "refs/heads/meta-www" | wc -l)" >> "$GITHUB_OUTPUT"
+          echo "fbsource_branch_count=$(git ls-remote --heads origin "refs/heads/meta-fbsource" | wc -l)" >> "$GITHUB_OUTPUT"
       - name: Download and unzip artifacts
         uses: actions/github-script@v6
         env:
@@ -168,6 +177,7 @@ jobs:
 
   commit_www_artifacts:
     needs: download_artifacts
+    if: ${{ (github.ref == 'refs/heads/main' && needs.download_artifacts.outputs.www_branch_count == '0') || github.ref == 'refs/heads/meta-www' }}
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
@@ -204,6 +214,7 @@ jobs:
   commit_fbsource_artifacts:
     needs: download_artifacts
     runs-on: ubuntu-latest
+    if: ${{ (github.ref == 'refs/heads/main' && needs.download_artifacts.outputs.fbsource_branch_count == '0') || github.ref == 'refs/heads/meta-fbsource' }}
     steps:
       - uses: actions/checkout@v3
         with: