helloadhavan/github_issues huggingface dataset:
Repository: electron/electron
Pull request: ci: don't request review for PRs in draft or WIP

#### Description of Change
- Followup to #50248.  The Needs Review status should not be set for draft or WIP prs.
<!--
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

NOTE: PRS submitted without this template will be automatically closed.
-->

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included
- [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: <!-- 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 -->none


Changed files:
filename: .github/workflows/pr-triage-automation.yml
patch: @@ -16,10 +16,13 @@ jobs:
   set-needs-review:
     name: Set status to Needs Review
     if: >-
-      (github.event_name == 'pull_request_target' && github.event.action == 'synchronize')
-      || (github.event_name == 'pull_request_target' && github.event.action == 'review_requested')
+      (github.event_name == 'pull_request_target'
+        && github.event.pull_request.draft != true
+        && !contains(github.event.pull_request.labels.*.name, 'wip ⚒')
+        && (github.event.action == 'synchronize' || github.event.action == 'review_requested'))
       || (github.event_name == 'issue_comment'
           && github.event.issue.pull_request
+          && !contains(github.event.issue.labels.*.name, 'wip ⚒')
           && github.event.comment.user.login == github.event.issue.user.login)
     runs-on: ubuntu-slim
     permissions:
Repository: vercel/next.js
Pull request: Fix `unstable_catchError` type inference for fallback props

### Why?

TypeScript fails to infer the generic `P` from `Omit<P, 'children'>` in the fallback function parameter.

```
Argument of type '(props: { title: string; }, { error, reset, unstable_retry }: ErrorInfo) => Element' is not assignable to parameter of type '(props: Omit<UserProps, "children">, errorInfo: ErrorInfo) => ReactNode'.
  Types of parameters 'props' and 'props' are incompatible.
    Property 'title' is missing in type 'Omit<UserProps, "children">' but required in type '{ title: string; }'.ts(2345)
catch-error-wrapper.tsx(7, 12): 'title' is declared here.
```

Changed files:
filename: packages/next/error.d.ts
patch: @@ -1,3 +1,7 @@
+// Pages Router only
 import Error from './dist/api/error'
 export * from './dist/api/error'
 export default Error
+
+export { unstable_catchError } from './dist/api/error'
+export type { ErrorInfo } from './dist/api/error'

filename: packages/next/src/client/components/catch-error.tsx
patch: @@ -22,10 +22,10 @@ type CatchErrorProps<P extends UserProps> = {
   pathname: string | null
   isPagesRouter: boolean
   fallback: React.ComponentType<{
-    props: Omit<P, 'children'>
+    props: P
     errorInfo: ErrorInfo
   }>
-  props: Omit<P, 'children'>
+  props: P
   children: React.ReactNode
 }
 
@@ -183,23 +183,18 @@ export function unstable_catchError<P extends UserProps>(
   fallback: (
     // children is omitted by design as the error fallback component is the "fallback"
     // for the children when an error occurs.
-    props: Omit<P, 'children'>,
+    props: P,
     errorInfo: ErrorInfo
   ) => React.ReactNode
-): React.ComponentType<P> {
+): React.ComponentType<P & { children?: React.ReactNode }> {
   // Create Fallback component from the closure of `unstable_catchError`.
-  const Fallback = ({
-    props,
-    errorInfo,
-  }: {
-    props: Omit<P, 'children'>
-    errorInfo: ErrorInfo
-  }) => fallback(props, errorInfo)
+  const Fallback = ({ props, errorInfo }: { props: P; errorInfo: ErrorInfo }) =>
+    fallback(props, errorInfo)
 
   // Rename to match the user component name for DevTools.
   Fallback.displayName = fallback.name || 'CatchErrorFallback'
 
-  return ({ children, ...props }: P) => {
+  return ({ children, ...props }: P & { children?: React.ReactNode }) => {
     // When we're rendering the missing params shell, this will return null. This
     // is because we won't be rendering any not found boundaries or error
     // boundaries for the missing params shell. When this runs on the client
@@ -212,7 +207,7 @@ export function unstable_catchError<P extends UserProps>(
         pathname={pathname}
         isPagesRouter={isPagesRouter}
         fallback={Fallback}
-        props={props}
+        props={props as P}
       >
         {children}
       </CatchError>
Repository: nodejs/node
Pull request: doc: fix overstated Date header requirement in response.sendDate

The docs stated "HTTP requires the Date header in responses" which
oversimplifies the actual requirement. Per RFC 9110 Section 6.6.1,
the Date header is required only for servers with a clock sending
2xx/3xx/4xx responses — it is not required for 1xx or 5xx responses.

Reference the specific RFC section so readers can see the full rules.

Fixes: https://github.com/nodejs/node/issues/42619

Changed files:
filename: doc/api/http.md
patch: @@ -2319,8 +2319,8 @@ added: v0.7.5
 When true, the Date header will be automatically generated and sent in
 the response if it is not already present in the headers. Defaults to true.
 
-This should only be disabled for testing; HTTP requires the Date header
-in responses.
+This should only be disabled for testing; the Date header is required in
+most HTTP responses (see [RFC 9110 Section 6.6.1][] for details).
 
 ### `response.setHeader(name, value)`
 
@@ -4583,6 +4583,7 @@ const agent2 = new http.Agent({ proxyEnv: process.env });
 
 [Built-in Proxy Support]: #built-in-proxy-support
 [RFC 8187]: https://www.rfc-editor.org/rfc/rfc8187.txt
+[RFC 9110 Section 6.6.1]: https://www.rfc-editor.org/rfc/rfc9110#section-6.6.1
 [`'ERR_HTTP_CONTENT_LENGTH_MISMATCH'`]: errors.md#err_http_content_length_mismatch
 [`'checkContinue'`]: #event-checkcontinue
 [`'finish'`]: #event-finish
Repository: ollama/ollama
Pull request: bug: fix loading non-mlx models when ollama is built with mlx support

This change fixes an issue where GGML based models (for either the Ollama runner or the legacy llama.cpp runner) would try to load the mlx library. That would panic and the model fails to start.

Changed files:
filename: x/mlxrunner/mlx/dynamic.go
patch: @@ -8,6 +8,7 @@ package mlx
 import "C"
 
 import (
+	"fmt"
 	"io/fs"
 	"log/slog"
 	"os"
@@ -16,6 +17,13 @@ import (
 	"unsafe"
 )
 
+var initError error
+
+// CheckInit returns any error that occurred during MLX dynamic library initialization.
+func CheckInit() error {
+	return initError
+}
+
 func init() {
 	switch runtime.GOOS {
 	case "darwin":
@@ -34,7 +42,9 @@ func init() {
 	for _, path := range filepath.SplitList(paths) {
 		matches, err := fs.Glob(os.DirFS(path), "libmlxc.*")
 		if err != nil {
-			panic(err)
+			initError = fmt.Errorf("failed to glob for MLX libraries in %s: %w", path, err)
+			slog.Warn("MLX dynamic library not available", "error", initError)
+			return
 		}
 
 		for _, match := range matches {
@@ -61,5 +71,6 @@ func init() {
 		}
 	}
 
-	panic("Failed to load any MLX dynamic library")
+	initError = fmt.Errorf("failed to load any MLX dynamic library from OLLAMA_LIBRARY_PATH=%s", paths)
+	slog.Warn("MLX dynamic library not available", "error", initError)
 }

filename: x/mlxrunner/server.go
patch: @@ -7,6 +7,7 @@ import (
 	"cmp"
 	"encoding/json"
 	"flag"
+	"fmt"
 	"io"
 	"log/slog"
 	"net/http"
@@ -16,12 +17,17 @@ import (
 
 	"github.com/ollama/ollama/envconfig"
 	"github.com/ollama/ollama/logutil"
+	"github.com/ollama/ollama/x/mlxrunner/mlx"
 	"github.com/ollama/ollama/x/mlxrunner/sample"
 )
 
 func Execute(args []string) error {
 	slog.SetDefault(logutil.NewLogger(os.Stderr, envconfig.LogLevel()))
 
+	if err := mlx.CheckInit(); err != nil {
+		return fmt.Errorf("MLX not available: %w", err)
+	}
+
 	var (
 		modelName string
 		port      int
Repository: electron/electron
Pull request: fix: correct linux zygote process titles

Backport of #50509

See that PR for details.


Notes: Fixed Electron child process titles on Linux so they show their types (render, gpu, etc.) and complete command-line arguments and flags in `ps aux`.


Changed files:
filename: shell/app/electron_library_main.mm
patch: @@ -10,6 +10,7 @@
 #include "base/apple/scoped_nsautorelease_pool.h"
 #include "base/at_exit.h"
 #include "base/command_line.h"
+#include "base/compiler_specific.h"
 #include "base/i18n/icu_util.h"
 #include "base/notreached.h"
 #include "content/public/app/content_main.h"
@@ -33,7 +34,10 @@ int ElectronMain(int argc, char* argv[]) {
   delegate.OverrideFrameworkBundlePath();
   delegate.SetUpBundleOverrides();
 
-  return content::ContentMain(content::ContentMainParams{&delegate});
+  content::ContentMainParams params{&delegate};
+  params.argc = argc;
+  params.argv = UNSAFE_BUFFERS(const_cast<const char**>(argv));
+  return content::ContentMain(std::move(params));
 }
 
 int ElectronInitializeICUandStartNode(int argc, char* argv[]) {

filename: shell/app/electron_main_linux.cc
patch: @@ -6,6 +6,7 @@
 
 #include "base/at_exit.h"
 #include "base/command_line.h"
+#include "base/compiler_specific.h"
 #include "base/i18n/icu_util.h"
 #include "base/strings/cstring_view.h"
 #include "content/public/app/content_main.h"
@@ -29,6 +30,9 @@ namespace {
 int main(int argc, char* argv[]) {
   FixStdioStreams();
 
+  // Chromium expects the original argv in its original memory location
+  // to update /proc/<pid>/cmdline.
+  const char** original_argv = UNSAFE_BUFFERS(const_cast<const char**>(argv));
   argv = uv_setup_args(argc, argv);
   base::CommandLine::Init(argc, argv);
   electron::ElectronCommandLine::Init(argc, argv);
@@ -40,5 +44,8 @@ int main(int argc, char* argv[]) {
   }
 
   electron::ElectronMainDelegate delegate;
-  return content::ContentMain(content::ContentMainParams{&delegate});
+  content::ContentMainParams params{&delegate};
+  params.argc = argc;
+  params.argv = original_argv;
+  return content::ContentMain(std::move(params));
 }
Repository: nodejs/node
Pull request: tools: update nixpkgs-unstable to 9cf7092bdd603554bd8b63c216e8943cf9b

This is an automated update of nixpkgs-unstable to 9cf7092bdd603554bd8b63c216e8943cf9b.

Changed files:
filename: tools/nix/pkgs.nix
patch: @@ -1,10 +1,10 @@
 arg:
 let
   repo = "https://github.com/NixOS/nixpkgs";
-  rev = "f82ce7af0b79ac154b12e27ed800aeb97413723c";
+  rev = "9cf7092bdd603554bd8b63c216e8943cf9b12512";
   nixpkgs = import (builtins.fetchTarball {
     url = "${repo}/archive/${rev}.tar.gz";
-    sha256 = "0dkkyyk3y8g1a7fs4rv3lqrsmxf60vrk3q93wl7yl6ggjgds79id";
+    sha256 = "0bfq9cjbp8ywrdp03ji8mak5b20aa5cn8l04vvfrjybdc4q6znpn";
   }) arg;
 in
 nixpkgs
Repository: ollama/ollama
Pull request: cmd: new hidden 'ollama login' and 'ollama logout' aliases

These new (hidden) aliases are for 'ollama login' and 'ollama signout' respectively, as these words are often used interchangeably

Changed files:
filename: cmd/cmd.go
patch: @@ -2122,6 +2122,15 @@ func NewCLI() *cobra.Command {
 		RunE:    SigninHandler,
 	}
 
+	loginCmd := &cobra.Command{
+		Use:     "login",
+		Short:   "Sign in to ollama.com",
+		Hidden:  true,
+		Args:    cobra.ExactArgs(0),
+		PreRunE: checkServerHeartbeat,
+		RunE:    SigninHandler,
+	}
+
 	signoutCmd := &cobra.Command{
 		Use:     "signout",
 		Short:   "Sign out from ollama.com",
@@ -2130,6 +2139,15 @@ func NewCLI() *cobra.Command {
 		RunE:    SignoutHandler,
 	}
 
+	logoutCmd := &cobra.Command{
+		Use:     "logout",
+		Short:   "Sign out from ollama.com",
+		Hidden:  true,
+		Args:    cobra.ExactArgs(0),
+		PreRunE: checkServerHeartbeat,
+		RunE:    SignoutHandler,
+	}
+
 	listCmd := &cobra.Command{
 		Use:     "list",
 		Aliases: []string{"ls"},
@@ -2226,7 +2244,9 @@ func NewCLI() *cobra.Command {
 		pullCmd,
 		pushCmd,
 		signinCmd,
+		loginCmd,
 		signoutCmd,
+		logoutCmd,
 		listCmd,
 		psCmd,
 		copyCmd,
Repository: ollama/ollama
Pull request: server/internal/registry: reintroduce pruning on model deletion

This reintroduces aggressive pruning on model deletion as a temporary
measure until a more controlled garbage collection (GC) mechanism is
implemented.

Issues with the current approach:

1. Users may accidentally delete a model (`ollama rm llama3.3` instead
   of `ollama rm llama3.2`), requiring a full re-download unless another
   model references the same blobs.

2. Users may assume a deleted model is still referenced elsewhere, but
   due to prior updates or deletions, the references no longer exist,
   leading to unnecessary re-downloads.

Soon, we should implement a structured GC mechanism to retain
unreferenced blobs for a configurable period before removal, which will
run on "ollama rm" and other commands we deem appropriate.

Users that want to immediately remove unreferenced blobs can use a new
prune command that will allow them to specify the age and class of blobs
to remove.

Example usage:

    # Run basic blob GC
    $ ollama prune

    # Remove unreferenced blobs older than 7 days
    $ ollama prune --age 7d

    # Remove all blobs, referenced or not, older than 7 days (and their manifests?)
    $ ollama prune --age 7d --all

    # Remove all unreferenced blobs immediately
    $ ollama prune --age 0 --all

    # Remove all blobs
    $ ollama prune --age 0 --all

This should provide a safer and more predictable cleanup process.

Changed files:
filename: server/internal/registry/server.go
patch: @@ -31,6 +31,10 @@ type Local struct {
 	// Fallback, if set, is used to handle requests that are not handled by
 	// this handler.
 	Fallback http.Handler
+
+	// Prune, if set, is called to prune the local disk cache after a model
+	// is deleted.
+	Prune func() error // optional
 }
 
 // serverError is like ollama.Error, but with a Status field for the HTTP
@@ -204,7 +208,10 @@ func (s *Local) handleDelete(_ http.ResponseWriter, r *http.Request) error {
 	if !ok {
 		return &serverError{404, "not_found", "model not found"}
 	}
-	return nil
+	if s.Prune == nil {
+		return nil
+	}
+	return s.Prune()
 }
 
 func decodeUserJSON[T any](r io.Reader) (T, error) {

filename: server/routes.go
patch: @@ -1199,6 +1199,8 @@ func (s *Server) GenerateRoutes(rc *ollama.Registry) (http.Handler, error) {
 		Client:   rc,
 		Logger:   slog.Default(), // TODO(bmizerany): Take a logger, do not use slog.Default()
 		Fallback: r,
+
+		Prune: PruneLayers,
 	}
 
 	return rs, nil
Repository: nodejs/node
Pull request: build: target Power 9 for AIX/IBM i

Minimum supported Power architecture for AIX and IBM i is now Power 9.

Refs: https://github.com/nodejs/node/pull/61005

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: node.gypi
patch: @@ -84,6 +84,9 @@
     }, { # POSIX
       'defines': [ '__POSIX__' ],
     }],
+    [ 'OS=="aix" or OS=="os400"', {
+      'cflags': [ '-mcpu=power9' ],
+    }],
     [ 'node_enable_d8=="true"', {
       'dependencies': [ 'tools/v8_gypfiles/d8.gyp:d8' ],
     }],

filename: tools/v8_gypfiles/toolchain.gypi
patch: @@ -330,7 +330,7 @@
         'conditions': [
           ['OS=="aix" or OS=="os400"', {
             # Work around AIX ceil, trunc and round oddities.
-            'cflags': [ '-mcpu=power5+ -mfprnd' ],
+            'cflags': [ '-mcpu=power9 -mfprnd' ],
           }],
           ['OS=="aix" or OS=="os400"', {
             # Work around AIX assembler popcntb bug.
Repository: facebook/react
Pull request: [DevTools] Fix console links not being openable

Fixes https://github.com/facebook/react/pull/33983#issuecomment-3582125388
See https://issues.chromium.org/u/1/issues/462747680

Seems like `chrome.devtools.panels.openResource` is not actually the default behavior for the resource handler. It's erroring when trying to open URLs that don't point to Chrome Resources and not doing anything. 

E.g. clicking on `https://google.com` does nothing. 

Falling back to `window.open` in case `openResource` errors. https://developer.chrome.com/docs/extensions/reference/api/devtools/panels#method-openResource doesn't document the parameter to the callback but it returns an error-like object. 

## Test plan

1. Load extension from CI artifact 
Click on the link from `console.log('https://google.com')`. File links also work (e.g. `console.log('file://404')`)

Changed files:
filename: packages/react-devtools-extensions/src/main/index.js
patch: @@ -711,6 +711,12 @@ if (chrome.devtools.panels.setOpenResourceHandler) {
         resource.url,
         lineNumber - 1,
         columnNumber - 1,
+        maybeError => {
+          if (maybeError && maybeError.isError) {
+            // Not a resource Chrome can open. Fallback to browser default behavior.
+            window.open(resource.url);
+          }
+        },
       );
     },
   );
Repository: huggingface/transformers
Pull request: fix `processing_utils.py`: avoid deepcopying tokenizer in `ProcessorMixin` to improve performance

## Problem

`ProcessorMixin.to_dict()` was calling `copy.deepcopy(self.__dict__)` on the entire processor, including the tokenizer, even though the tokenizer is always deleted from the output immediately after (since tokenizers are saved separately via their own files).

For tokenizers with large vocabularies (e.g. `CohereTokenizer`), this caused ~2.5 million unnecessary recursive `deepcopy` calls, adding ~2.5s of overhead every time `to_dict()` was called (e.g. during `save_pretrained`).

## Fix

Identify and exclude tokenizer attributes *before* the `deepcopy`, so only the attributes that are actually needed in the output are copied.

## Impact

| | Primitive deepcopy calls | deepcopy total time |
|---|---|---|
| Before | 1,272,277 | 2.446s |
| After | 1,335 | 0.002s |

**~1000x reduction in deepcopy calls. No behavior change** — the resulting `output` dict is identical in both cases.

Changed files:
filename: src/transformers/processing_utils.py
patch: @@ -704,7 +704,16 @@ def to_dict(self) -> dict[str, Any]:
         Returns:
             `dict[str, Any]`: Dictionary of all the attributes that make up this processor instance.
         """
-        output = copy.deepcopy(self.__dict__)
+        # Exclude tokenizer attributes before deepcopying to avoid copying large vocab/token structures.
+        tokenizer_attributes = set()
+        for attribute in self.__class__.get_attributes():
+            if attribute in self.__dict__:
+                modality = _get_modality_for_attribute(attribute)
+                if modality == "tokenizer":
+                    tokenizer_attributes.add(attribute)
+
+        dict_to_copy = {k: v for k, v in self.__dict__.items() if k not in tokenizer_attributes}
+        output = copy.deepcopy(dict_to_copy)
 
         # Get the kwargs in `__init__`.
         sig = inspect.signature(self.__init__)
@@ -714,14 +723,6 @@ def to_dict(self) -> dict[str, Any]:
         # extra attributes to be kept
         attrs_to_save += ["auto_map"]
 
-        # Remove tokenizers from output - they have their own vocab files and are saved separately.
-        # All other sub-processors (image_processor, feature_extractor, etc.) are kept in processor_config.json.
-        for attribute in self.__class__.get_attributes():
-            if attribute in output:
-                modality = _get_modality_for_attribute(attribute)
-                if modality == "tokenizer":
-                    del output[attribute]
-
         if "chat_template" in output:
             del output["chat_template"]
Repository: rust-lang/rust
Pull request: Mention on which items the `missing_doc_code_examples` is not emitted

As mentioned in rust-lang/rust#154048, the lint's documentation didn't mention which items were ignored. This PR fixes that.

r? @lolbinarycat 

Changed files:
filename: src/doc/rustdoc/src/lints.md
patch: @@ -190,6 +190,16 @@ To fix the lint, you need to add a code example into the documentation block:
 pub fn no_code_example() {}
 ```
 
+This lint is not emitted on the following items:
+
+ * Impl blocks (both trait and inherent)
+ * Enum variants
+ * Struct/union fields
+ * Type aliases, including associated types
+ * Statics/constants
+ * Modules (including the top-level module of a crate)
+ * Foreign items from reexports (functions, statics, types, etc)
+
 ## `private_doc_tests`
 
 This lint is **allowed by default**. It detects documentation tests when they
Repository: facebook/react
Pull request: Cancel animation when a custom Timeline is used

Follow up to #35559.

The clean up function of the custom timeline doesn't necessarily clean up the animation. Just the timeline's internal state.

This affects Firefox which doesn't support ScrollTimeline so uses the polyfill's custom timeline.


Changed files:
filename: fixtures/view-transition/src/components/Page.js
patch: @@ -150,6 +150,8 @@ export default function Page({url, navigate}) {
       const cleanup1 = timeline.animate(animation1);
       const cleanup2 = timeline.animate(animation2);
       return () => {
+        animation1.cancel();
+        animation2.cancel();
         cleanup1();
         cleanup2();
       };

filename: packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js
patch: @@ -2525,6 +2525,7 @@ function animateGesture(
       delay: reverse ? rangeEnd : rangeStart,
       duration: reverse ? rangeStart - rangeEnd : rangeEnd - rangeStart,
     });
+    viewTransitionAnimations.push(animation);
     // Let the custom timeline take control of driving the animation.
     const cleanup = timeline.animate(animation);
     if (cleanup) {
Repository: ollama/ollama
Pull request: build: fix Dockerfile mlx directory


Changed files:
filename: Dockerfile
patch: @@ -147,7 +147,7 @@ ARG PARALLEL
 WORKDIR /go/src/github.com/ollama/ollama
 COPY CMakeLists.txt CMakePresets.json .
 COPY ml/backend/ggml/ggml ml/backend/ggml/ggml
-COPY x/ml/backend/mlx x/ml/backend/mlx
+COPY x/imagegen/mlx x/imagegen/mlx
 COPY go.mod go.sum .
 COPY MLX_VERSION .
 RUN curl -fsSL https://golang.org/dl/go$(awk '/^go/ { print $2 }' go.mod).linux-$(case $(uname -m) in x86_64) echo amd64 ;; aarch64) echo arm64 ;; esac).tar.gz | tar xz -C /usr/local