-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tagging process #176
Comments
it's just a common practice among many software versions, the under this Versioning scheme, it implies smooth upgrade, so the however, it seems that the OTP release numbers (and the bundled erlang app versions) are not following the Semantic Versioning: from https://github.com/erlang/otp/releases/tag/OTP-21.1.1 it's bundling the I would like to know some points from upstream, to check if this |
What is it about this ssl version that makes it not compatible? |
If you check https://github.com/erlang/otp/blob/master/otp_versions.table you'll see that |
Sounds like what you would like is an erlang:21.1.0 image so that you can pin the version and not get automatic upgrades of the base erlang version. The thing is that when you build your release you lock the versions of all applications into the boot file of the release. So when you later start that release those specific application version have to be available. rebar3 and relx solves this problem for you so that you don't have to worry about it. @c0b: We do follow semver (or a variant very close anyways), you can read more about it here: http://erlang.org/doc/system_principles/versions.html. |
Would you share some of the failure log?
is there some way to declare dependency like in Semantic Versioning, want |
Sorry folks for this late answer.
Yes that's my point. More precisely I work with
The only log I have is this (from my CI)
and I think it is output from some boot script built by |
Wouldn't it just be better to run it in a bare debian/alpine context? Like what is done here: https://github.com/erlang/docker-erlang-example Then you won't have any problems with the Erlang versions as everything Erlang+Elixir is packed into the applicatoion release. |
Indeed, that's what we've done so far: building a release with an embedded Then we discovered on the Elixir forum (https://elixirforum.com/t/erlang-releases-and-otp-versions/17771) the compatibility rules about applications and the So now my only point is whether to use the official |
so is there no way for an application to declare a loose dependency like |
Not when you make a release of your application. When you create the release, you pin the versions of your dependencies. There is nothing that says that you have to make a release however, but most projects tend to do that. |
I think that it makes sense to have a 21.1.0 image. Since there exists 21.1.1 images that are immutable, it makes sense that there should be a 21.1.0. If you want to cut down on the amount of images that created, I don't really see the point of the 21.x images. Either you want a specific X.Y.Z version, or you want to have release X. Though maybe there has been some discussion before about it that I have missed. |
Hello folks, is there any update here? Any chance to have immutable images? |
if this But, if this is asking to create So far I see it's like a one-time task? because only this |
Well, as @garazdawi stated, I would like immutable images: whatever the tag it will not be used for anything else than the image it was initially used for. If That said, if there is any trouble here, you can just close this issue and keep things as they are. Until now I used to produce my own So don't worry and keep the good work, I have a plan B 😄 |
I think that this overview page is fine the way it is. We don't want to expose nor encourage people to not take the latest patched version of Erlang by putting up
Yes, that is what we are discussing. Basically what would need to be done is that whenever a OTP-X.Y release is done, you would treat it as if a OTP-X.Y.0 release has been done. We (OTP-team) decided that we would not call our major/minor releases that for reasons that I can't remember right now, but they all have an implicit
We will never release a tag called
no
I don't think we can change the way that we tag releases. We break section 2 of https://semver.org/#spec-item-2 and I think that we will continue to do so. |
@fcabestre easiest way to get around this is to include erts in your release ;) There is a lot in this thread so I may have missed where a decision is made but I'll just throw in how I'd prefer it to work: Tags are mutable for any part of the version they do not specify, like
The only question is what to do about ones like for example |
The way Erlang images are tagged may induce issues in Erlang/Elixir application releases. Those releases are said to be tied to a very specific version of Erlang, meaning if a release is build with Erlang 21.1 it may not work with Erlang 21.1.1. This is related to the app.rel file listing all the app dependencies, even the OTP ones. For instance, Erlang 21.1 has application ssl-9.0.2, while Erlang 21.1.1 comes with ssl-9.0.3. A release, depending on the ssl application, built with Erlang 21.1 won't work with Erlang 21.1.1.
That said, the erlang:21.1-alpine and erlang:21.1.1-alpine are based on the same Erlang 21.1.1. I've tried to run an application depending on ssl build with Erlang 21.1 in a container based on erlang:21.1 and failed.
IMHO, when a given image is tagged, it's not a good practice to move the tag to another image.
The text was updated successfully, but these errors were encountered: