You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What you expected to see, versus what you actually saw
Short summary of the problem:
Due to a current issue with release process for Python Docker images (see: python/cpython#98397 and docker-library/python#763) Dependabot Docker wrongly proposes the updates of all Python images with initial version >3.10 to a 3.11.0rc2 release candidate.
We can see that different sha is reported for 3.10.8 and this is the main reason why all tags >3.10.0 are marked as prerelease by Dependabot and are allowed to update to release candidates versions.
Additionally, 3.10.0 version will be marked as latest version to which all Python versions lower than 3.10.0 can upgrade. i.e if you try to update from 3.8.
The main reason for this is that the Dockerhub images of 3.10.8 are missing the linux/mips64le architecture compared to latest and 3.10 tags (currently). python/cpython#98397
Even though the main cause for this is the release process for Python Docker images, I am left wondering if this kind of issue could be prevented in the future by improving the Dependabot code.
I leave this for you to decide :)
The text was updated successfully, but these errors were encountered:
Great, I think this is worth keeping open still, right?
Yes, my opinion is that this is still worth fixing in the Dependabot code, to prevent this issue occurring again in the future.
deivid-rodriguez
changed the title
docker package manager: python images gets updated to release candidate
Latest version may fail to be detected if manifest list of latest version is missing some architectures
Oct 26, 2022
Is there an existing issue for this?
Package ecosystem
Docker
Package manager version
v0.212.0
Updated dependency
PR example: https://github.com/Pix4D/dependabot-bug-report/pull/1
What you expected to see, versus what you actually saw
Short summary of the problem:
Due to a current issue with release process for Python Docker images (see: python/cpython#98397 and docker-library/python#763) Dependabot Docker wrongly proposes the updates of all Python images with initial version
>3.10
to a3.11.0rc2
release candidate.Example PR from a Github Dependabot: https://github.com/Pix4D/dependabot-bug-report/pull/1
Explanation why and how it occurs:
We can first list sha reported by
Docker
cli for Python images:Sha reported by Dependabot for each of the tags by using
digest_of(tag)
:We can see that different sha is reported for 3.10.8 and this is the main reason why all tags
>3.10.0
are marked as prerelease by Dependabot and are allowed to update to release candidates versions.Additionally,
3.10.0
version will be marked as latest version to which all Python versions lower than3.10.0
can upgrade. i.e if you try to update from3.8
.SHA reported by using DockerRegistry2 directly:
Note that the same tag (
e9ebb760d
) is reported by Dockerhub.This discrepancy occurs because in Dependabot you override the headers method of
DockerRegistry2::Registry
class.dependabot-core/docker/lib/dependabot/docker/update_checker.rb
Line 25 in eaf59fb
which results in wrong updates for any Python image with initial version
>3.10
(i.e from3.10.5
to3.11.0rc2
):The main reason for this is that the Dockerhub images of
3.10.8
are missing thelinux/mips64le
architecture compared tolatest
and3.10
tags (currently).python/cpython#98397
Similar issue: docker-library/python#763, but
linux/mips64le
build is still missing and failing.Even though the main cause for this is the release process for Python Docker images, I am left wondering if this kind of issue could be prevented in the future by improving the Dependabot code.
I leave this for you to decide :)
The text was updated successfully, but these errors were encountered: