-
Notifications
You must be signed in to change notification settings - Fork 1
Installation Script & Upgrade MCP Tool (#7) #35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
the-wondersmith
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So all told, there isn't anything overtly crazy here, but I really don't love that it looks like we're hand-rolling a lot of this (specifically the semver handling and in-place binary updating machinery).
Are we hand-rolling all of this stuff because there's legitimately no pre-existing option that's a better fit? Or are we doing this for the sake of expediency?
I'm ok with dropping an approval, but I'd like to at least get an answer to the above "on record" so to speak.
| # Windows only supports amd64 | ||
| if [[ "$OS" == "windows" && "$ARCH" != "amd64" ]]; then | ||
| echo "Windows ARM64 is not supported" | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just out of curiosity, why is Windows unsupported on arm64?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because GitHub doesn't provide a GitHub actions runner for it. We'll need a self hosted runner for that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the windows tooling not include a cross-compiler? I'd swear one was included in the visual studio tooling the last several times I've had to futz with it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is more like a PyInstaller issue, you'll need to be on the same target as your code compiles to. A self hosted GHA runner sounds like our best bet.
|
@the-wondersmith Mostly for speed and iteration. The current version works (tested on all platforms) and gets us unblocked now. Regarding your comment about in-place binary upgrades, I actually didn't look into alternatives, wrote what works and tested across platforms. Happy to revisit if someone finds a better solution. For semver, using a library is definitely a good solution, but wanted to avoid the overhead right now. Every new dependency requires manually updating Current approach is the best fit given where we are. Can always refactor later with more breathing room. |
Summary
This PR introduces compiled binary distribution for Neptune CLI and an automatic update system, making installation easier for users.
Key Changes
Installation
Auto-Update System
neptune upgradecommand for manual updatesNEPTUNE_SKIP_UPDATE_CHECK=1Build Infrastructure
Developer Tools
scripts/build.shfor local binary buildsscripts/bump_version.pyfor version managementInstallation
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/shuttle-hq/neptune-cli-python/main/install.sh | bashWindows:
Testing
All platform installers are automatically tested on each release via the
test-releases.ymlworkflow.Breaking Changes
None - existing Python-based installations continue to work unchanged.