feat: migrate MUIOGO to uv and add bootstrap installers (#472)#482
feat: migrate MUIOGO to uv and add bootstrap installers (#472)#482utsinboots wants to merge 15 commits into
Conversation
|
Hi @SeaCelo @autibet installer is ready to be tested.
|
There was a problem hiding this comment.
EPIC FAIL! 🤪
(base) sato@Sato MUIOGO % curl -fsSL https://raw.githubusercontent.com/utsinboots/MUIOGO/feature/472-uv-installer/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.sh
(base) sato@Sato MUIOGO % ERROR: conda env 'base' is active. Run 'conda deactivate' first. conda deactivate
sato@Sato MUIOGO % conda deactivate
sato@Sato MUIOGO % curl -fsSL https://raw.githubusercontent.com/utsinboots/MUIOGO/feature/472-uv-installer/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.sh
Where would you like to install MUIOGO?
Enter the PARENT directory; MUIOGO will be cloned as a subfolder inside.
Default: current directory (/Users/sato/GitHub/MUIOGO)
Parent directory [.]: ~/muiogo-test
==============================================================
MUIOGO Installer (uv-based)
Platform : macOS 26.5
Destination : /Users/sato/muiogo-test/MUIOGO
Branch : feature/472-uv-installer
uv : will install (~5MB, official installer)
Log file : /Users/sato/GitHub/MUIOGO/.install-20260615-164910.log
Plan (5 steps):
- Check git
- Install uv ~5MB, seconds
- Clone MUIOGO depends on network
- uv sync (Python + deps) ~30s
- Platform setup (solvers, demo data, secret key, verification)
Proceed with installation? [Y/n/q] Y
/tmp/install.sh: line 132: ${ans,,}: bad substitution
|
@autibet Oops 🩻 it was macOS Bash compatibility issue; the install.sh used |
…false, fix macOS git detection + graceful platform-setup failure, add QUICK_INSTALL.md
autibet
left a comment
There was a problem hiding this comment.
Successfully installed ^_^
|
@utsinboots I pushed two commits straight to the branch to get it merge-ready (now at
@autibet — could you give it one more run on macOS? Your earlier approval was on the 3.11 build, and these commits change how the install behaves. One catch: now that the defaults point at EAPD-DRB/main, you have to pass the fork URL and branch explicitly, or it'll clone main instead of this PR: curl -fsSL https://raw.githubusercontent.com/utsinboots/MUIOGO/feature/472-uv-installer/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.sh --repo-url https://github.com/utsinboots/MUIOGO.git --branch feature/472-uv-installerThanks both! |
|
@SeaCelo thank you for the fix and updates, your validation is always needed :). Tested on windows, everything looks good.
|
|
Anothe EPIC FAIL sato@Alfonsos-MacBook-Air muiogo-test % curl -fsSL https://raw.githubusercontent.com/utsinboots/MUIOGO/feature/472-uv-installer/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.sh --repo-url https://github.com/utsinboots/MUIOGO.git --branch feature/472-uv-installer Where would you like to install MUIOGO? ==============================================================
|
|
@utsinboots quick diagnosis on autibet's run, then a proposal. The only step that failed was the solvers — and the root cause is right in the log: Right now Proposal: instead of dying on a missing Homebrew, detect it and offer to install it.
Couple of things to watch:
This mirrors what our older macOS installer did (brew was a documented prerequisite) but is friendlier, since it offers to do it for them. Net effect: a clean Mac either ends up fully set up, or finishes with clear instructions instead of an "EPIC FAIL." Happy to take this on if it's easier — just say the word. |
|
@SeaCelo right, just the change with the correct behavior required 😅 I'll leave it up to you, thanks. 🚢 |
|
@utsinboots @autibet — pushed the Homebrew handling onto the branch. @autibet, the failure was just the missing Homebrew: your new Mac had no
Could you give it one more run on macOS? Same as before — pass the fork URL + branch, or it'll clone main instead of this PR: curl -fsSL https://raw.githubusercontent.com/utsinboots/MUIOGO/feature/472-uv-installer/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.sh --repo-url https://github.com/utsinboots/MUIOGO.git --branch feature/472-uv-installerWorth trying both: Thanks! |
autibet
left a comment
There was a problem hiding this comment.
-
The script prompts:
Proceed with installation? [Y/n/q]
n & q do exactly the same, so remove the q -
In the Setup Summary, it says:
"You can start the app now:
./scripts/start.sh"
but then there are different instructions at the bottom of the script, so delete this section -
At the end of the script, it says:
"cd /Users/sato/Documents/GitHub/muiogo-test/MUIOGO
uv run python API/app.py"
It launches the server but does not open the browser. It obviously can do it so it should be incorporated into the launching script
Otherwise, everything works (including the option of NOT installing Homebrew)
|
Changes done @autibet 🚢 |
Summary
Related to #472
This PR migrates MUIOGO to a
uv-managed project and adds one-liner bootstrap installers for Windows and macOS/Linux, so users can go from a clean machine to a running MUIOGO environment in a single command.##Changes
pyproject.toml[build-system](setuptools >= 64)[project]block with name, version,requires-python = ">=3.11, <3.13", and all runtime dependencies (previously only inrequirements.txt)[tool.setuptools.packages.find]scoped toAPI*to prevent setuptools discovering unrelated top-level dirs (assets/,WebAPP/)[tool.ruff] target-versionfrompy310topy311uv.lockuv lock— resolves 26 packages reproducibly across platforms.gitignore*.egg-info/(setuptools build artifact).install-*.log(installer log files)scripts/setup_dev.py--platform-onlyflag — skips venv/pip steps and runs only platform setup (solvers, demo data, secret key, verification)uv synchas already created the venvMIN_PYTHONfrom(3, 10)to(3, 11)scripts/install.ps1(new)uv sync→setup_dev.py --platform-onlygit pullinstead of re-cloning-Dest,-Branch,-RepoUrl,-Yes,-NoDemoData,-SkipUvInstall,-NoLogscripts/install.sh(new)install.ps1(kebab-case flags)Scripts/vsbin/venv layout)cmd.exe /c starton Windows/Git Bash,openon macOS,xdg-openon LinuxOne-liner install (after merge)
Windows (PowerShell):
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/EAPD-DRB/MUIOGO/main/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.shTesting this PR
Use the fork URL + branch until this PR is merged.
Windows (PowerShell)
Create a clean test directory
mkdir C:.\muiogo-test
Run the installer
When prompted for destination, enter: C:.\muiogo-test
macOS/Linux (or Git Bash on Windows)
Create a clean test directory
mkdir ~/muiogo-test
Run the installer
curl -fsSL https://raw.githubusercontent.com/utsinboots/MUIOGO/feature/472-uv-installer/scripts/install.sh -o /tmp/install.sh && bash /tmp/install.shWhen prompted for destination, enter: ~/muiogo-test
The following items from #472 are deferred to a follow-up PR:
install.shusescommand -v git; the macOS CLT stub edge case (xcode-select -pcheck + async GUI polling) is not yet handled.setup.batandstart.batwere intentionally left unchanged in this PR to avoid altering the existing developer workflow while the new uv-based bootstrap installers are introduced.git pull, but does not show the current version or how many commits behind the local clone is before prompting.