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 13 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. 🚢 |
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.