helloadhavan/github_issues huggingface dataset:
Repository: denoland/deno
Pull request: fix(add): include type-only imports when building graph

- Fixes #31550

Changed files:
filename: cli/args/mod.rs
patch: @@ -542,6 +542,7 @@ impl CliOptions {
 
   pub fn graph_kind(&self) -> GraphKind {
     match self.sub_command() {
+      DenoSubcommand::Add(_) => GraphKind::All,
       DenoSubcommand::Cache(_) => GraphKind::All,
       DenoSubcommand::Check(_) => GraphKind::TypesOnly,
       DenoSubcommand::Install(InstallFlags::Local(_)) => GraphKind::All,

filename: tests/specs/add/jsr_with_type_only_import/__test__.jsonc
patch: @@ -0,0 +1,6 @@
+// Regression test for https://github.com/denoland/deno/issues/31550.
+{
+  "tempDir": true,
+  "args": "add jsr:@denotest/type-only-import@1.0.0",
+  "output": "add.out"
+}

filename: tests/specs/add/jsr_with_type_only_import/add.out
patch: @@ -0,0 +1,5 @@
+Add jsr:@denotest/type-only-import@1.0.0
+[UNORDERED_START]
+Download http://127.0.0.1:4250/@denotest/type-only-import/1.0.0/mod.ts
+Download http://127.0.0.1:4250/@denotest/type-only-import/1.0.0/foo.ts
+[UNORDERED_END]

filename: tests/specs/add/jsr_with_type_only_import/deno.json
patch: @@ -0,0 +1 @@
+{}
Repository: ggml-org/llama.cpp
Pull request: vulkan: Revive MUL_MAT_ID to perf testing

Not sure if this was intended but the original MUL_MAT_ID perf tests were replaced by MUL_MAT_ID_FUSION tests at #17095, and MUL_MAT_ID cannot be measured by `test-backend-ops perf -o MUL_MAT_ID` at the moment. We'd like to revive this since it is actively used in models like gpt-oss (until it is fully replaced by MUL_MAT_ID_FUSION ops?)

Changed files:
filename: tests/test-backend-ops.cpp
patch: @@ -7819,6 +7819,7 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_perf() {
     for (int bs : {1, 4, 8, 32, 64, 128, 256, 512}) {
         for (ggml_type type_a : {GGML_TYPE_F32, GGML_TYPE_F16, GGML_TYPE_Q4_0, GGML_TYPE_Q8_0, GGML_TYPE_Q4_K, GGML_TYPE_Q6_K, GGML_TYPE_IQ2_XS}) {
             for (ggml_type type_b : {GGML_TYPE_F32}) {
+                test_cases.emplace_back(new test_mul_mat_id(type_a, type_b, 128, 8, false, 768, bs, 2048));
                 test_cases.emplace_back(new test_mul_mat_id_fusion(type_a, type_b, 128, 8, false, 768, bs, 2048, 1));
             }
         }
@@ -7827,6 +7828,7 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_perf() {
     for (int bs : {1, 4, 8, 32, 64, 128, 256, 512}) {
         for (ggml_type type_a : {GGML_TYPE_F32, GGML_TYPE_F16, GGML_TYPE_Q4_0, GGML_TYPE_Q8_0, GGML_TYPE_Q4_K, GGML_TYPE_Q6_K, GGML_TYPE_IQ2_XS}) {
             for (ggml_type type_b : {GGML_TYPE_F32}) {
+                test_cases.emplace_back(new test_mul_mat_id(type_a, type_b, 32, 4, false, 1792, bs, 2048));
                 test_cases.emplace_back(new test_mul_mat_id_fusion(type_a, type_b, 32, 4, false, 1792, bs, 2048, 1));
             }
         }
@@ -7837,6 +7839,7 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_perf() {
     for (int bs : {1, 4, 8, 512}) {
         for (ggml_type type_a : {GGML_TYPE_MXFP4}) {
             for (ggml_type type_b : {GGML_TYPE_F32}) {
+                test_cases.emplace_back(new test_mul_mat_id(type_a, type_b, 32, 4, false, 2880, bs, 2880));
                 test_cases.emplace_back(new test_mul_mat_id_fusion(type_a, type_b, 32, 4, false, 2880, bs, 2880, 1));
             }
         }
Repository: ollama/ollama
Pull request: Add macos cross-compile CI coverage

Linux and Windows are not yet set up for cross-compilation like MacOS, so I've excluded those from the CI matrix.

Changed files:
filename: .github/workflows/test.yaml
patch: @@ -8,7 +8,15 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
+        arch: [amd64, arm64]
+        exclude:
+          - os: ubuntu-latest
+            arch: arm64
+          - os: windows-latest
+            arch: arm64
     runs-on: ${{ matrix.os }}
+    env:
+      GOARCH: ${{ matrix.arch }}
     steps:
       - uses: actions/checkout@v4
       - uses: actions/setup-go@v4
@@ -33,15 +41,26 @@ jobs:
       - run: go generate -x ./...
       - uses: actions/upload-artifact@v4
         with:
-          name: ${{ matrix.os }}-libraries
+          name: ${{ matrix.os }}-${{ matrix.arch }}-libraries
           path: |
             llm/llama.cpp/build/**/lib/*
   lint:
     needs: generate
     strategy:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
+        arch: [amd64, arm64]
+        exclude:
+          - os: ubuntu-latest
+            arch: arm64
+          - os: windows-latest
+            arch: arm64
+          - os: macos-latest
+            arch: amd64
     runs-on: ${{ matrix.os }}
+    env:
+      GOARCH: ${{ matrix.arch }}
+      CGO_ENABLED: "1"
     steps:
       - uses: actions/checkout@v4
         with:
@@ -52,14 +71,20 @@ jobs:
           cache: false
       - uses: actions/download-artifact@v4
         with:
-          name: ${{ matrix.os }}-libraries
+          name: ${{ matrix.os }}-${{ matrix.arch }}-libraries
           path: llm/llama.cpp/build
       - uses: golangci/golangci-lint-action@v3
   test:
     needs: generate
     strategy:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
+        arch: [amd64, arm64]
+        exclude:
+          - os: ubuntu-latest
+            arch: arm64
+          - os: windows-latest
+            arch: arm64
     runs-on: ${{ matrix.os }}
     steps:
       - uses: actions/checkout@v4
@@ -72,7 +97,7 @@ jobs:
       - run: go get
       - uses: actions/download-artifact@v4
         with:
-          name: ${{ matrix.os }}-libraries
+          name: ${{ matrix.os }}-${{ matrix.arch }}-libraries
           path: llm/llama.cpp/build
       - run: go build
       - run: go test -v ./...
Repository: ggml-org/llama.cpp
Pull request: vulkan: more FA details in vk_perf_logger

May help debugging recent FA perf issues.


Changed files:
filename: ggml/src/ggml-vulkan/ggml-vulkan.cpp
patch: @@ -1629,6 +1629,22 @@ class vk_perf_logger {
             timings[name].push_back(time);
             return;
         }
+        if (node->op == GGML_OP_FLASH_ATTN_EXT) {
+            const ggml_tensor * dst = node;
+            const ggml_tensor * q = node->src[0];
+            const ggml_tensor * k = node->src[1];
+            const ggml_tensor * v = node->src[2];
+            const ggml_tensor * m = node->src[3];
+            std::stringstream name;
+            name << ggml_op_name(node->op) <<
+                " dst(" << dst->ne[0] << "," << dst->ne[1] << "," << dst->ne[2] << "," << dst->ne[3] << "), " <<
+                " q(" << q->ne[0] << "," << q->ne[1] << "," << q->ne[2] << "," << q->ne[3] << "), " <<
+                " k(" << k->ne[0] << "," << k->ne[1] << "," << k->ne[2] << "," << k->ne[3] << "), " <<
+                " v(" << v->ne[0] << "," << v->ne[1] << "," << v->ne[2] << "," << v->ne[3] << "), " <<
+                " m(" << (m?m->ne[0]:0) << "," << (m?m->ne[1]:0) << "," << (m?m->ne[2]:0) << "," << (m?m->ne[3]:0) << ")";
+            timings[name.str()].push_back(time);
+            return;
+        }
         timings[ggml_op_name(node->op)].push_back(time);
     }
   private:
Repository: denoland/deno
Pull request: fix: --preload and --require flags only available in runtime subcommands

Closes https://github.com/denoland/deno/issues/31609

Changed files:
filename: cli/args/flags.rs
patch: @@ -4378,8 +4378,6 @@ fn compile_args_without_check_args(app: Command) -> Command {
     .args(lock_args())
     .arg(ca_file_arg())
     .arg(unsafely_ignore_certificate_errors_arg())
-    .arg(preload_arg())
-    .arg(require_arg())
     .arg(min_dep_age_arg())
 }
 
@@ -4835,6 +4833,8 @@ fn runtime_misc_args(app: Command) -> Command {
     .arg(enable_testing_features_arg())
     .arg(trace_ops_arg())
     .arg(eszip_arg())
+    .arg(preload_arg())
+    .arg(require_arg())
 }
 
 fn eszip_arg() -> Arg {
@@ -6847,8 +6847,6 @@ fn compile_args_without_check_parse(
   lock_args_parse(flags, matches);
   ca_file_arg_parse(flags, matches);
   unsafely_ignore_certificate_errors_parse(flags, matches);
-  preload_arg_parse(flags, matches);
-  require_arg_parse(flags, matches);
   min_dep_age_arg_parse(flags, matches);
   Ok(())
 }
@@ -7114,6 +7112,8 @@ fn runtime_args_parse(
   env_file_arg_parse(flags, matches);
   trace_ops_parse(flags, matches);
   eszip_arg_parse(flags, matches);
+  preload_arg_parse(flags, matches);
+  require_arg_parse(flags, matches);
   Ok(())
 }
Repository: electron/electron
Pull request: build: remove skip_atk_toolchain_check.patch

#### Description of Change

This patch used to be needed to work around a gn error on Linux arm / arm64, but it doesn't seem to be needed anymore.

#### 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: patches/chromium/.patches
patch: @@ -50,7 +50,6 @@ upload_list_add_loadsync_method.patch
 allow_setting_secondary_label_via_simplemenumodel.patch
 feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch
 adjust_accessibility_ui_for_electron.patch
-skip_atk_toolchain_check.patch
 worker_feat_add_hook_to_notify_script_ready.patch
 chore_provide_iswebcontentscreationoverridden_with_full_params.patch
 fix_properly_honor_printing_page_ranges.patch

filename: patches/chromium/skip_atk_toolchain_check.patch
patch: @@ -1,47 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: John Kleinschmidt <jkleinsc@github.com>
-Date: Wed, 15 Jul 2020 17:52:32 -0400
-Subject: skip atk toolchain check
-
-this patch is needed to work around the following gn error on
-Linux arm/arm64:
-
-ERROR at //build/config/linux/atk/BUILD.gn:13:1: Assertion failed.
-
-assert(current_toolchain == default_toolchain)
-
-^-----
-
-See //ui/accessibility/BUILD.gn:297:20: which caused the file to be included.
-
-      configs += [ "//build/config/linux/atk" ]
-
-                   ^-------------------------
-"//build/config/linux/atk" is only needed for accessibility unit tests
-which we don't build
-
-diff --git a/build/config/linux/atk/BUILD.gn b/build/config/linux/atk/BUILD.gn
-index 239c3870a149a9c31d8458c5c6aeb543d80c2a6a..843f442a55ce866dc018de74c33d888cbffb8dd4 100644
---- a/build/config/linux/atk/BUILD.gn
-+++ b/build/config/linux/atk/BUILD.gn
-@@ -11,7 +11,7 @@ import("//build/config/ui.gni")
- assert(!is_chromeos)
- 
- # These packages should _only_ be expected when building for a target.
--assert(current_toolchain == default_toolchain)
-+#assert(current_toolchain == default_toolchain)
- 
- if (use_atk) {
-   assert(use_glib, "use_atk=true requires that use_glib=true")
-diff --git a/build/config/linux/atspi2/BUILD.gn b/build/config/linux/atspi2/BUILD.gn
-index 30bc77f9c23fbdd4cf46f3ae022266c75f0e9ddf..2f3070c91be9bd5a7c7456004efd44d8c5f665b0 100644
---- a/build/config/linux/atspi2/BUILD.gn
-+++ b/build/config/linux/atspi2/BUILD.gn
-@@ -6,7 +6,6 @@ import("//build/config/linux/pkg_config.gni")
- import("//build/config/ui.gni")
- 
- # These packages should _only_ be expected when building for a target.
--assert(current_toolchain == default_toolchain)
- 
- if (use_atk) {
-   pkg_config("atspi2") {
Repository: facebook/react
Pull request: Fix #29724: `ip` dependency update for CVE-2024-29415

## Summary

This version update of `ip` dependency solves the CVE-2024-29415 vulnerability.


Changed files:
filename: packages/react-devtools/package.json
patch: @@ -25,7 +25,7 @@
   "dependencies": {
     "cross-spawn": "^5.0.1",
     "electron": "^23.1.2",
-    "ip": "^1.1.4",
+    "ip": "^2.0.1",
     "minimist": "^1.2.3",
     "react-devtools-core": "5.2.0",
     "update-notifier": "^2.1.0"
Repository: nodejs/node
Pull request: [v22.x backport] worker: make Worker async disposable

Backport of https://github.com/nodejs/node/pull/58385

Changed files:
filename: test/parallel/test-worker-dispose.mjs
patch: @@ -0,0 +1,9 @@
+import * as common from '../common/index.mjs';
+import { Worker } from 'node:worker_threads';
+
+{
+  // Verifies that the worker is async disposable
+  const worker = new Worker('for(;;) {}', { eval: true });
+  worker.on('exit', common.mustCall());
+  await worker[Symbol.asyncDispose]();
+}
Repository: electron/electron
Pull request: fix: printing when no `mediaSize` specified

#### Description of Change

Closes https://github.com/electron/electron/issues/46921.

Ensures `mediaSize` defaults to A4 when no `mediaSize` is passed, fixing the following:

```
[83233:0505/195335.950737:ERROR:components/device_event_log/device_event_log_impl.cc:202] [19:53:35.950] Printer: print_view_manager_base.cc:384 Printer settings invalid for _127_0_0_1 (destination type kLocal): content size is empty; page size is empty; printable area is empty
```

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [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: Fixed an issue where `webContents.print` did not work as expected when `mediaSize` was not passed.

Changed files:
filename: shell/browser/api/electron_api_web_contents.cc
patch: @@ -3133,11 +3133,21 @@ void WebContents::Print(gin::Arguments* args) {
   options.Get("duplexMode", &duplex_mode);
   settings.Set(printing::kSettingDuplexMode, static_cast<int>(duplex_mode));
 
-  // We've already done necessary parameter sanitization at the
-  // JS level, so we can simply pass this through.
-  base::Value media_size(base::Value::Type::DICT);
-  if (options.Get("mediaSize", &media_size))
+  base::Value::Dict media_size;
+  if (options.Get("mediaSize", &media_size)) {
     settings.Set(printing::kSettingMediaSize, std::move(media_size));
+  } else {
+    // Default to A4 paper size (210mm x 297mm)
+    settings.Set(printing::kSettingMediaSize,
+                 base::Value::Dict()
+                     .Set(printing::kSettingMediaSizeHeightMicrons, 297000)
+                     .Set(printing::kSettingMediaSizeWidthMicrons, 210000)
+                     .Set(printing::kSettingsImageableAreaLeftMicrons, 0)
+                     .Set(printing::kSettingsImageableAreaTopMicrons, 297000)
+                     .Set(printing::kSettingsImageableAreaRightMicrons, 210000)
+                     .Set(printing::kSettingsImageableAreaBottomMicrons, 0)
+                     .Set(printing::kSettingMediaSizeIsDefault, true));
+  }
 
   // Set custom dots per inch (dpi)
   gin_helper::Dictionary dpi_settings;
Repository: vercel/next.js
Pull request: [test] Disable flaky navigation test

Not test flake but implementation flake: [dashboard of failed tests](https://app.datadoghq.com/ci/test/runs?query=test_level%3Atest%20%40test.source.file%3Atest%2Fe2e%2Fapp-dir%2Fback-forward-cache%2Fback-forward-cache.test.ts%20%40test.status%3Afail%20%40test_session.name%3Atest-deploy-%2A%20%40test.name%3A%22back%2Fforward%20cache%20React%20state%20is%20preserved%20when%20navigating%20back%20to%20a%20page%20with%20different%20search%20params%20than%20before%20%22&agg_m=count&agg_m_source=base&agg_t=count&currentTab=overview&eventStack=&fromUser=false&index=citest&start=1757403957449&end=1758008757449&paused=false). Disabling since it blocks too many syncs and we don't have the flag on internally anyway.

Changed files:
filename: test/e2e/app-dir/back-forward-cache/back-forward-cache.test.ts
patch: @@ -100,7 +100,8 @@ describe('back/forward cache', () => {
     expect(await counterDisplay2AfterNav.text()).toBe('Count: 9')
   })
 
-  it('React state is preserved when navigating back to a page with different search params than before ', async () => {
+  // FIXME: Flaky test: https://vercel.slack.com/archives/C07CJPHL49E/p1758009379720479
+  it.skip('React state is preserved when navigating back to a page with different search params than before ', async () => {
     const browser = await next.browser('/page/1')
 
     // Accumulate some state on page 1.
Repository: ggml-org/llama.cpp
Pull request: vulkan: Update docker image to Ubuntu 26.04 to enable glslc features

26.04 provides these



Changed files:
filename: .devops/vulkan.Dockerfile
patch: @@ -1,9 +1,7 @@
-ARG UBUNTU_VERSION=25.10
+ARG UBUNTU_VERSION=26.04
 
 FROM ubuntu:$UBUNTU_VERSION AS build
 
-# Ref: https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html
-
 # Install build tools
 RUN apt update && apt install -y git build-essential cmake wget xz-utils
Repository: facebook/react
Pull request: [Flight] Encode fragments properly in DEV

Normally we take the renderClientElement path but this is an internal fast path.

No tests because we don't run tests with console.createTask (which is not easy since we test component stacks).

Ideally this would be covered by types but since the types don't consider flags and DEV it doesn't really help.

Changed files:
filename: packages/react-server/src/ReactFlightServer.js
patch: @@ -1215,12 +1215,25 @@ function renderFragment(
   if (task.keyPath !== null) {
     // We have a Server Component that specifies a key but we're now splitting
     // the tree using a fragment.
-    const fragment = [
-      REACT_ELEMENT_TYPE,
-      REACT_FRAGMENT_TYPE,
-      task.keyPath,
-      {children},
-    ];
+    const fragment = __DEV__
+      ? enableOwnerStacks
+        ? [
+            REACT_ELEMENT_TYPE,
+            REACT_FRAGMENT_TYPE,
+            task.keyPath,
+            {children},
+            null,
+            null,
+            0,
+          ]
+        : [
+            REACT_ELEMENT_TYPE,
+            REACT_FRAGMENT_TYPE,
+            task.keyPath,
+            {children},
+            null,
+          ]
+      : [REACT_ELEMENT_TYPE, REACT_FRAGMENT_TYPE, task.keyPath, {children}];
     if (!task.implicitSlot) {
       // If this was keyed inside a set. I.e. the outer Server Component was keyed
       // then we need to handle reorders of the whole set. To do this we need to wrap
@@ -1274,12 +1287,25 @@ function renderAsyncFragment(
   if (task.keyPath !== null) {
     // We have a Server Component that specifies a key but we're now splitting
     // the tree using a fragment.
-    const fragment = [
-      REACT_ELEMENT_TYPE,
-      REACT_FRAGMENT_TYPE,
-      task.keyPath,
-      {children},
-    ];
+    const fragment = __DEV__
+      ? enableOwnerStacks
+        ? [
+            REACT_ELEMENT_TYPE,
+            REACT_FRAGMENT_TYPE,
+            task.keyPath,
+            {children},
+            null,
+            null,
+            0,
+          ]
+        : [
+            REACT_ELEMENT_TYPE,
+            REACT_FRAGMENT_TYPE,
+            task.keyPath,
+            {children},
+            null,
+          ]
+      : [REACT_ELEMENT_TYPE, REACT_FRAGMENT_TYPE, task.keyPath, {children}];
     if (!task.implicitSlot) {
       // If this was keyed inside a set. I.e. the outer Server Component was keyed
       // then we need to handle reorders of the whole set. To do this we need to wrap
Repository: electron/electron
Pull request: fix: printing when no `mediaSize` specified

Backport of #46937

See that PR for details.


Notes: Fixed an issue where `webContents.print` did not work as expected when `mediaSize` was not passed.

Changed files:
filename: shell/browser/api/electron_api_web_contents.cc
patch: @@ -3133,11 +3133,21 @@ void WebContents::Print(gin::Arguments* args) {
   options.Get("duplexMode", &duplex_mode);
   settings.Set(printing::kSettingDuplexMode, static_cast<int>(duplex_mode));
 
-  // We've already done necessary parameter sanitization at the
-  // JS level, so we can simply pass this through.
-  base::Value media_size(base::Value::Type::DICT);
-  if (options.Get("mediaSize", &media_size))
+  base::Value::Dict media_size;
+  if (options.Get("mediaSize", &media_size)) {
     settings.Set(printing::kSettingMediaSize, std::move(media_size));
+  } else {
+    // Default to A4 paper size (210mm x 297mm)
+    settings.Set(printing::kSettingMediaSize,
+                 base::Value::Dict()
+                     .Set(printing::kSettingMediaSizeHeightMicrons, 297000)
+                     .Set(printing::kSettingMediaSizeWidthMicrons, 210000)
+                     .Set(printing::kSettingsImageableAreaLeftMicrons, 0)
+                     .Set(printing::kSettingsImageableAreaTopMicrons, 297000)
+                     .Set(printing::kSettingsImageableAreaRightMicrons, 210000)
+                     .Set(printing::kSettingsImageableAreaBottomMicrons, 0)
+                     .Set(printing::kSettingMediaSizeIsDefault, true));
+  }
 
   // Set custom dots per inch (dpi)
   gin_helper::Dictionary dpi_settings;
Repository: nodejs/node
Pull request: test: don't use expose internals in test-http-outgoing-buffer.js


Changed files:
filename: test/parallel/test-http-outgoing-buffer.js
patch: @@ -1,8 +1,7 @@
-// Flags: --expose-internals
 'use strict';
 require('../common');
 const assert = require('assert');
-const { getDefaultHighWaterMark } = require('internal/streams/state');
+const { getDefaultHighWaterMark } = require('stream');
 
 const http = require('http');
 const OutgoingMessage = http.OutgoingMessage;
Repository: vercel/next.js
Pull request: Update next-intlayer reference in i18n doc

[`next-intlayer`](https://intlayer.org/doc/environment/nextjs) is an i18n library that adopts a per-component approach to manage multilingual content in a next.js application.

### Changes
- Fix doc related to page-router documentation,
- And add App Router realted doc.

Changed files:
filename: docs/01-app/02-guides/internationalization.mdx
patch: @@ -215,3 +215,4 @@ export default async function RootLayout({ children, params }) {
 - [`paraglide-next`](https://inlang.com/m/osslbuzt/paraglide-next-i18n)
 - [`lingui`](https://lingui.dev)
 - [`tolgee`](https://tolgee.io/apps-integrations/next)
+- [`next-intlayer`](https://intlayer.org/doc/environment/nextjs)

filename: docs/02-pages/02-guides/internationalization.mdx
patch: @@ -13,7 +13,7 @@ description: Next.js has built-in support for internationalized routing and lang
 
 Next.js has built-in support for internationalized ([i18n](https://en.wikipedia.org/wiki/Internationalization_and_localization#Naming)) routing since `v10.0.0`. You can provide a list of locales, the default locale, and domain-specific locales and Next.js will automatically handle the routing.
 
-The i18n routing support is currently meant to complement existing i18n library solutions like [`react-intl`](https://formatjs.io/docs/getting-started/installation), [`react-i18next`](https://react.i18next.com/), [`lingui`](https://lingui.dev/), [`rosetta`](https://github.com/lukeed/rosetta), [`next-intl`](https://github.com/amannn/next-intl), [`next-translate`](https://github.com/aralroca/next-translate), [`next-multilingual`](https://github.com/Avansai/next-multilingual), [`tolgee`](https://tolgee.io/integrations/next), [`paraglide-next`](https://inlang.com/m/osslbuzt/paraglide-next-i18n), [`next-intlayer`](https://intlayer.org/doc/environment/nextjs) and others by streamlining the routes and locale parsing.
+The i18n routing support is currently meant to complement existing i18n library solutions like [`react-intl`](https://formatjs.io/docs/getting-started/installation), [`react-i18next`](https://react.i18next.com/), [`lingui`](https://lingui.dev/), [`rosetta`](https://github.com/lukeed/rosetta), [`next-intl`](https://github.com/amannn/next-intl), [`next-translate`](https://github.com/aralroca/next-translate), [`next-multilingual`](https://github.com/Avansai/next-multilingual), [`tolgee`](https://tolgee.io/integrations/next), [`paraglide-next`](https://inlang.com/m/osslbuzt/paraglide-next-i18n), [`next-intlayer`](https://intlayer.org/doc/environment/nextjs/next-with-page-router) and others by streamlining the routes and locale parsing.
 
 ## Getting started