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!