docker-library / busybox

Docker Official Image packaging for Busybox
http://busybox.net
388 stars 126 forks source link

Switch from explicit "stable" / "unstable" to "latest" and "latest-1"… #161

Closed tianon closed 1 year ago

tianon commented 1 year ago

… based on major.minor releases

This refactor will more closely match how BusyBox does releases -- they always call x.y.0 "unstable" but if it doesn't require any further fixes it never gets a .1 "stable" release (like 1.35 suffered from). Additionally, they don't seem to really ever have more than two simultaneous release branches (but if they did, we could trivially add a new latest-2 and be covered):

$ wget -qO- 'https://busybox.net' | grep -ioE '[0-9a-zA-Z ]+ -- BusyBox [0-9.]+ [(](un)?stable[)]' | sed -re 's/(.*) -- (.*)/\2\t\1/' | column -ts$'\t' -R2
BusyBox 1.36.0 (unstable)     3 January 2023
BusyBox 1.35.0 (unstable)   26 December 2021
BusyBox 1.33.2 (stable)     30 November 2021
BusyBox 1.34.1 (stable)    30 September 2021
BusyBox 1.34.0 (unstable)     19 August 2021
BusyBox 1.33.1 (stable)           3 May 2021
BusyBox 1.32.1 (stable)       1 January 2021
BusyBox 1.33.0 (unstable)   29 December 2020
BusyBox 1.32.0 (unstable)       26 June 2020
BusyBox 1.31.1 (stable)      25 October 2019
BusyBox 1.31.0 (unstable)       10 June 2019
BusyBox 1.30.1 (stable)     14 February 2019
BusyBox 1.30.0 (unstable)   31 December 2018
BusyBox 1.29.3 (stable)     9 September 2018
BusyBox 1.29.2 (stable)         31 July 2018
BusyBox 1.29.1 (stable)         15 July 2018
BusyBox 1.29.0 (unstable)        1 July 2018
BusyBox 1.28.4 (stable)          22 May 2018
BusyBox 1.28.3 (stable)         3 April 2018
BusyBox 1.28.2 (stable)        26 March 2018
BusyBox 1.28.1 (stable)     15 February 2018
BusyBox 1.28.0 (unstable)     2 January 2018
BusyBox 1.27.2 (stable)       17 August 2017
BusyBox 1.27.1 (stable)         18 July 2017
BusyBox 1.27.0 (unstable)        3 July 2017
BusyBox 1.26.2 (stable)      10 January 2017
BusyBox 1.26.1 (stable)       2 January 2017
BusyBox 1.26.0 (unstable)   20 December 2016
BusyBox 1.25.1 (stable)       7 October 2016
BusyBox 1.25.0 (unstable)       22 June 2016
BusyBox 1.24.2 (stable)        24 March 2016
BusyBox 1.24.1 (stable)      24 October 2015
BusyBox 1.24.0 (unstable)    12 October 2015
BusyBox 1.23.2 (stable)        23 March 2015
BusyBox 1.23.1 (stable)      27 January 2015
BusyBox 1.23.0 (unstable)   23 December 2014
BusyBox 1.22.1 (stable)      20 January 2014
BusyBox 1.22.0 (unstable)     1 January 2014
BusyBox 1.21.1 (stable)         29 June 2013
BusyBox 1.21.0 (unstable)    21 January 2013
BusyBox 1.20.2 (stable)          2 July 2012

See also discussion in https://github.com/docker-library/busybox/issues/127#issuecomment-1370359595

tianon commented 1 year ago

Made some tiny hacks to my local generate-stackbrew-library.sh (since it looks at the remote dist-* branches for the supported architectures lists), and managed to generate the following diff to demonstrate the effects of this change:

$ diff -u --color <(bashbrew cat busybox) <(bashbrew cat <(./generate-stackbrew-library.sh))
--- /dev/fd/63  2023-01-04 13:14:36.355494132 -0800
+++ /dev/fd/62  2023-01-04 13:14:36.355494132 -0800
@@ -1,6 +1,6 @@
 Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon), Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
 GitRepo: https://github.com/docker-library/busybox.git
-GitCommit: fc0294a74da0206958940ac75c2dfbdd95fc07a5
+GitCommit: c7a767edfab481398176baca5cd3d799fe82b3ff
 amd64-GitCommit: 31d342ad033e27c18723a516a2274ab39547be27
 amd64-GitFetch: refs/heads/dist-amd64
 arm32v5-GitCommit: 96ea82ea25565f78b50bd032d5768d64985d6e11
@@ -22,52 +22,52 @@
 s390x-GitCommit: a03814d21bcf97767121bb9422a742ec237a09e2
 s390x-GitFetch: refs/heads/dist-s390x

-Tags: 1.34.1-glibc, 1.34-glibc, 1-glibc, stable-glibc, glibc
+Tags: 1.36.0-glibc, 1.36-glibc, 1-glibc, unstable-glibc, glibc
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
-Directory: stable/glibc
+Directory: latest/glibc

-Tags: 1.34.1-uclibc, 1.34-uclibc, 1-uclibc, stable-uclibc, uclibc
+Tags: 1.36.0-uclibc, 1.36-uclibc, 1-uclibc, unstable-uclibc, uclibc
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, riscv64
-Directory: stable/uclibc
+Directory: latest/uclibc

-Tags: 1.34.1-musl, 1.34-musl, 1-musl, stable-musl, musl
+Tags: 1.36.0-musl, 1.36-musl, 1-musl, unstable-musl, musl
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-Directory: stable/musl
+Directory: latest/musl

-Tags: 1.34.1, 1.34, 1, stable, latest
+Tags: 1.36.0, 1.36, 1, unstable, latest
 Architectures: amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, mips64le, ppc64le, riscv64, s390x
-amd64-Directory: stable/glibc
-arm32v5-Directory: stable/glibc
-arm32v6-Directory: stable/musl
-arm32v7-Directory: stable/glibc
-arm64v8-Directory: stable/glibc
-i386-Directory: stable/glibc
-mips64le-Directory: stable/glibc
-ppc64le-Directory: stable/glibc
-riscv64-Directory: stable/uclibc
-s390x-Directory: stable/glibc
+amd64-Directory: latest/glibc
+arm32v5-Directory: latest/glibc
+arm32v6-Directory: latest/musl
+arm32v7-Directory: latest/glibc
+arm64v8-Directory: latest/glibc
+i386-Directory: latest/glibc
+mips64le-Directory: latest/glibc
+ppc64le-Directory: latest/glibc
+riscv64-Directory: latest/uclibc
+s390x-Directory: latest/glibc

-Tags: 1.36.0-glibc, 1.36-glibc, unstable-glibc
+Tags: 1.35.0-glibc, 1.35-glibc
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
-Directory: unstable/glibc
+Directory: latest-1/glibc

-Tags: 1.36.0-uclibc, 1.36-uclibc, unstable-uclibc
+Tags: 1.35.0-uclibc, 1.35-uclibc
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, riscv64
-Directory: unstable/uclibc
+Directory: latest-1/uclibc

-Tags: 1.36.0-musl, 1.36-musl, unstable-musl
+Tags: 1.35.0-musl, 1.35-musl
 Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-Directory: unstable/musl
+Directory: latest-1/musl

-Tags: 1.36.0, 1.36, unstable
+Tags: 1.35.0, 1.35
 Architectures: amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, mips64le, ppc64le, riscv64, s390x
-amd64-Directory: unstable/glibc
-arm32v5-Directory: unstable/glibc
-arm32v6-Directory: unstable/musl
-arm32v7-Directory: unstable/glibc
-arm64v8-Directory: unstable/glibc
-i386-Directory: unstable/glibc
-mips64le-Directory: unstable/glibc
-ppc64le-Directory: unstable/glibc
-riscv64-Directory: unstable/uclibc
-s390x-Directory: unstable/glibc
+amd64-Directory: latest-1/glibc
+arm32v5-Directory: latest-1/glibc
+arm32v6-Directory: latest-1/musl
+arm32v7-Directory: latest-1/glibc
+arm64v8-Directory: latest-1/glibc
+i386-Directory: latest-1/glibc
+mips64le-Directory: latest-1/glibc
+ppc64le-Directory: latest-1/glibc
+riscv64-Directory: latest-1/uclibc
+s390x-Directory: latest-1/glibc