PSA: Old Elm binary downloads now gone

Elm 0.18 and older binaries were hosted on something called Bintray. That service was sunset yesterday: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

TL;DR For Elm 0.18:

  • Use Node.js 10
  • Use elm@0.18.0-exp5 aka elm@latest-0.18.0
  • Use elm-test@0.18.13 aka elm-test@latest-0.18.0

This means that if you try to install for example elm@0.18.0 using npm you will get an error like this:

❯ npm install

> elm@0.18.0 install /Users/lydell/stuff/elm0.18/node_modules/elm
> node install.js

Downloading Elm binaries from https://dl.bintray.com/elmlang/elm-platform/0.18.0/darwin-x64.tar.gz
Error decompressing darwin-x64.tar.gz Error: incorrect header check

https://dl.bintray.com/elmlang/elm-platform/0.18.0/darwin-x64.tar.gz seems to respond with 403 now.

I downloaded all the binaries and put them here in case you need one right now:

(Elm 0.19.0 and later are hosted on GitHub and are not affected by this.)

Edit: elm@latest-0.18.0 does not depend on Bintray, but requires Node.js 10.
Edit: Related, elm-test@0.18.13 has been published, which no longer depends on stuff on Bintray.

11 Likes

Thank you so much

I didn’t realize that bintray is being sunset. Broke a bunch of my builds and I couldn’t figure out why.

Any suggestions on how I can directly my webpack/rails builds to point to GitHub or locally hosted elm platform/0.18.0/darwin-x64.tar.gz file? I haven’t head to it before, and admittedly I’m a Ruby/backend developer, not really a webpack expert.

Any pointers would be appriciated.

Never mind, looks like I can specify url, inplace of package version. Reading manual helps :slight_smile:

Another option is to specify:

    "elm": "latest-0.18.0",

in your package.json. This will download binaries from githhub.

Unfortunately, this will not work if you are also using the elm-webpack-loader as the 0.18-compatible version 4.5.0 still depends on “^0.18.0”. I patched the 4.5.0 release in a fork and created 4.5.1, which only has this dependency change. It is available here: https://github.com/CareerPlug/elm-webpack-loader/tags

Interesting, looks like there are some 0.18 binaries here: Releases · elm-lang/elm-platform · GitHub

Trying to install latest-0.18.0 fails for me, though:

❯ npm i elm@latest-0.18.0
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated natives@1.1.6: This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.

> elm@0.18.0-exp5 install /Users/lydell/stuff/elm0.18/node_modules/elm
> npx binwrap-install

primordials is not defined
1 Like

I got the same error

Ah forgot about that one-- that is caused by latest-0.18.0 relying on an older version of nodejs. See here for more details:

I had to downgrade my nodejs to 10.x

Also, for extra context about latest- in the version name, see here:

Ok I think I got it working, with @igray & @lydell help. Thank you!

Steps:

  1. Modify package.json lines

    "elm": "latest-0.18.0",
    "elm-webpack-loader": "git://github.com/CareerPlug/elm-webpack-loader.git#v4.5.1",
    
  2. Downgrade to nodejs lts-dubnium (v 10.24.1 as of right now)
    1.Using node version manager that was easy ( I use asdf)
    asdf local lts-dubnium

  3. If you are installing nodejs version from scratch, don’t forget to install npm install npm -g& reshim your version manager asdf reshim nodejs

  4. Clear out yarn cache, node_module & lock files ( package-lock.json & yarn-lock.json)

  5. yarn install --check-files finally works.

Now I just need to make sure my gitlab runners work.

Thank you both @igray & @lydell !!

2 Likes

@konung how did you get elm-test working in your scenario?

Hm. Is anybody willing to throw a drop-in replacement onto npm for elm and elm-test?

For elm-test, there’s a patched version in the works: Unable to install npm package for 0.18.13-beta4 · Issue #509 · rtfeldman/node-test-runner · GitHub

Edit: elm-test@0.18.13 has been published which should work!

1 Like

There is a small typo in the solution @konung posted (v4.5.1 should be just 4.5.1 ), so these are the deps we’re currently using:

Thx a lot everybody here in the thread for fixing this! :blush:

2 Likes

Nix has records of how to build Elm from source going all the way back to 0.8 (!), and the resulting binaries are cached. So you can obtain an executable for 0.18 like so:

$ elm --version
0.19.1

$ nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/cb0e20d6db96fe09a501076c7a2c265359982814.tar.gz -p elmPackages.elm
<lots of download output not reproduced here>

[nix-shell:~]$ elm --version
0.18.0

(that cb0e commit hash is the tip of the 18.03 release branch; you can find other interesting hashes in the history of pkgs/development/compilers/elm/ in nixpkgs.)

That’s really cool! Gotta dive into Nix some day.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.