monperrus opened issue #7377:
Hi all,
FYI curl-based installation is broken with 404
± curl https://wasmtime.dev/install.sh -sSf | bash Installing latest version of Wasmtime (https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703) Checking for existing Wasmtime installation Fetching archive for Linux, version https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703 https://github.com/bytecodealliance/wasmtime/releases/download/https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703/wasmtime-https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703-x86_64-linux.tar.xz curl: (22) The requested URL returned error: 404 Error: Could not download Wasmtime version 'https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703'. See https://github.com/bytecodealliance/wasmtime/releases for a list of available releases
Thanks!
alexcrichton commented on issue #7377:
Thanks for the report, can you detail what system you're using? It may be that your system utilities such as
curl
orcut
aren't behaving as the script is expecting.
monperrus commented on issue #7377:
I'm running Ubuntu 22.04.3 LTS.
Thanks!
alexcrichton commented on issue #7377:
Can you execute these lines manually and paste their output? Ubuntu 22.04 is pretty standard so I'm not sure why they'd be going wrong.
monperrus commented on issue #7377:
curl --silent "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" | \ grep tag_name | \ cut -d '"' -f 4 https://api.github.com/repos/bytecodealliance/wasmtime/releases/126802444
seems pretty OK
alexcrichton commented on issue #7377:
Hm so that should print
v14.0.2
at this time on the terminal, not a URL, so that's the issue. Can you paste the output of thecurl
command alone perhaps?
monperrus commented on issue #7377:
± curl --silent "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" {"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/127213349","assets_url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/127213349/assets","upload_url":"https://uploads.github.com/repos/bytecodealliance/wasmtime/releases/127213349/assets{?name,label}","html_url":"https://github.com/bytecodealliance/wasmtime/releases/tag/v14.0.3","id":127213349,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"node_id":"RE_kwDOBhDaXM4HlR8l","tag_name":"v14.0.3","target_commitish":"main","name":"","draft":false,"prerelease":false,"created_at":"2023-10-30T15:15:54Z","published_at":"2023-10-30T16:04:19Z","assets":[{"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/assets/133083898","id":133083898,"node_id":"RA_kwDOBhDaXM4H7rL6","name":"wasi_snapshot_preview1.command.wasm","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":96692,"download_count":1,"created_at":"2023-10-30T16:04:19Z","updated_at":"2023-10-30T16:04:20Z","browser_download_url":"https://github.com/bytecodealliance/wasmtime/releases/download/v14.0.3/wasi_snapshot_preview1.command.wasm"},{"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/assets/133083900","id":133083900,"node_id":"RA_kwDOBhDaXM4H7rL8","name":"wasi_snapshot_preview1.reactor.wasm","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":109408,"download_count":1,"created_at":"2023-10-30T16:04:20Z","updated_at":"2023-10-30T16:04:20Z","browser_download_url":"https://github.com/bytecodealliance/wasmtime/releases/download/v14.0.3/wasi_snapshot_preview1.reactor.wasm"},{"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/assets/133083902","id":133083902,"node_id":"RA_kwDOBhDaXM4H7rL-","name":"wasmtime-v14.0.3-aarch64-linux-c-api.tar.xz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":15273120,"download_count":1,"created_at":"2023-10-30T16:04:21Z","updated_at":"2023-10-30T16:04:21Z","browser_download_url":"https://github.com/bytecodealliance/wasmtime/releases/download/v14.0.3/wasmtime-v14.0.3-aarch64-linux-c-api.tar.xz"},{"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/assets/133083904","id":133083904,"node_id":"RA_kwDOBhDaXM4H7rMA","name":"wasmtime-v14.0.3-aarch64-linux.tar.xz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":8476928,"download_count":2,"created_at":"2023-10-30T16:04:22Z","updated_at":"2023-10-30T16:04:22Z","browser_download_url":"https://github.com/bytecodealliance/wasmtime/releases/download/v14.0.3/wasmtime-v14.0.3-aarch64-linux.tar.xz"},{"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/assets/133083906","id":133083906,"node_id":"RA_kwDOBhDaXM4H7rMC","name":"wasmtime-v14.0.3-aarch64-macos-c-api.tar.xz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":12509852,"download_count":1,"created_at":"2023-10-30T16:04:23Z","updated_at":"2023-10-30T16:04:23Z","browser_download_url":"https://github.com/bytecodealliance/wasmtime/releases/download/v14.0.3/wasmtime-v14.0.3-aarch64-macos-c-api.tar.xz"},{"url":"https://api.github.com/repos/bytecodealliance/wasmtime/releases/asse [message truncated]
alexcrichton commented on issue #7377:
Ah I'm not sure why but your
curl
is printing compact JSON where the script is expecting "pretty" JSON. I'm not sure why that's happening, but that's why the script is failing.
monperrus commented on issue #7377:
Github sends compact JSON.
As far as I know, curl has no capability for pretty-printing json.
If we want to have pretty JSON, we need to send it through json_pp or jq.
cfallin commented on issue #7377:
Weirdly, exactly that
curl
command returns formatted JSON for me; I wonder if we're hitting some sort of A/B test, or if there's some middlebox (compressing proxy or similar) somewhere in your network path, or...?IIRC, one of the considerations against using
jq
was that it would have to be installed on the user's machine, andinstall.sh
is meant to work in as many places as possible without unnecessary dependencies.I wonder, though, if we can craft a sed regex or similar that grabs the tag name out of a single line or multiline JSON?
monperrus commented on issue #7377:
IIRC, one of the considerations against using jq was that it would have to be installed on the user's machine
I see.
Weirdly, exactly that curl command returns formatted JSON for me
What! This is very surprising. I really don't see which component in the stack does that.
I wonder, though, if we can craft a sed regex or similar that grabs the tag name out of a single line or multiline JSON?
brittle. honestly,
jq
would be much better. The target users of wasmtime are probably tech-savvy enough to install jq by themselves if need be.
monperrus commented on issue #7377:
I confirm that changing
install.sh
to| json_pp
works!curl --silent "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" | json_pp | \ grep tag_name | \ cut -d '"' -f 4
With this fix I have wasmtime on my machine, thanks!
cfallin commented on issue #7377:
brittle. honestly,
jq
would be much better. The target users of wasmtime are probably tech-savvy enough to install jq by themselves if need be.A consideration when developing infrastructure like this is that the machines we may run on might not look like our own developer machines: for example, we want it to be easy to install
wasmtime
on a fresh virtual machine, server, CI environment, minimal Docker container, etc. The requirement to install JSON-munging tools would be a bit of a speedbump causing folks to trip; the use of a shell script and core Unix utilities only (plus curl) is pretty intentional here.It's too bad there's no API endpoint that gives us exactly the latest release tag and nothing else. I wonder if some automation could e.g. put some file in place that helps with this -- @alexcrichton, what would you think about something in the release process that updates a
latest-release.txt
in the static site so one could docurl https://wasmtime.dev/latest-release.txt
?
bjorn3 commented on issue #7377:
Using
| sed 's/.*tag_name": *"//' | sed 's/".*//'
instead of| grep tag_name | cut -d '"' -f 4
should work for both pretty and unpretty json.
alexcrichton commented on issue #7377:
I like the idea of
latest-release.txt
but I don't know how to do that easily off the top of my head. I'd be tempted to go with @bjorn3's suggestion first if we can, but that should be confirmed to work on macOS since I know that they've got a BSD version of sed (or something like that) and it's different from the GNU version sometimes.
cfallin commented on issue #7377:
Unfortunately the sed command lines above don't work on macOS -- with pretty JSON, the line containing the tag is edited to just the tag, but a bunch of other lines remain:
cfallin@fastly2:~% curl --silent "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" | sed 's/.*tag_name": *"//' | sed 's/".*//' | head -n 30 { [ lots of blank lines ] }, v14.0.4
It appears that BSD sed doesn't do multiline edits -- the man-page says "Normally, sed cyclically copies a line of input, not including its terminating newline character, ..." (and I can't find another flag that would override that).
So it appears we're back to
- Figure out why the JSON is compacted when some folks fetch it and not others, or
- Craft a grep+sed invocation that works on all platforms with both kinds of inputs, or
- Create an endpoint like
latest-release.txt
(or find one somewhere in the GitHub API)
bjorn3 commented on issue #7377:
Try adding
| tr -d '\n'
before the sed commands. This will remove all newlines.
cfallin commented on issue #7377:
That worked for me -- just sent a PR for this, thanks!
cfallin closed issue #7377:
Hi all,
FYI curl-based installation is broken with 404
± curl https://wasmtime.dev/install.sh -sSf | bash Installing latest version of Wasmtime (https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703) Checking for existing Wasmtime installation Fetching archive for Linux, version https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703 https://github.com/bytecodealliance/wasmtime/releases/download/https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703/wasmtime-https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703-x86_64-linux.tar.xz curl: (22) The requested URL returned error: 404 Error: Could not download Wasmtime version 'https://api.github.com/repos/bytecodealliance/wasmtime/releases/126307703'. See https://github.com/bytecodealliance/wasmtime/releases for a list of available releases
Thanks!
Last updated: Dec 23 2024 at 12:05 UTC