Map Jitsi package version to stable release version#2186
Map Jitsi package version to stable release version#2186Rpi-Dude-ghma wants to merge 2 commits intojitsi:masterfrom
Conversation
|
While I understand the desire some may have for reproducibility, in general I'm -1 on this approach because:
|
|
Hi @saghul , Thank you for review.
I feel this extra effort per stable release gives significant benefits. I am willing to discuss and answer any additional concerns. If for some reason above proposal is considered a definite no-go, may I request to update release notes (such as https://github.com/jitsi/docker-jitsi-meet/releases/tag/stable-10655) to include package version numbers? This would add some level of assurance by having mapping of docker-jitsi-meet stable release to Jitsi packages in each stable release. |
I missed that, thanks for clarifying!
The process it currently automated here: https://github.com/jitsi/docker-jitsi-meet/blob/master/.github/workflows/release-stable.yml If you can automate it by getting the versions from the meta repository I'd be more receptive to the idea :-)
I've honestly never found the image size argument compelling.
That would require doing it manually. If we automate that, then we might as well go all in and do it like you suggested. The starting point would be to get the jitsi meet web, jicofo and jvb version from here: https://github.com/jitsi/jitsi-meet-debian-meta for the matching release number. @damencho WDYT? |
|
Thank you for pointing to the release automation workflows. Most recent commit duplicates the logic, from unstable, to get ( I see in unstable release, tags are using application versions (e.g ), so it seems there was some effort ongoing in this direction already, and thus not making any wide spread changes.)Image size in itself is not so much of a problem, except when automated information security assessment tools get involved, which not only scan the artifacts in latest layer, but the old ones too, and cause red marks in audit reports (and a lot of followup work, which can be avoided by getting rid of old layers/ artifacts). I understand there are other tools that can merge layers to get only the most recent artifacts, but still sometimes remnants are left since there is some version number appended to the file. Would it be ok to leave |
As of now stable releases, such as jitsi@8c3f7ca , tag image versions, which are built on release day. However, if one rebuilds the images at a later date, using a tag in this repo, latest packages from https://download.jitsi.org are used in newly built images. These latest packages could be unstable or incompatible with the configurations in the tagged release. This MR/ commit proposes a way to embed package version names, for a tagged release. If one needs to rebuild images (say to use old known good Jitsi packages, but updating Debian base image packages), one can - checkout the tag - uncomment the version `ARG` lines in various docker files - build required images (make build_base, make build_base-java, make build_jvb etc) A change will be required in release process, where along with updating stable version number, version `ARG` lines are updated as well. Current set of version numbers in this commit have been found by following: ``` apt-cache policy jibri jicofo jigasi jitsi-autoscaler-sidecar jitsi-meet-web jitsi-upload-integrations jitsi-videobridge2 jitsi-meet-prosody | grep '^[a-z]\|Candidate:' | tr '\n:' ' ' | sed -e 's/ji/\nji/g' | grep -v '^$' |awk '{printf "%s=%s \n", $1, $3}' jibri=8.0-184-g4f57e90-1 jicofo=1.0-1167-1 jigasi=1.1-395-g3bb4143-1 jitsi-autoscaler-sidecar=1.0-50-g5fef5f5-1 jitsi-meet-web=1.0.8936-1 jitsi-upload-integrations=0.15.15-1 jitsi-videobridge2=2.3-260-gea11cd36c-1 jitsi-meet-prosody=1.0.8936-1 ```
07cfd78 to
88bb761
Compare
|
Hi @saghul , I have now used version handling approach from the unstable release and updated stable job steps to fix versions of various components in stable release commit, which are revered back to bring back latest ones in unstable builds. This ensures that current workflows are not affected for developers and yet one might be able to rebuild stable images with fixed component versions number at any later time. |
|
Hi @Rpi-Dude-ghma, Out of curiosity, why do you need reproducible images? It is not complicated to provide this by manually editing Dockerfile if it is rarely needed. And you will still need to update Dockerfile even if this PR is merged. |
|
Hi @emrahcom , To be honest, I just need an easy way to map
Given these reason, it seemed to be best if I could get this in upstream repo and possibly this is useful for others in community too. Also, this is kind of being done with unstable, so why not we have it with stable too, where (sorry for the delayed reply) |
|
Checking the versions for jitsi-meet is easy by just visiting: But we do not have answer at the moment for the rest of the components ... |
|
As a middle ground and first step why we just don't put the versions in the release notes when those are generated for the Github release? |
|
Hello, I implemented full automation, re-using unstable logic in stable, given @saghul 's suggestion
We can start with putting version numbers in release notes, but given this is already implemented fully (most of the logic is copied from unstable, so not new), we could may be start using it. I have verified Dockerfile changes, but of course having one extra check will be good. |
Hi @damencho ,
As of now stable releases, such as 8c3f7ca , tag image versions, which are built on release day.
However, if one rebuilds the images at a later date, using a tag in this repo, latest packages from https://download.jitsi.org are used in newly built images. These latest packages could be unstable or incompatible with the configurations in the tagged release.
This MR/ commit proposes a way to embed package version names, for a tagged release.
If one needs to rebuild images (say to use old known good Jitsi packages, but updating Debian base image packages), one can
ARGlines in various docker filesA change will be required in release process, where along with updating stable version number, version
ARGlines are updated as well.Current set of version numbers in this commit have been found by following: