Skip to content
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

The container should have versioning and releases #64

Open
1 of 4 tasks
jcarrano opened this issue Jan 16, 2019 · 14 comments
Open
1 of 4 tasks

The container should have versioning and releases #64

jcarrano opened this issue Jan 16, 2019 · 14 comments
Assignees

Comments

@jcarrano
Copy link
Contributor

jcarrano commented Jan 16, 2019

RIOT has versioning and regular releases. RIOT depends on this image as it is part of the build system.

Both RIOT and the image are thoroughly tested on each release (of RIOT) so that we know RIOT builds with the particular version of riotdocker that was active when the release was done.

The problem is: that image is not being saved anywhere. In other words, the Docker integration in RIOT always uses latest, and there is only latest because riotdocker does not have versions.

What this means is:

  • Past releases of RIOT may be broken as they use "latest" and latest keeps on being changed.
  • The latest release of RIOT may well be broken the day after it is relased, just by updating the image (or even by just rebuilding it, since it does a apt-get update && apt-get -y dist-upgrade) And because the release is already out, it is not being tested.

What I propose:

  • Have a version of riotdocker for each release of RIOT. These should not get changed except to fix bugs (though nobody is reporting bugs against a release.)
  • Change RIOT to use the release-specific image.
  • Have a master/latest image, than can build the master RIOT.
  • Have a CI release, that can also build the master riot. Merge master into CI anb deploy once in a while.

Steps:

  • Create branch
  • Update build rules in Docker Hub.
  • Come up with a testing/deployment procedure
  • Update the docker integration in RIOT.
@jnohlgard
Copy link
Member

I agree with your concerns, it is bad that we are only using the latest tag. Providing one tag per RIOT release sounds like a future-proof solution which should allow still building old releases for bug fix testing etc. A tag for the rolling development is also useful when working on development of the RIOT master branch.

@jcarrano
Copy link
Contributor Author

I created a new branch '2019.01-branch' at the point where we were at the last RIOT release (which is also the point at which we are now.)

What I need now is someone with access to our Docker Hub account configures the build so that the riot/riotbuild:2019.01-branch exists and builds from the new branch.

Next step is to update RIOT itself to use the image.

@jcarrano
Copy link
Contributor Author

Does anybody care? I insist: the way we are handling the docker image now means we can break the current release at any point, and previous releases are certainly broken. I do not think this is acceptable,

@miri64
Copy link
Member

miri64 commented Apr 30, 2019

Shall we start with this now, that 2019.04 is out?

@miri64
Copy link
Member

miri64 commented Apr 30, 2019

Does anybody care? I insist: the way we are handling the docker image now means we can break the current release at any point, and previous releases are certainly broken. I do not think this is acceptable,

I care and agree, so please go ahead!

@jcarrano
Copy link
Contributor Author

@gebart Could you give me access to the container at DockerHub?

@dberliner
Copy link

The lack of versioning has caused an issue with my workflow. I am trying to rereun a build from a year ago that includes some now deprecated code. The environment created last year compiled that code just fine, but todays environment throws an error. This would be a non-issue if I could just specify a tag to pull from last year.

I ask that this issue be given some more attention. I think it is integral to the problem that Docker images are trying to solve in the first place.

@miri64
Copy link
Member

miri64 commented Apr 7, 2021

@kaspar030 @fjmolinas AFAIK the deployment process is mostly automated. Is there a reason why we can't version the docker images?

@fjmolinas
Copy link
Contributor

fjmolinas commented Apr 12, 2021

@kaspar030 @fjmolinas AFAIK the deployment process is mostly automated. Is there a reason why we can't version the docker images?

Nothing, just add that in #136, see 0141a45, here is my test branch https://hub.docker.com/repository/docker/fjmolinas/riotbuild images tagged with a release version.

@miri64
Copy link
Member

miri64 commented Apr 20, 2021

@kaspar030 should we maybe then go ahead and create a 2021.04 branch?

@kaspar030
Copy link
Contributor

kaspar030 commented Apr 20, 2021

@kaspar030 should we maybe then go ahead and create a 2021.04 branch?

sure! will do

@miri64
Copy link
Member

miri64 commented Apr 20, 2021

(we could add it to the Release Manager script at a later date for feature-freeze, so this can be automated)

@mguetschow
Copy link

The version tag in the github workflow hasn't been updated for the last two releases as it seems, therefore the current "last" docker image is tagged as 2024.01 on dockerhub, too: https://hub.docker.com/r/riot/riotbuild/tags

Anyone knows the status of this? It's apparently not part of the release-manager script that I used for the last release, but it's also not mentioned on the "how to release" wiki.

@mguetschow
Copy link

Btw, without being aware of this (stalled) work here, RIOT-OS/RIOT#20472 has been merged in the meantime. @maribu FYI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants