Publish Linux release artifacts + self-heal installer versioning (fixes #56) - #57
Open
Mineru98 wants to merge 3 commits into
Open
Publish Linux release artifacts + self-heal installer versioning (fixes #56)#57Mineru98 wants to merge 3 commits into
Mineru98 wants to merge 3 commits into
Conversation
…ning Fixes the documented `curl ... install.sh | bash` 404 on Linux (Ouro-labs#56): the release only shipped darwin-arm64 tarballs, there was no release CI, and install.sh pinned a stale hardcoded version. - add .github/workflows/release.yml: on release:published + workflow_dispatch, build linux-x86_64 / linux-arm64 / darwin-arm64 tarballs (+sha256) on native runners (ubuntu-latest / ubuntu-24.04-arm / macos-14), checkout the release tag, guard tag==mix.exs, and upload idempotently - install.sh: resolve_version() (OUROCODE_VERSION > mix.exs > latest release tag), drop hardcoded 0.1.13; actionable error on missing asset instead of a bare curl 22; opt-in OUROCODE_BUILD_FROM_SOURCE source fallback - README: reflect Linux support (Requirements, Package A Release) Refs Ouro-labs#56
`ourocode --version` reported 0.1.13 while mix.exs was 0.1.14 (found while installing on Linux). Derive @Version from Mix.Project.config() at compile time so the CLI version can never drift from the package version again, and make the CLI version test assert against the mix.exs version instead of a hardcoded literal. (ACP already derives its version from the app spec.) Refs Ouro-labs#56
Collaborator
Author
|
Follow-up commit Verified after the fix: rebuilt escript, reinstalled to |
…rsion Carries the release-path fixes validated by cutting a real pre-release: - release.yml: add a windows-latest job that runs scripts/package-windows.ps1 and attaches ourocode-v<version>-windows-x64.zip(.sha256), so tagging a release actually ships a Windows artifact. - scripts/package.sh: hash the bare filename instead of $TARBALL's absolute path, so the shipped .sha256 verifies with `sha256sum -c` after download. - install.sh: derive the version from the ourocode-v<version>-<os>-<arch> directory when installing an unpacked tarball, instead of falling through to the pinned fallback and installing beta bits into a 0.1.14 directory. Also default release downloads to Ouro-labs/ourocode and document the fallback. - README: Ouro-labs install URLs, Windows zip, and how to opt into a beta. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mineru98
added a commit
to Mineru98/ourocode
that referenced
this pull request
Jul 22, 2026
The Ouro-labs URL fix is already carried by Ouro-labs#57, which owns the release/docs section; keeping a duplicate copy here only makes README conflict at merge. install.ps1's repo default (the functional fix) stays. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the documented Linux install failure in #56. The
curl -fsSL .../release/bootstrap/install.sh | bashquick start returns HTTP 404 on Linux because releases only ship adarwin-arm64tarball — no Linux asset exists, there is no release CI, andinstall.shpins a stale hardcoded version.Changes
.github/workflows/release.yml(new): onrelease: published(andworkflow_dispatchfor a dry run), build tarballs on native runners and attach them to the Release.ubuntu-latest→linux-x86_64,ubuntu-24.04-arm→linux-arm64(continue-on-error),macos-14→darwin-arm64.tag == mix.exs version(fail-fast), runs the existingscripts/package.sh, and uploads idempotently viasoftprops/action-gh-release.workflow_dispatchuploads workflow artifacts instead (no publish).install.sh:resolve_version()—OUROCODE_VERSION› source-checkoutmix.exs› bootstrap latest release tag (portable parse, nojq) › pinned fallback. Removes the hardcoded0.1.13drift.OUROCODE_REPO/OUROCODE_RELEASE_URLhints + source-build guidance) instead of a barecurl: (22).OUROCODE_BUILD_FROM_SOURCE=1(a pipe install clones the resolved tag, then builds); no surprise clones by default.README.md: reflect Linux support (line 9 phrasing, Requirements platform note, Package A Release artifacts + CI note).scripts/package.shanddocs/product-vision.mdare intentionally unchanged (package.shalready derives the version frommix.exsand maps arch per host; the "optimized for macOS" phrase lived inREADME).Verification (Linux x86_64)
bash -n install.sh scripts/package.sh— OK; workflow YAML validated (pyyaml): 3 platforms / 3 runners /release+workflow_dispatch/ 9 steps.resolve_version()all 4 paths, incl. a real GitHub API latest-tag call →0.1.14.exit 1, default does not build from source (opt-in respected).scripts/package.sh→ourocode-v0.1.14-linux-x86_64.tar.gz+.sha256(shasum -cOK) →install.sh(bundled binaries) →ourocode --detectruns (exit 0).The
workflow_dispatchdry-run and real publish run on GitHub-hosted runners (maintainer-owned); the build step they invoke (package.sh) is proven end-to-end above.Non-goals
Bundling Erlang/OTP, a self-contained binary, package-manager distribution, code signing, Windows (#39), and
linux-arm64local e2e.Closes #56