helloadhavan/github_issues huggingface dataset:
Repository: huggingface/transformers
Pull request: tests: fix asyncio.wait() usage for python>=3.11

Passing coroutings directly to `asyncio.wait()` is deprecated since python 3.8 and removed starting from python 3.11. Instead, it's required to explicitly wrap coroutine in the task with `asyncio.create_task()` which first appeared in python 3.7.

We step into this issue running the following Transformers tests on a systems with python 3.11 or later (for example, Ubuntu 24.04 has python 3.12). Note that multi-accelerator system is required to run these tests (multi-CUDA or multi-XPU):

* `tests/trainer/test_trainer_distributed.py`
* `tests/extended/test_trainer_ext.py`

The error will be:
```
src/transformers/testing_utils.py:2380: in execute_subprocess_async
    result = loop.run_until_complete(
/usr/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
    return future.result()
src/transformers/testing_utils.py:2368: in _stream_subprocess
    await asyncio.wait(
...
E           TypeError: Passing coroutines is forbidden, use tasks explicitly.

```

See: https://docs.python.org/3.10/library/asyncio-task.html#asyncio.wait
See: https://docs.python.org/3.10/library/asyncio-task.html#asyncio.wait
See: https://docs.python.org/3.7/library/asyncio-task.html#asyncio.create_task

CC: @ydshieh, @SunMarc 

Changed files:
filename: src/transformers/testing_utils.py
patch: @@ -2367,8 +2367,8 @@ def tee(line, sink, pipe, label=""):
     # XXX: the timeout doesn't seem to make any difference here
     await asyncio.wait(
         [
-            _read_stream(p.stdout, lambda l: tee(l, out, sys.stdout, label="stdout:")),
-            _read_stream(p.stderr, lambda l: tee(l, err, sys.stderr, label="stderr:")),
+            asyncio.create_task(_read_stream(p.stdout, lambda l: tee(l, out, sys.stdout, label="stdout:"))),
+            asyncio.create_task(_read_stream(p.stderr, lambda l: tee(l, err, sys.stderr, label="stderr:"))),
         ],
         timeout=timeout,
     )
Repository: denoland/deno
Pull request: fix: add missing `URL.parse` types

<!--
Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label.
-->

closes #23891
ref https://github.com/denoland/vscode_deno/issues/1116

Changed files:
filename: cli/tsc/dts/lib.dom.d.ts
patch: @@ -22735,9 +22735,11 @@ declare var URL: {
     prototype: URL;
     new(url: string | URL, base?: string | URL): URL;
     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static) */
-    canParse(url: string | URL, base?: string): boolean;
+    canParse(url: string | URL, base?: string | URL): boolean;
     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static) */
     createObjectURL(obj: Blob | MediaSource): string;
+    /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/parse_static) */
+    parse(url: string | URL, base?: string | URL): URL | null;
     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static) */
     revokeObjectURL(url: string): void;
 };

filename: cli/tsc/dts/lib.webworker.d.ts
patch: @@ -5680,9 +5680,11 @@ declare var URL: {
     prototype: URL;
     new(url: string | URL, base?: string | URL): URL;
     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static) */
-    canParse(url: string | URL, base?: string): boolean;
+    canParse(url: string | URL, base?: string | URL): boolean;
     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static) */
     createObjectURL(obj: Blob): string;
+    /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/parse_static) */
+    parse(url: string | URL, base?: string | URL): URL | null;
     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static) */
     revokeObjectURL(url: string): void;
 };
Repository: electron/electron
Pull request: test: add test for nodeCliInspect fuse

#### Description of Change

<!--
Thank you for your Pull Request. Please provide a description above and review
the requirements below.

Contributors guide: https://github.com/electron/electron/blob/main/CONTRIBUTING.md
-->

Test coverage is swell.

#### 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] tests are [changed or added](https://github.com/electron/electron/blob/main/docs/development/testing.md)

#### Release Notes

Notes: none <!-- Please add a one-line description for app developers to read in the release notes, or 'none' if no notes relevant to app developers. Examples and help on special cases: https://github.com/electron/clerk/blob/main/README.md#examples -->


Changed files:
filename: spec/fuses-spec.ts
patch: @@ -1,7 +1,7 @@
 import { expect } from 'chai';
 import { startRemoteControlApp } from './lib/spec-helpers';
 import { once } from 'node:events';
-import { spawn } from 'node:child_process';
+import { spawn, spawnSync } from 'node:child_process';
 import { BrowserWindow } from 'electron';
 import path = require('node:path');
 
@@ -17,6 +17,13 @@ describe('fuses', () => {
     expect(code1).to.equal(0);
   });
 
+  it('disables --inspect flag when node_cli_inspect is 0', () => {
+    const { status, stderr } = spawnSync(process.execPath, ['--set-fuse-node_cli_inspect=0', '--inspect', '-v'], { encoding: 'utf-8' });
+    expect(stderr).to.not.include('Debugger listening on ws://');
+    // Should print the version and exit with 0
+    expect(status).to.equal(0);
+  });
+
   it('disables fetching file:// URLs when grant_file_protocol_extra_privileges is 0', async () => {
     const rc = await startRemoteControlApp(['--set-fuse-grant_file_protocol_extra_privileges=0']);
     await expect(rc.remotely(async (fixture: string) => {
Repository: ggml-org/llama.cpp
Pull request: Issues while building on AIX OS

AIX doesnt support RLIMIT_MEMLOCK. Skipping resource limit checks on AIX.


Changed files:
filename: src/llama-mmap.cpp
patch: @@ -476,7 +476,7 @@ struct llama_mlock::impl {
 
         char* errmsg = std::strerror(errno);
         bool suggest = (errno == ENOMEM);
-#if defined(TARGET_OS_VISION) || defined(TARGET_OS_TV)
+#if defined(TARGET_OS_VISION) || defined(TARGET_OS_TV) || defined(_AIX)
         // visionOS/tvOS dont't support RLIMIT_MEMLOCK
         // Skip resource limit checks on visionOS/tvOS
         suggest = false;
Repository: ggml-org/llama.cpp
Pull request: vulkan: fix mul_mat_vec failure in backend tests

The OOB calculation could be wrong if the last iteration was during one of the unrolled loops. Adjust the unrolling counts to avoid this. Add a couple new backend tests that hit this failure on NVIDIA GPUs.

This fixes a failure that showed up in some new tests added in https://github.com/ggml-org/llama.cpp/pull/12505.

Changed files:
filename: ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp
patch: @@ -105,6 +105,16 @@ void compute_outputs(const uint32_t first_row, const uint32_t num_rows) {
     int unroll_count = 4;
     uint unrolled_iters = num_iters & ~(unroll_count - 1);
 
+#if K_PER_ITER == 2
+    // If the K dimension is odd, we need lastiter==true on the last iteration
+    // so OOB is computed correctly. Skip some unrolling to make that happen.
+    if ((p.ncols & 1) != 0 &&
+        unrolled_iters == num_iters &&
+        unrolled_iters > 0) {
+        unrolled_iters -= unroll_count;
+    }
+#endif
+
     uint i = 0;
     while (i < unrolled_iters) {
         // Manually partially unroll the loop
@@ -113,8 +123,18 @@ void compute_outputs(const uint32_t first_row, const uint32_t num_rows) {
             i++;
         }
     }
+
     unroll_count = 2;
     unrolled_iters = num_iters & ~(unroll_count - 1);
+
+#if K_PER_ITER == 2
+    if ((p.ncols & 1) != 0 &&
+        unrolled_iters == num_iters &&
+        unrolled_iters > 0) {
+        unrolled_iters -= unroll_count;
+    }
+#endif
+
     while (i < unrolled_iters) {
         // Manually partially unroll the loop
         [[unroll]] for (uint k = 0; k < unroll_count; ++k) {

filename: tests/test-backend-ops.cpp
patch: @@ -4204,6 +4204,8 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_eval() {
     test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32,  83, 2,   64, { 8,  1}, {4, 1}));
     test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32,  64, 45, 128, { 8,  1}, {4, 1}));
     test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 128, 45,  64, { 8,  1}, {4, 1}));
+    test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 1056, 1, 193, {1,  1}, {4, 1}, {0, 2, 1, 3}));
+    test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 1056, 1, 67,  {1,  1}, {4, 1}, {0, 2, 1, 3}));
 
     for (auto bs : {1,2,4,8}) {
         for (auto nr : {1,4}) {
Repository: nodejs/node
Pull request: tools: fix c-ares updater script for Node.js 18

GitHub Actions is by default running the tools updater workflow with Node.js 18. Avoid use of `import.meta.dirname`, which wasn't backported to Node.js 18.

Refs: https://github.com/nodejs/node/pull/55445

---

Example error, https://github.com/nodejs/node/actions/runs/11647004207/job/32431749696
```
node:internal/errors:496
    ErrorCaptureStackTrace(err);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at new NodeError (node:internal/errors:405:5)
    at validateString (node:internal/validators:162:11)
    at join (node:path:1171:7)
    at file:///home/runner/work/node/node/tools/dep_updaters/update-c-ares.mjs:5:17
    at ModuleJob.run (node:internal/modules/esm/module_job:195:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:337:24)
    at async loadESM (node:internal/process/esm_loader:34:7)
    at async handleMainPromise (node:internal/modules/run_main:106:12) {
  code: 'ERR_INVALID_ARG_TYPE'
}

Node.js v18.20.4
```

We could introduce the `setup-node` action into the workflow to pick a later Node.js version, but Node.js 18 is still in support and it's fairly trivial to workaround.

Changed files:
filename: tools/dep_updaters/update-c-ares.mjs
patch: @@ -1,8 +1,9 @@
 // Synchronize the sources for our c-ares gyp file from c-ares' Makefiles.
 import { readFileSync, writeFileSync } from 'node:fs';
 import { join } from 'node:path';
+import { fileURLToPath } from 'node:url';
 
-const srcroot = join(import.meta.dirname, '..', '..');
+const srcroot = fileURLToPath(new URL('../../', import.meta.url));
 const options = { encoding: 'utf8' };
 
 // Extract list of sources from the gyp file.
Repository: vercel/next.js
Pull request: [test] Update stale snapshots

https://github.com/vercel/next.js/pull/77640 but for React 18 tests

Changed files:
filename: test/development/acceptance/ReactRefreshLogBox.test.ts
patch: @@ -133,8 +133,8 @@ describe('ReactRefreshLogBox', () => {
              |       ^",
            "stack": [
              "[project]/index.js [ssr] (ecmascript) index.js (3:7)",
-             "<FIXME-next-dist-dir>",
-             "<FIXME-next-dist-dir>",
+             "[project]/pages/index.js [ssr] (ecmascript) <module evaluation> pages/index.js (1:1)",
+             "[project]/pages/index.js [ssr] (ecmascript) pages/index.js (1:1)",
              "<FIXME-next-dist-dir>",
            ],
          }
Repository: denoland/deno
Pull request: fix(npm): regression deserializing JSON for some npm packages

* https://github.com/denoland/deno_npm/pull/53

Closes https://github.com/denoland/deno/issues/23862

Changed files:
filename: Cargo.lock
patch: @@ -1726,9 +1726,9 @@ dependencies = [
 
 [[package]]
 name = "deno_npm"
-version = "0.20.1"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9db4bc4de6c0d2935662dcd99542b03a0db5f1778bada7ef2afc074e7819068d"
+checksum = "ab92fbe02da596534ae84e2efca2f7dc5e26ca5fc972bf17701f0899784c2a8f"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -1738,6 +1738,7 @@ dependencies = [
  "log",
  "monch",
  "serde",
+ "serde_json",
  "thiserror",
  "url",
 ]

filename: cli/Cargo.toml
patch: @@ -72,7 +72,7 @@ deno_emit = "=0.40.3"
 deno_graph = { version = "=0.75.2", features = ["tokio_executor"] }
 deno_lint = { version = "=0.58.4", features = ["docs"] }
 deno_lockfile.workspace = true
-deno_npm = "=0.20.1"
+deno_npm = "=0.20.2"
 deno_runtime = { workspace = true, features = ["include_js_files_for_snapshotting"] }
 deno_semver = "=0.5.4"
 deno_task_shell = "=0.16.1"
Repository: ggml-org/llama.cpp
Pull request: server : Add verbose output to OAI compatible chat endpoint.

I noticed that the /chat/completions and /v1/completions endpoints do not return the "__verbose" field in the final server response when running llama-server with -lv 10 and streaming enabled. This is inconsistent with the non-streaming behaviour of those endpoints.

This pr adds verbose output to server_task_result_cmpl_final::to_json_oaicompat_chat_stream, making it conform with server_task_result_cmpl_final::to_json_oaicompat_chat, as well as the other to_json methods.

This was motivated by me wanting to know the tokens_cached in streaming mode on those endpoints. If anyone has another way of doing that, preferably without verbose mode, I'd be very interested.


Changed files:
filename: examples/server/server.cpp
patch: @@ -830,6 +830,11 @@ struct server_task_result_cmpl_final : server_task_result {
             ret.push_back({"timings", timings.to_json()});
         }
 
+        // extra fields for debugging purposes
+        if (verbose) {
+            ret["__verbose"] = to_json_non_oaicompat();
+        }
+
         return ret;
     }
 };
Repository: facebook/react
Pull request: OSS feature flag updates

Supersedes #21590

* Enable `enableSuspenseLayoutEffectSemantics` and `enableStrictEffects` for upcoming 18 release.

While enabling `enableSuspenseLayoutEffectSemantics` I noticed that we haven't actually wired this up within www yet, so I'll land a separate Diff to do that.

Changed files:
filename: packages/shared/ReactFeatureFlags.js
patch: @@ -25,7 +25,7 @@ export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
 
 // Helps identify code that is not safe for planned Offscreen API and Suspense semantics;
 // this feature flag only impacts StrictEffectsMode.
-export const enableStrictEffects = false;
+export const enableStrictEffects = __DEV__;
 
 // If TRUE, trees rendered with createRoot will be StrictEffectsMode.
 // If FALSE, these trees will be StrictLegacyMode.
@@ -128,7 +128,7 @@ export const deletedTreeCleanUpLevel = 1;
 // Destroy layout effects for components that are hidden because something suspended in an update
 // and recreate them when they are shown again (after the suspended boundary has resolved).
 // Note that this should be an uncommon use case and can be avoided by using the transition API.
-export const enableSuspenseLayoutEffectSemantics = false;
+export const enableSuspenseLayoutEffectSemantics = true;
 
 // --------------------------
 // Future APIs to be deprecated

filename: packages/shared/forks/ReactFeatureFlags.www.js
patch: @@ -25,7 +25,6 @@ export const {
   deferRenderPhaseUpdateToNextBatch,
   enableDebugTracing,
   skipUnmountedBoundaries,
-  enableStrictEffects,
   createRootStrictEffectsByDefault,
   enableSuspenseLayoutEffectSemantics,
   enableUseRefAccessWarning,
@@ -39,6 +38,8 @@ export const {
 // On WWW, __EXPERIMENTAL__ is used for a new modern build.
 // It's not used anywhere in production yet.
 
+export const enableStrictEffects =
+  __DEV__ && dynamicFeatureFlags.enableStrictEffects;
 export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
 export const enableProfilerTimer = __PROFILE__;
 export const enableProfilerCommitHooks = __PROFILE__;
Repository: ggml-org/llama.cpp
Pull request: Update install.md to include MacPorts section

MacPorts section added

*Make sure to read the [contributing guidelines](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md) before submitting a PR*


Changed files:
filename: docs/install.md
patch: @@ -9,6 +9,13 @@ brew install llama.cpp
 ```
 The formula is automatically updated with new `llama.cpp` releases. More info: https://github.com/ggml-org/llama.cpp/discussions/7668
 
+## MacPorts
+
+```sh
+sudo port install llama.cpp
+```
+see also: https://ports.macports.org/port/llama.cpp/details/
+
 ## Nix
 
 On Mac and Linux, the Nix package manager can be used via
Repository: nodejs/node
Pull request: util: don't catch on circular toStringTag error

Fixes #55539 by only supressing an error from a circular `inspectRaw` if it is a max-call-stack-exceeded error, otherwise, throw the error.

Changed files:
filename: lib/internal/util/inspect.js
patch: @@ -1072,6 +1072,7 @@ function formatRaw(ctx, value, recurseTimes, typedArray) {
       ArrayPrototypePushApply(output, protoProps);
     }
   } catch (err) {
+    if (!isStackOverflowError(err)) throw err;
     const constructorName = StringPrototypeSlice(getCtxStyle(value, constructor, tag), 0, -1);
     return handleMaxCallStackSize(ctx, err, constructorName, indentationLvl);
   }
@@ -1557,17 +1558,13 @@ function groupArrayElements(ctx, output, value) {
 }
 
 function handleMaxCallStackSize(ctx, err, constructorName, indentationLvl) {
-  if (isStackOverflowError(err)) {
-    ctx.seen.pop();
-    ctx.indentationLvl = indentationLvl;
-    return ctx.stylize(
-      `[${constructorName}: Inspection interrupted ` +
-        'prematurely. Maximum call stack size exceeded.]',
-      'special',
-    );
-  }
-  /* c8 ignore next */
-  assert.fail(err.stack);
+  ctx.seen.pop();
+  ctx.indentationLvl = indentationLvl;
+  return ctx.stylize(
+    `[${constructorName}: Inspection interrupted ` +
+      'prematurely. Maximum call stack size exceeded.]',
+    'special',
+  );
 }
 
 function addNumericSeparator(integerString) {

filename: test/parallel/test-util-inspect.js
patch: @@ -1644,6 +1644,15 @@ util.inspect(process);
 
   assert.throws(() => util.inspect(new ThrowingClass()), /toStringTag error/);
 
+  const y = {
+    get [Symbol.toStringTag]() {
+      return JSON.stringify(this);
+    }
+  };
+  const x = { y };
+  y.x = x;
+  assert.throws(() => util.inspect(x), /TypeError: Converting circular structure to JSON/);
+
   class NotStringClass {
     get [Symbol.toStringTag]() {
       return null;
Repository: ggml-org/llama.cpp
Pull request: llama : gemma3 : use output tensor if it exists in model weight

Fix #12483

Some fine-tuned models have it, we should include it in the converted model to make sure it runs correctly.

While we can remove this as suggested in the issue, I think it's not worth the risk. We are not sure if the fine tuning code produces different token_embd and lm_head tensor or not.


Changed files:
filename: gguf-py/gguf/constants.py
patch: @@ -1113,6 +1113,7 @@ class MODEL_TENSOR(IntEnum):
     ],
     MODEL_ARCH.GEMMA3: [
         MODEL_TENSOR.TOKEN_EMBD,
+        MODEL_TENSOR.OUTPUT,
         MODEL_TENSOR.OUTPUT_NORM,
         MODEL_TENSOR.ATTN_Q,
         MODEL_TENSOR.ATTN_Q_NORM,

filename: src/llama-arch.cpp
patch: @@ -778,6 +778,7 @@ static const std::map<llm_arch, std::map<llm_tensor, const char *>> LLM_TENSOR_N
         {
             { LLM_TENSOR_TOKEN_EMBD,      "token_embd" },
             { LLM_TENSOR_OUTPUT_NORM,     "output_norm" },
+            { LLM_TENSOR_OUTPUT,          "output" },
             { LLM_TENSOR_ATTN_NORM,       "blk.%d.attn_norm" },
             { LLM_TENSOR_ATTN_Q,          "blk.%d.attn_q" },
             { LLM_TENSOR_ATTN_Q_NORM,     "blk.%d.attn_q_norm" },

filename: src/llama-model.cpp
patch: @@ -2571,7 +2571,12 @@ bool llama_model::load_tensors(llama_model_loader & ml) {
 
                     // output
                     output_norm = create_tensor(tn(LLM_TENSOR_OUTPUT_NORM, "weight"), {n_embd}, 0);
-                    output      = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD,  "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED); // same as tok_embd, duplicated to allow offloading
+                    output      = create_tensor(tn(LLM_TENSOR_OUTPUT,      "weight"), {n_embd, n_vocab}, TENSOR_NOT_REQUIRED);
+
+                    // if output is NULL, init from the input tok embed
+                    if (output == NULL) {
+                        output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD,   "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED);
+                    }
 
                     for (int i = 0; i < n_layer; ++i) {
                         auto & layer = layers[i];
Repository: facebook/react
Pull request: Fix global reference to Promise

Referencing Promise without a type check will throw in environments where Promise is not defined.

We will follow up with a lint rule that restricts access to all globals except in dedicated module indirections.

Changed files:
filename: packages/react-dom/src/client/ReactDOMHostConfig.js
patch: @@ -392,7 +392,7 @@ export const scheduleTimeout: any =
 export const cancelTimeout: any =
   typeof clearTimeout === 'function' ? clearTimeout : (undefined: any);
 export const noTimeout = -1;
-const localPromise = Promise;
+const localPromise = typeof Promise === 'function' ? Promise : undefined;
 
 // -------------------
 //     Microtasks
Repository: huggingface/transformers
Pull request: Update installation.md

Fix virtual env activation command

Changed files:
filename: README.md
patch: @@ -76,12 +76,12 @@ Create and activate a virtual environment with [venv](https://docs.python.org/3/
 
 ```py
 # venv
-python -m venv my-env
-source ./my-env/bin/activate
+python -m venv .my-env
+source .my-env/bin/activate
 
 # uv
-uv venv my-env
-source ./my-env/bin/activate
+uv venv .my-env
+source .my-env/bin/activate
 ```
 
 Install Transformers in your virtual environment.

filename: docs/source/en/installation.md
patch: @@ -33,7 +33,7 @@ Create and activate a virtual environment in your project directory with [venv](
 
 ```bash
 python -m venv .env
-source ./env/bin/activate
+source .env/bin/activate
 ```
 
 </hfoption>
@@ -43,7 +43,7 @@ source ./env/bin/activate
 
 ```bash
 uv venv .env
-source ./env/bin/activate
+source .env/bin/activate
 ```
 
 </hfoption>