From 1e75aeb2c27e0246ca895df6cc4edd8ec474f669 Mon Sep 17 00:00:00 2001 From: Nightguarder <73370044+nightguarder@users.noreply.github.com> Date: Mon, 22 Dec 2025 03:28:08 +0100 Subject: [PATCH] Add Prerequisites to Readme (#936) ## Motivation Users need to know what **prerequisites** they need in order to run exo. Simple addition to docs prevents future raised issues. ## Changes Updated ``README.md``: - to include installation instructions for **[uv](https://github.com/astral-sh/uv)** and **[macmon](https://github.com/vladkens/macmon)**. Updated ``CONTRIBUTING.md``: - to verify these prerequisites are met before starting development. - Standardized on brew installation instructions for macOS users to keep the guide simple. ## Why It Works By listing these prerequisites upfront, users will set up their environment correctly before attempting to run exo. ## Test Plan ### Manual Testing MacBook Pro M4 - Verified that ``uv`` and ``macmon`` were missing initially, causing failures - after installing them via brew (as documented), uv run exo starts successfully. ### Automated Testing --------- Co-authored-by: Evan Quiney --- CONTRIBUTING.md | 13 ++++++++++++- README.md | 10 ++++++++++ dashboard/package-lock.json | 9 +++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 82622722..ec88416f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,10 +5,21 @@ Thank you for your interest in contributing to EXO! ## Getting Started To run EXO from source: + +**Prerequisites:** +- [uv](https://github.com/astral-sh/uv) (for Python dependency management) + ```bash + brew install uv + ``` +- [macmon](https://github.com/vladkens/macmon) (for hardware monitoring on Apple Silicon) + ```bash + brew install macmon + ``` + ```bash git clone https://github.com/exo-explore/exo.git cd exo/dashboard -npm install && npm run build +npm install && npm run build && cd .. uv run exo ``` diff --git a/README.md b/README.md index f8fe3241..51a5928c 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,16 @@ There are two ways to run exo: ### Run from Source (Mac & Linux) +**Prerequisites:** +- [uv](https://github.com/astral-sh/uv) (for Python dependency management) + ```bash + brew install uv + ``` +- [macmon](https://github.com/vladkens/macmon) (for hardware monitoring on Apple Silicon) + ```bash + brew install macmon + ``` + Clone the repo, build the dashboard, and run exo: ```bash diff --git a/dashboard/package-lock.json b/dashboard/package-lock.json index e075d621..65d23242 100644 --- a/dashboard/package-lock.json +++ b/dashboard/package-lock.json @@ -861,6 +861,7 @@ "integrity": "sha512-oH8tXw7EZnie8FdOWYrF7Yn4IKrqTFHhXvl8YxXxbKwTMcD/5NNCryUSEXRk2ZR4ojnub0P8rNrsVGHXWqIDtA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", @@ -900,6 +901,7 @@ "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.1", @@ -1516,6 +1518,7 @@ "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1525,6 +1528,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1937,6 +1941,7 @@ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -2607,6 +2612,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2794,6 +2800,7 @@ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.45.3.tgz", "integrity": "sha512-ngKXNhNvwPzF43QqEhDOue7TQTrG09em1sd4HBxVF0Wr2gopAmdEWan+rgbdgK4fhBtSOTJO8bYU4chUG7VXZQ==", "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -2938,6 +2945,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2959,6 +2967,7 @@ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4",