HashNuke / heroku-buildpack-elixir

Heroku Buildpack for Elixir with nitro boost

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Versions not found if Major.Minor.Patch version is not specified

SampsonCrowley opened this issue · comments

if you specify OTP 22.0 for instance, instead of using versioning to pull the closest match, the build fails.

If only a Major version or only a Major and Minor version are specified, and an exact match isn't found, the build should use the most up-to-date version for that Major.Minor combination

It was really surprising that symversioning isn't followed in the absence of an exact match, and instead the build just fails. If a Patch version was specified, and not found, THEN it should fail

This is one of the most common issues I get emailed about from customers at gigalixir.

@HashNuke I don't mind taking a stab at this if you think this is something you would be willing to merge. I can see how some people might not like their version "altered" automatically.

One thing I can do right now, though, is improve the error message when a version isn't supported. What do you think?

Right now, it says something like this

remote: -----> Fetching Erlang 22.0.3 from https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-22.0.3.tar.gz        
remote: -----> Installing Erlang 22.0.3 (changed)        
remote: 
remote: gzip: stdin: not in gzip format        
remote: tar: Child returned status 1        
remote: tar: Error is not recoverable: exiting now        

Perhaps something more useful like

Sorry, Erlang 22.0.3 isn't supported yet. For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support

What do you think?

@jesseshieh I can't think of a single reason that someone who specified only a major / major.minor version would be mad that it used the latest patch when an exact match to their query doesn't exist

this should definitely still fail if they specify a full semver and it's not found

@jesseshieh That would be nice. Would be happy to merge a PR.

commented

I'm getting a very similar error message, but it doesn't matter what OTP version I'm trying to install:

remote: -----> Fetching Erlang 21.3
remote: -----> Installing Erlang 21.3 (changed)
remote:
remote: gzip: stdin: not in gzip format
remote: tar: Child returned status 1
remote: tar: Error is not recoverable: exiting now

can this be related, or should I open another ticket? I tried various versions listed here https://github.com/HashNuke/heroku-buildpack-elixir-otp-builds/blob/master/otp-versions

This can happen if there was basically any kind of error downloading the file. I just tried it manually at https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-21.3.tar.gz

and it seemed to work. Is it still happening for you or was it a transient issue? Did you get this error from Heroku or Gigalixir?

commented

I got it from heroku, and downloading manually did work for me too. I'll try later today, maybe it was a hiccup with heroku.