-
Notifications
You must be signed in to change notification settings - Fork 337
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
Revert "Remove runtime dependencies from slim and alpine variants" #497
Conversation
This reverts commit 7f078b1. It looks like this change is too disruptive. For example, modern rails apps all depend in `psych` which requires libyaml. I still think it makes sense, but should probably only be part of the next Ruby version so it doesn't suddently break for lots of people.
The |
Yeah, it looks like this has broken about a dozen projects for me 😢 |
When it's going to be merged? |
Sorry to be reiterative, but do we have a timeline for merging this? Some of our pipelines are currently broken, and while we can edit our Dockerfiles as a temporary fix, we’d prefer to avoid that if the change will soon be reversed. At the moment, this issue is blocking deployments of new features. Thanks! |
agreed this broke |
I'm sure most people coming here know this, but if you need to fix your builds while waiting for this to be merged, you can pin to the previous release sha, e.g. diff --git a/Dockerfile b/Dockerfile
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
# syntax = docker/dockerfile:experimental
-FROM registry.docker.com/library/ruby:3.4.1-slim as base
+FROM registry.docker.com/library/ruby:3.4.1-slim@sha256:e872e03ff02996cc9e3200bfc178c306009e851b72b9919f03d7d406ab44da94 as base Alternatively, install the missing system packages. |
The breakage is unfortunate but correct. The Please use this temporary breakage as a chance to prepare by adding any of the removed packages that you require to your own build-time or runtime dependencies (like Redmine). Edit: I meant next the patch release of each |
This adjusts the backwards-compatibility shim to be easier to remove in the future (and automatically removes it at each next minor release).
I've added commit 1ea0c59
Diff:$ for version in 3.4 3.1; do for variant in slim-{bookworm,bullseye} alpine3.21; do if [ "$variant" = 'alpine3.21' ]; then cmd=( apk list --installed ); else cmd=( dpkg -l ); fi; printf '\n\n%s\n\n' "ruby:$version-$variant"; diff -u <(docker run --rm "ruby:$version-$variant" "${cmd[@]}") <(docker run --rm $(docker build -q "$version/$variant") "${cmd[@]}"); done; done
ruby:3.4-slim-bookworm
--- /dev/fd/63 2025-01-14 11:25:31.145789294 -0800
+++ /dev/fd/62 2025-01-14 11:25:31.145789294 -0800
@@ -9,6 +9,7 @@
ii base-passwd 3.6.1 amd64 Debian base system master password and group files
ii bash 5.2.15-2+b7 amd64 GNU Bourne Again SHell
ii bsdutils 1:2.38.1-5+deb12u3 amd64 basic utilities from 4.4BSD-Lite
+ii bzip2 1.0.8-5+b1 amd64 high-quality block-sorting file compressor - utilities
ii ca-certificates 20230311 all Common CA certificates
ii coreutils 9.1-1 amd64 GNU core utilities
ii dash 0.5.12-2 amd64 POSIX-compliant shell
@@ -33,33 +34,48 @@
ii libblkid1:amd64 2.38.1-5+deb12u3 amd64 block device ID library
ii libbz2-1.0:amd64 1.0.8-5+b1 amd64 high-quality block-sorting file compressor library - runtime
ii libc-bin 2.36-9+deb12u9 amd64 GNU C Library: Binaries
+ii libc-dev-bin 2.36-9+deb12u9 amd64 GNU C Library: Development binaries
ii libc6:amd64 2.36-9+deb12u9 amd64 GNU C Library: Shared libraries
+ii libc6-dev:amd64 2.36-9+deb12u9 amd64 GNU C Library: Development Libraries and Header Files
ii libcap-ng0:amd64 0.8.3-1+b3 amd64 alternate POSIX capabilities library
ii libcap2:amd64 1:2.66-4 amd64 POSIX 1003.1e capabilities (library)
ii libcom-err2:amd64 1.47.0-2 amd64 common error description library
+ii libcrypt-dev:amd64 1:4.4.33-2 amd64 libcrypt development files
ii libcrypt1:amd64 1:4.4.33-2 amd64 libcrypt shared library
ii libdb5.3:amd64 5.3.28+dfsg2-1 amd64 Berkeley v5.3 Database Libraries [runtime]
ii libdebconfclient0:amd64 0.270 amd64 Debian Configuration Management System (C-implementation library)
ii libext2fs2:amd64 1.47.0-2 amd64 ext2/ext3/ext4 file system libraries
+ii libffi-dev:amd64 3.4.4-1 amd64 Foreign Function Interface library (development files)
ii libffi8:amd64 3.4.4-1 amd64 Foreign Function Interface library runtime
ii libgcc-s1:amd64 12.2.0-14 amd64 GCC support library
ii libgcrypt20:amd64 1.10.1-3 amd64 LGPL Crypto library - runtime library
+ii libgmp-dev:amd64 2:6.2.1+dfsg1-1.1 amd64 Multiprecision arithmetic library developers tools
ii libgmp10:amd64 2:6.2.1+dfsg1-1.1 amd64 Multiprecision arithmetic library
+ii libgmpxx4ldbl:amd64 2:6.2.1+dfsg1-1.1 amd64 Multiprecision arithmetic library (C++ bindings)
ii libgnutls30:amd64 3.7.9-2+deb12u3 amd64 GNU TLS library - main runtime library
ii libgpg-error0:amd64 1.46-1 amd64 GnuPG development runtime library
+ii libgssapi-krb5-2:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii libhogweed6:amd64 3.8.1-2 amd64 low level cryptographic library (public-key cryptos)
ii libidn2-0:amd64 2.3.3-1+b1 amd64 Internationalized domain names (IDNA2008/TR46) library
+ii libk5crypto3:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries - Crypto Library
+ii libkeyutils1:amd64 1.6.3-2 amd64 Linux Key Management Utilities (library)
+ii libkrb5-3:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries
+ii libkrb5support0:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries - Support library
ii liblz4-1:amd64 1.9.4-1 amd64 Fast LZ compression algorithm library - runtime
ii liblzma5:amd64 5.4.1-0.2 amd64 XZ-format compression library
ii libmd0:amd64 1.0.4-2 amd64 message digest functions from BSD systems - shared library
ii libmount1:amd64 2.38.1-5+deb12u3 amd64 device mounting library
+ii libncursesw6:amd64 6.4-4 amd64 shared libraries for terminal handling (wide character support)
ii libnettle8:amd64 3.8.1-2 amd64 low level cryptographic library (symmetric and one-way cryptos)
+ii libnsl-dev:amd64 1.3.0-2 amd64 libnsl development files
+ii libnsl2:amd64 1.3.0-2 amd64 Public client interface for NIS(YP) and NIS+
ii libp11-kit0:amd64 0.24.1-2 amd64 library for loading and coordinating access to PKCS#11 modules - runtime
ii libpam-modules:amd64 1.5.2-6+deb12u1 amd64 Pluggable Authentication Modules for PAM
ii libpam-modules-bin 1.5.2-6+deb12u1 amd64 Pluggable Authentication Modules for PAM - helper binaries
ii libpam-runtime 1.5.2-6+deb12u1 all Runtime support for the PAM library
ii libpam0g:amd64 1.5.2-6+deb12u1 amd64 Pluggable Authentication Modules library
ii libpcre2-8-0:amd64 10.42-1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files
+ii libproc2-0:amd64 2:4.0.2-3 amd64 library for accessing process information from /proc
ii libseccomp2:amd64 2.5.4-1+deb12u1 amd64 high level interface to Linux seccomp filter
ii libselinux1:amd64 3.4-1+b6 amd64 SELinux runtime shared libraries
ii libsemanage-common 3.4-1 all Common files for SELinux policy management libraries
@@ -67,17 +83,23 @@
ii libsepol2:amd64 3.4-2.1 amd64 SELinux library for manipulating binary security policies
ii libsmartcols1:amd64 2.38.1-5+deb12u3 amd64 smart column output alignment library
ii libss2:amd64 1.47.0-2 amd64 command-line interface parsing library
+ii libssl-dev:amd64 3.0.15-1~deb12u1 amd64 Secure Sockets Layer toolkit - development files
ii libssl3:amd64 3.0.15-1~deb12u1 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++6:amd64 12.2.0-14 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 252.33-1~deb12u1 amd64 systemd utility library
ii libtasn1-6:amd64 4.19.0-2 amd64 Manage ASN.1 structures (runtime)
ii libtinfo6:amd64 6.4-4 amd64 shared low-level terminfo library for terminal handling
+ii libtirpc-common 1.3.3+ds-1 all transport-independent RPC library - common files
+ii libtirpc-dev:amd64 1.3.3+ds-1 amd64 transport-independent RPC library - development files
+ii libtirpc3:amd64 1.3.3+ds-1 amd64 transport-independent RPC library
ii libudev1:amd64 252.33-1~deb12u1 amd64 libudev shared library
ii libunistring2:amd64 1.0-2 amd64 Unicode string library for C
ii libuuid1:amd64 2.38.1-5+deb12u3 amd64 Universally Unique ID library
ii libxxhash0:amd64 0.8.1-1 amd64 shared library for xxhash
ii libyaml-0-2:amd64 0.2.5-1 amd64 Fast YAML 1.1 parser and emitter library
+ii libyaml-dev:amd64 0.2.5-1 amd64 Fast YAML 1.1 parser and emitter library (development)
ii libzstd1:amd64 1.5.4+dfsg2-5 amd64 fast lossless compression algorithm
+ii linux-libc-dev:amd64 6.1.123-1 amd64 Linux support headers for userspace development
ii login 1:4.13+dfsg1-1+b1 amd64 system login tools
ii logsave 1.47.0-2 amd64 save the output of a command in a log file
ii mawk 1.3.4.20200120-3.1 amd64 Pattern scanning and text processing language
@@ -87,6 +109,8 @@
ii openssl 3.0.15-1~deb12u1 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii passwd 1:4.13+dfsg1-1+b1 amd64 change and administer password and group data
ii perl-base 5.36.0-7+deb12u1 amd64 minimal Perl system
+ii procps 2:4.0.2-3 amd64 /proc file system utilities
+ii rpcsvc-proto 1.4.3-1 amd64 RPC protocol compiler and definitions
ii sed 4.9-1 amd64 GNU stream editor for filtering/transforming text
ii sysvinit-utils 3.06-4 amd64 System-V-like utilities
ii tar 1.34+dfsg-1.2+deb12u1 amd64 GNU version of the tar archiving utility
@@ -95,3 +119,4 @@
ii util-linux 2.38.1-5+deb12u3 amd64 miscellaneous system utilities
ii util-linux-extra 2.38.1-5+deb12u3 amd64 interactive login tools
ii zlib1g:amd64 1:1.2.13.dfsg-1 amd64 compression library - runtime
+ii zlib1g-dev:amd64 1:1.2.13.dfsg-1 amd64 compression library - development
ruby:3.4-slim-bullseye
--- /dev/fd/63 2025-01-14 11:25:32.321798988 -0800
+++ /dev/fd/62 2025-01-14 11:25:32.321798988 -0800
@@ -9,6 +9,7 @@
ii base-passwd 3.5.51 amd64 Debian base system master password and group files
ii bash 5.1-2+deb11u1 amd64 GNU Bourne Again SHell
ii bsdutils 1:2.36.1-8+deb11u2 amd64 basic utilities from 4.4BSD-Lite
+ii bzip2 1.0.8-4 amd64 high-quality block-sorting file compressor - utilities
ii ca-certificates 20210119 all Common CA certificates
ii coreutils 8.32-4+b1 amd64 GNU core utilities
ii dash 0.5.11+git20200708+dd9ef66-5 amd64 POSIX-compliant shell
@@ -34,17 +35,23 @@
ii libblkid1:amd64 2.36.1-8+deb11u2 amd64 block device ID library
ii libbz2-1.0:amd64 1.0.8-4 amd64 high-quality block-sorting file compressor library - runtime
ii libc-bin 2.31-13+deb11u11 amd64 GNU C Library: Binaries
+ii libc-dev-bin 2.31-13+deb11u11 amd64 GNU C Library: Development binaries
ii libc6:amd64 2.31-13+deb11u11 amd64 GNU C Library: Shared libraries
+ii libc6-dev:amd64 2.31-13+deb11u11 amd64 GNU C Library: Development Libraries and Header Files
ii libcap-ng0:amd64 0.7.9-2.2+b1 amd64 An alternate POSIX capabilities library
ii libcom-err2:amd64 1.46.2-2+deb11u1 amd64 common error description library
+ii libcrypt-dev:amd64 1:4.4.18-4 amd64 libcrypt development files
ii libcrypt1:amd64 1:4.4.18-4 amd64 libcrypt shared library
ii libdb5.3:amd64 5.3.28+dfsg1-0.8 amd64 Berkeley v5.3 Database Libraries [runtime]
ii libdebconfclient0:amd64 0.260 amd64 Debian Configuration Management System (C-implementation library)
ii libext2fs2:amd64 1.46.2-2+deb11u1 amd64 ext2/ext3/ext4 file system libraries
+ii libffi-dev:amd64 3.3-6 amd64 Foreign Function Interface library (development files)
ii libffi7:amd64 3.3-6 amd64 Foreign Function Interface library runtime
ii libgcc-s1:amd64 10.2.1-6 amd64 GCC support library
ii libgcrypt20:amd64 1.8.7-6 amd64 LGPL Crypto library - runtime library
+ii libgmp-dev:amd64 2:6.2.1+dfsg-1+deb11u1 amd64 Multiprecision arithmetic library developers tools
ii libgmp10:amd64 2:6.2.1+dfsg-1+deb11u1 amd64 Multiprecision arithmetic library
+ii libgmpxx4ldbl:amd64 2:6.2.1+dfsg-1+deb11u1 amd64 Multiprecision arithmetic library (C++ bindings)
ii libgnutls30:amd64 3.7.1-5+deb11u6 amd64 GNU TLS library - main runtime library
ii libgpg-error0:amd64 1.38-2 amd64 GnuPG development runtime library
ii libgssapi-krb5-2:amd64 1.18.3-6+deb11u5 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
@@ -57,7 +64,10 @@
ii liblz4-1:amd64 1.9.3-2 amd64 Fast LZ compression algorithm library - runtime
ii liblzma5:amd64 5.2.5-2.1~deb11u1 amd64 XZ-format compression library
ii libmount1:amd64 2.36.1-8+deb11u2 amd64 device mounting library
+ii libncurses6:amd64 6.2+20201114-2+deb11u2 amd64 shared libraries for terminal handling
+ii libncursesw6:amd64 6.2+20201114-2+deb11u2 amd64 shared libraries for terminal handling (wide character support)
ii libnettle8:amd64 3.7.3-1 amd64 low level cryptographic library (symmetric and one-way cryptos)
+ii libnsl-dev:amd64 1.3.0-2 amd64 libnsl development files
ii libnsl2:amd64 1.3.0-2 amd64 Public client interface for NIS(YP) and NIS+
ii libp11-kit0:amd64 0.23.22-1 amd64 library for loading and coordinating access to PKCS#11 modules - runtime
ii libpam-modules:amd64 1.4.0-9+deb11u1 amd64 Pluggable Authentication Modules for PAM
@@ -66,6 +76,7 @@
ii libpam0g:amd64 1.4.0-9+deb11u1 amd64 Pluggable Authentication Modules library
ii libpcre2-8-0:amd64 10.36-2+deb11u1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files
ii libpcre3:amd64 2:8.39-13 amd64 Old Perl 5 Compatible Regular Expression Library - runtime files
+ii libprocps8:amd64 2:3.3.17-5 amd64 library for accessing process information from /proc
ii libseccomp2:amd64 2.5.1-1+deb11u1 amd64 high level interface to Linux seccomp filter
ii libselinux1:amd64 3.1-3 amd64 SELinux runtime shared libraries
ii libsemanage-common 3.1-1 all Common files for SELinux policy management libraries
@@ -73,19 +84,23 @@
ii libsepol1:amd64 3.1-1+deb11u1 amd64 SELinux library for manipulating binary security policies
ii libsmartcols1:amd64 2.36.1-8+deb11u2 amd64 smart column output alignment library
ii libss2:amd64 1.46.2-2+deb11u1 amd64 command-line interface parsing library
+ii libssl-dev:amd64 1.1.1w-0+deb11u2 amd64 Secure Sockets Layer toolkit - development files
ii libssl1.1:amd64 1.1.1w-0+deb11u2 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++6:amd64 10.2.1-6 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 247.3-7+deb11u6 amd64 systemd utility library
ii libtasn1-6:amd64 4.16.0-2+deb11u1 amd64 Manage ASN.1 structures (runtime)
ii libtinfo6:amd64 6.2+20201114-2+deb11u2 amd64 shared low-level terminfo library for terminal handling
ii libtirpc-common 1.3.1-1+deb11u1 all transport-independent RPC library - common files
+ii libtirpc-dev:amd64 1.3.1-1+deb11u1 amd64 transport-independent RPC library - development files
ii libtirpc3:amd64 1.3.1-1+deb11u1 amd64 transport-independent RPC library
ii libudev1:amd64 247.3-7+deb11u6 amd64 libudev shared library
ii libunistring2:amd64 0.9.10-4 amd64 Unicode string library for C
ii libuuid1:amd64 2.36.1-8+deb11u2 amd64 Universally Unique ID library
ii libxxhash0:amd64 0.8.0-2 amd64 shared library for xxhash
ii libyaml-0-2:amd64 0.2.2-1 amd64 Fast YAML 1.1 parser and emitter library
+ii libyaml-dev:amd64 0.2.2-1 amd64 Fast YAML 1.1 parser and emitter library (development)
ii libzstd1:amd64 1.4.8+dfsg-2.1 amd64 fast lossless compression algorithm
+ii linux-libc-dev:amd64 5.10.226-1 amd64 Linux support headers for userspace development
ii login 1:4.8.1-1 amd64 system login tools
ii logsave 1.46.2-2+deb11u1 amd64 save the output of a command in a log file
ii lsb-base 11.1.0 all Linux Standard Base init script functionality
@@ -96,9 +111,11 @@
ii openssl 1.1.1w-0+deb11u2 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii passwd 1:4.8.1-1 amd64 change and administer password and group data
ii perl-base 5.32.1-4+deb11u4 amd64 minimal Perl system
+ii procps 2:3.3.17-5 amd64 /proc file system utilities
ii sed 4.7-1 amd64 GNU stream editor for filtering/transforming text
ii sysvinit-utils 2.96-7+deb11u1 amd64 System-V-like utilities
ii tar 1.34+dfsg-1+deb11u1 amd64 GNU version of the tar archiving utility
ii tzdata 2024b-0+deb11u1 all time zone and daylight-saving time data
ii util-linux 2.36.1-8+deb11u2 amd64 miscellaneous system utilities
ii zlib1g:amd64 1:1.2.11.dfsg-2+deb11u2 amd64 compression library - runtime
+ii zlib1g-dev:amd64 1:1.2.11.dfsg-2+deb11u2 amd64 compression library - development
ruby:3.4-alpine3.21
--- /dev/fd/63 2025-01-14 11:25:33.737810661 -0800
+++ /dev/fd/62 2025-01-14 11:25:33.737810661 -0800
@@ -1,4 +1,5 @@
-.ruby-rundeps-20250114.013745 noarch {.ruby-rundeps} () [installed]
+.ruby-493-backcompat-20250114.191511 noarch {.ruby-493-backcompat} () [installed]
+.ruby-rundeps-20250114.191511 noarch {.ruby-rundeps} () [installed]
alpine-baselayout-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-baselayout-data-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-keys-2.5-r0 x86_64 {alpine-keys} (MIT) [installed]
@@ -6,15 +7,30 @@
apk-tools-2.14.6-r2 x86_64 {apk-tools} (GPL-2.0-only) [installed]
busybox-1.37.0-r9 x86_64 {busybox} (GPL-2.0-only) [installed]
busybox-binsh-1.37.0-r9 x86_64 {busybox} (GPL-2.0-only) [installed]
+bzip2-1.0.8-r6 x86_64 {bzip2} (bzip2-1.0.6) [installed]
+ca-certificates-20241121-r1 x86_64 {ca-certificates} (MPL-2.0 AND MIT) [installed]
ca-certificates-bundle-20241121-r1 x86_64 {ca-certificates} (MPL-2.0 AND MIT) [installed]
gmp-6.3.0-r2 x86_64 {gmp} (LGPL-3.0-or-later OR GPL-2.0-or-later) [installed]
+gmp-dev-6.3.0-r2 x86_64 {gmp} (LGPL-3.0-or-later OR GPL-2.0-or-later) [installed]
libcrypto3-3.3.2-r4 x86_64 {openssl} (Apache-2.0) [installed]
libffi-3.4.6-r0 x86_64 {libffi} (MIT) [installed]
+libffi-dev-3.4.6-r0 x86_64 {libffi} (MIT) [installed]
libgcc-14.2.0-r4 x86_64 {gcc} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
+libgmpxx-6.3.0-r2 x86_64 {gmp} (LGPL-3.0-or-later OR GPL-2.0-or-later) [installed]
+libintl-0.22.5-r0 x86_64 {gettext} (LGPL-2.1-or-later) [installed]
+libncursesw-6.5_p20241006-r3 x86_64 {ncurses} (X11) [installed]
+libproc2-4.0.4-r2 x86_64 {procps-ng} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
libssl3-3.3.2-r4 x86_64 {openssl} (Apache-2.0) [installed]
+libstdc++-14.2.0-r4 x86_64 {gcc} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
+linux-headers-6.6-r1 x86_64 {linux-headers} (GPL-2.0-only) [installed]
musl-1.2.5-r8 x86_64 {musl} (MIT) [installed]
musl-utils-1.2.5-r8 x86_64 {musl} (MIT AND BSD-2-Clause AND GPL-2.0-or-later) [installed]
+ncurses-terminfo-base-6.5_p20241006-r3 x86_64 {ncurses} (X11) [installed]
+pkgconf-2.3.0-r0 x86_64 {pkgconf} (ISC) [installed]
+procps-ng-4.0.4-r2 x86_64 {procps-ng} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
scanelf-1.3.8-r1 x86_64 {pax-utils} (GPL-2.0-only) [installed]
ssl_client-1.37.0-r9 x86_64 {busybox} (GPL-2.0-only) [installed]
yaml-0.2.5-r2 x86_64 {yaml} (MIT) [installed]
+yaml-dev-0.2.5-r2 x86_64 {yaml} (MIT) [installed]
zlib-1.3.1-r2 x86_64 {zlib} (Zlib) [installed]
+zlib-dev-1.3.1-r2 x86_64 {zlib} (Zlib) [installed]
ruby:3.1-slim-bookworm
--- /dev/fd/63 2025-01-14 11:25:35.549825601 -0800
+++ /dev/fd/62 2025-01-14 11:25:35.549825601 -0800
@@ -9,6 +9,7 @@
ii base-passwd 3.6.1 amd64 Debian base system master password and group files
ii bash 5.2.15-2+b7 amd64 GNU Bourne Again SHell
ii bsdutils 1:2.38.1-5+deb12u3 amd64 basic utilities from 4.4BSD-Lite
+ii bzip2 1.0.8-5+b1 amd64 high-quality block-sorting file compressor - utilities
ii ca-certificates 20230311 all Common CA certificates
ii coreutils 9.1-1 amd64 GNU core utilities
ii dash 0.5.12-2 amd64 POSIX-compliant shell
@@ -33,34 +34,49 @@
ii libblkid1:amd64 2.38.1-5+deb12u3 amd64 block device ID library
ii libbz2-1.0:amd64 1.0.8-5+b1 amd64 high-quality block-sorting file compressor library - runtime
ii libc-bin 2.36-9+deb12u9 amd64 GNU C Library: Binaries
+ii libc-dev-bin 2.36-9+deb12u9 amd64 GNU C Library: Development binaries
ii libc6:amd64 2.36-9+deb12u9 amd64 GNU C Library: Shared libraries
+ii libc6-dev:amd64 2.36-9+deb12u9 amd64 GNU C Library: Development Libraries and Header Files
ii libcap-ng0:amd64 0.8.3-1+b3 amd64 alternate POSIX capabilities library
ii libcap2:amd64 1:2.66-4 amd64 POSIX 1003.1e capabilities (library)
ii libcom-err2:amd64 1.47.0-2 amd64 common error description library
+ii libcrypt-dev:amd64 1:4.4.33-2 amd64 libcrypt development files
ii libcrypt1:amd64 1:4.4.33-2 amd64 libcrypt shared library
ii libdb5.3:amd64 5.3.28+dfsg2-1 amd64 Berkeley v5.3 Database Libraries [runtime]
ii libdebconfclient0:amd64 0.270 amd64 Debian Configuration Management System (C-implementation library)
ii libext2fs2:amd64 1.47.0-2 amd64 ext2/ext3/ext4 file system libraries
+ii libffi-dev:amd64 3.4.4-1 amd64 Foreign Function Interface library (development files)
ii libffi8:amd64 3.4.4-1 amd64 Foreign Function Interface library runtime
ii libgcc-s1:amd64 12.2.0-14 amd64 GCC support library
ii libgcrypt20:amd64 1.10.1-3 amd64 LGPL Crypto library - runtime library
+ii libgmp-dev:amd64 2:6.2.1+dfsg1-1.1 amd64 Multiprecision arithmetic library developers tools
ii libgmp10:amd64 2:6.2.1+dfsg1-1.1 amd64 Multiprecision arithmetic library
+ii libgmpxx4ldbl:amd64 2:6.2.1+dfsg1-1.1 amd64 Multiprecision arithmetic library (C++ bindings)
ii libgnutls30:amd64 3.7.9-2+deb12u3 amd64 GNU TLS library - main runtime library
ii libgpg-error0:amd64 1.46-1 amd64 GnuPG development runtime library
+ii libgssapi-krb5-2:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii libhogweed6:amd64 3.8.1-2 amd64 low level cryptographic library (public-key cryptos)
ii libidn2-0:amd64 2.3.3-1+b1 amd64 Internationalized domain names (IDNA2008/TR46) library
+ii libk5crypto3:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries - Crypto Library
+ii libkeyutils1:amd64 1.6.3-2 amd64 Linux Key Management Utilities (library)
+ii libkrb5-3:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries
+ii libkrb5support0:amd64 1.20.1-2+deb12u2 amd64 MIT Kerberos runtime libraries - Support library
ii liblz4-1:amd64 1.9.4-1 amd64 Fast LZ compression algorithm library - runtime
ii liblzma5:amd64 5.4.1-0.2 amd64 XZ-format compression library
ii libmd0:amd64 1.0.4-2 amd64 message digest functions from BSD systems - shared library
ii libmount1:amd64 2.38.1-5+deb12u3 amd64 device mounting library
ii libncurses6:amd64 6.4-4 amd64 shared libraries for terminal handling
+ii libncursesw6:amd64 6.4-4 amd64 shared libraries for terminal handling (wide character support)
ii libnettle8:amd64 3.8.1-2 amd64 low level cryptographic library (symmetric and one-way cryptos)
+ii libnsl-dev:amd64 1.3.0-2 amd64 libnsl development files
+ii libnsl2:amd64 1.3.0-2 amd64 Public client interface for NIS(YP) and NIS+
ii libp11-kit0:amd64 0.24.1-2 amd64 library for loading and coordinating access to PKCS#11 modules - runtime
ii libpam-modules:amd64 1.5.2-6+deb12u1 amd64 Pluggable Authentication Modules for PAM
ii libpam-modules-bin 1.5.2-6+deb12u1 amd64 Pluggable Authentication Modules for PAM - helper binaries
ii libpam-runtime 1.5.2-6+deb12u1 all Runtime support for the PAM library
ii libpam0g:amd64 1.5.2-6+deb12u1 amd64 Pluggable Authentication Modules library
ii libpcre2-8-0:amd64 10.42-1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files
+ii libproc2-0:amd64 2:4.0.2-3 amd64 library for accessing process information from /proc
ii libreadline8:amd64 8.2-1.3 amd64 GNU readline and history libraries, run-time libraries
ii libseccomp2:amd64 2.5.4-1+deb12u1 amd64 high level interface to Linux seccomp filter
ii libselinux1:amd64 3.4-1+b6 amd64 SELinux runtime shared libraries
@@ -69,17 +85,23 @@
ii libsepol2:amd64 3.4-2.1 amd64 SELinux library for manipulating binary security policies
ii libsmartcols1:amd64 2.38.1-5+deb12u3 amd64 smart column output alignment library
ii libss2:amd64 1.47.0-2 amd64 command-line interface parsing library
+ii libssl-dev:amd64 3.0.15-1~deb12u1 amd64 Secure Sockets Layer toolkit - development files
ii libssl3:amd64 3.0.15-1~deb12u1 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++6:amd64 12.2.0-14 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 252.33-1~deb12u1 amd64 systemd utility library
ii libtasn1-6:amd64 4.19.0-2 amd64 Manage ASN.1 structures (runtime)
ii libtinfo6:amd64 6.4-4 amd64 shared low-level terminfo library for terminal handling
+ii libtirpc-common 1.3.3+ds-1 all transport-independent RPC library - common files
+ii libtirpc-dev:amd64 1.3.3+ds-1 amd64 transport-independent RPC library - development files
+ii libtirpc3:amd64 1.3.3+ds-1 amd64 transport-independent RPC library
ii libudev1:amd64 252.33-1~deb12u1 amd64 libudev shared library
ii libunistring2:amd64 1.0-2 amd64 Unicode string library for C
ii libuuid1:amd64 2.38.1-5+deb12u3 amd64 Universally Unique ID library
ii libxxhash0:amd64 0.8.1-1 amd64 shared library for xxhash
ii libyaml-0-2:amd64 0.2.5-1 amd64 Fast YAML 1.1 parser and emitter library
+ii libyaml-dev:amd64 0.2.5-1 amd64 Fast YAML 1.1 parser and emitter library (development)
ii libzstd1:amd64 1.5.4+dfsg2-5 amd64 fast lossless compression algorithm
+ii linux-libc-dev:amd64 6.1.123-1 amd64 Linux support headers for userspace development
ii login 1:4.13+dfsg1-1+b1 amd64 system login tools
ii logsave 1.47.0-2 amd64 save the output of a command in a log file
ii mawk 1.3.4.20200120-3.1 amd64 Pattern scanning and text processing language
@@ -89,7 +111,9 @@
ii openssl 3.0.15-1~deb12u1 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii passwd 1:4.13+dfsg1-1+b1 amd64 change and administer password and group data
ii perl-base 5.36.0-7+deb12u1 amd64 minimal Perl system
+ii procps 2:4.0.2-3 amd64 /proc file system utilities
ii readline-common 8.2-1.3 all GNU readline and history libraries, common files
+ii rpcsvc-proto 1.4.3-1 amd64 RPC protocol compiler and definitions
ii sed 4.9-1 amd64 GNU stream editor for filtering/transforming text
ii sysvinit-utils 3.06-4 amd64 System-V-like utilities
ii tar 1.34+dfsg-1.2+deb12u1 amd64 GNU version of the tar archiving utility
@@ -98,3 +122,4 @@
ii util-linux 2.38.1-5+deb12u3 amd64 miscellaneous system utilities
ii util-linux-extra 2.38.1-5+deb12u3 amd64 interactive login tools
ii zlib1g:amd64 1:1.2.13.dfsg-1 amd64 compression library - runtime
+ii zlib1g-dev:amd64 1:1.2.13.dfsg-1 amd64 compression library - development
ruby:3.1-slim-bullseye
--- /dev/fd/63 2025-01-14 11:25:37.089838300 -0800
+++ /dev/fd/62 2025-01-14 11:25:37.089838300 -0800
@@ -9,6 +9,7 @@
ii base-passwd 3.5.51 amd64 Debian base system master password and group files
ii bash 5.1-2+deb11u1 amd64 GNU Bourne Again SHell
ii bsdutils 1:2.36.1-8+deb11u2 amd64 basic utilities from 4.4BSD-Lite
+ii bzip2 1.0.8-4 amd64 high-quality block-sorting file compressor - utilities
ii ca-certificates 20210119 all Common CA certificates
ii coreutils 8.32-4+b1 amd64 GNU core utilities
ii dash 0.5.11+git20200708+dd9ef66-5 amd64 POSIX-compliant shell
@@ -34,17 +35,23 @@
ii libblkid1:amd64 2.36.1-8+deb11u2 amd64 block device ID library
ii libbz2-1.0:amd64 1.0.8-4 amd64 high-quality block-sorting file compressor library - runtime
ii libc-bin 2.31-13+deb11u11 amd64 GNU C Library: Binaries
+ii libc-dev-bin 2.31-13+deb11u11 amd64 GNU C Library: Development binaries
ii libc6:amd64 2.31-13+deb11u11 amd64 GNU C Library: Shared libraries
+ii libc6-dev:amd64 2.31-13+deb11u11 amd64 GNU C Library: Development Libraries and Header Files
ii libcap-ng0:amd64 0.7.9-2.2+b1 amd64 An alternate POSIX capabilities library
ii libcom-err2:amd64 1.46.2-2+deb11u1 amd64 common error description library
+ii libcrypt-dev:amd64 1:4.4.18-4 amd64 libcrypt development files
ii libcrypt1:amd64 1:4.4.18-4 amd64 libcrypt shared library
ii libdb5.3:amd64 5.3.28+dfsg1-0.8 amd64 Berkeley v5.3 Database Libraries [runtime]
ii libdebconfclient0:amd64 0.260 amd64 Debian Configuration Management System (C-implementation library)
ii libext2fs2:amd64 1.46.2-2+deb11u1 amd64 ext2/ext3/ext4 file system libraries
+ii libffi-dev:amd64 3.3-6 amd64 Foreign Function Interface library (development files)
ii libffi7:amd64 3.3-6 amd64 Foreign Function Interface library runtime
ii libgcc-s1:amd64 10.2.1-6 amd64 GCC support library
ii libgcrypt20:amd64 1.8.7-6 amd64 LGPL Crypto library - runtime library
+ii libgmp-dev:amd64 2:6.2.1+dfsg-1+deb11u1 amd64 Multiprecision arithmetic library developers tools
ii libgmp10:amd64 2:6.2.1+dfsg-1+deb11u1 amd64 Multiprecision arithmetic library
+ii libgmpxx4ldbl:amd64 2:6.2.1+dfsg-1+deb11u1 amd64 Multiprecision arithmetic library (C++ bindings)
ii libgnutls30:amd64 3.7.1-5+deb11u6 amd64 GNU TLS library - main runtime library
ii libgpg-error0:amd64 1.38-2 amd64 GnuPG development runtime library
ii libgssapi-krb5-2:amd64 1.18.3-6+deb11u5 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
@@ -58,7 +65,9 @@
ii liblzma5:amd64 5.2.5-2.1~deb11u1 amd64 XZ-format compression library
ii libmount1:amd64 2.36.1-8+deb11u2 amd64 device mounting library
ii libncurses6:amd64 6.2+20201114-2+deb11u2 amd64 shared libraries for terminal handling
+ii libncursesw6:amd64 6.2+20201114-2+deb11u2 amd64 shared libraries for terminal handling (wide character support)
ii libnettle8:amd64 3.7.3-1 amd64 low level cryptographic library (symmetric and one-way cryptos)
+ii libnsl-dev:amd64 1.3.0-2 amd64 libnsl development files
ii libnsl2:amd64 1.3.0-2 amd64 Public client interface for NIS(YP) and NIS+
ii libp11-kit0:amd64 0.23.22-1 amd64 library for loading and coordinating access to PKCS#11 modules - runtime
ii libpam-modules:amd64 1.4.0-9+deb11u1 amd64 Pluggable Authentication Modules for PAM
@@ -67,6 +76,7 @@
ii libpam0g:amd64 1.4.0-9+deb11u1 amd64 Pluggable Authentication Modules library
ii libpcre2-8-0:amd64 10.36-2+deb11u1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files
ii libpcre3:amd64 2:8.39-13 amd64 Old Perl 5 Compatible Regular Expression Library - runtime files
+ii libprocps8:amd64 2:3.3.17-5 amd64 library for accessing process information from /proc
ii libreadline8:amd64 8.1-1 amd64 GNU readline and history libraries, run-time libraries
ii libseccomp2:amd64 2.5.1-1+deb11u1 amd64 high level interface to Linux seccomp filter
ii libselinux1:amd64 3.1-3 amd64 SELinux runtime shared libraries
@@ -75,19 +85,23 @@
ii libsepol1:amd64 3.1-1+deb11u1 amd64 SELinux library for manipulating binary security policies
ii libsmartcols1:amd64 2.36.1-8+deb11u2 amd64 smart column output alignment library
ii libss2:amd64 1.46.2-2+deb11u1 amd64 command-line interface parsing library
+ii libssl-dev:amd64 1.1.1w-0+deb11u2 amd64 Secure Sockets Layer toolkit - development files
ii libssl1.1:amd64 1.1.1w-0+deb11u2 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++6:amd64 10.2.1-6 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 247.3-7+deb11u6 amd64 systemd utility library
ii libtasn1-6:amd64 4.16.0-2+deb11u1 amd64 Manage ASN.1 structures (runtime)
ii libtinfo6:amd64 6.2+20201114-2+deb11u2 amd64 shared low-level terminfo library for terminal handling
ii libtirpc-common 1.3.1-1+deb11u1 all transport-independent RPC library - common files
+ii libtirpc-dev:amd64 1.3.1-1+deb11u1 amd64 transport-independent RPC library - development files
ii libtirpc3:amd64 1.3.1-1+deb11u1 amd64 transport-independent RPC library
ii libudev1:amd64 247.3-7+deb11u6 amd64 libudev shared library
ii libunistring2:amd64 0.9.10-4 amd64 Unicode string library for C
ii libuuid1:amd64 2.36.1-8+deb11u2 amd64 Universally Unique ID library
ii libxxhash0:amd64 0.8.0-2 amd64 shared library for xxhash
ii libyaml-0-2:amd64 0.2.2-1 amd64 Fast YAML 1.1 parser and emitter library
+ii libyaml-dev:amd64 0.2.2-1 amd64 Fast YAML 1.1 parser and emitter library (development)
ii libzstd1:amd64 1.4.8+dfsg-2.1 amd64 fast lossless compression algorithm
+ii linux-libc-dev:amd64 5.10.226-1 amd64 Linux support headers for userspace development
ii login 1:4.8.1-1 amd64 system login tools
ii logsave 1.46.2-2+deb11u1 amd64 save the output of a command in a log file
ii lsb-base 11.1.0 all Linux Standard Base init script functionality
@@ -98,6 +112,7 @@
ii openssl 1.1.1w-0+deb11u2 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii passwd 1:4.8.1-1 amd64 change and administer password and group data
ii perl-base 5.32.1-4+deb11u4 amd64 minimal Perl system
+ii procps 2:3.3.17-5 amd64 /proc file system utilities
ii readline-common 8.1-1 all GNU readline and history libraries, common files
ii sed 4.7-1 amd64 GNU stream editor for filtering/transforming text
ii sysvinit-utils 2.96-7+deb11u1 amd64 System-V-like utilities
@@ -105,3 +120,4 @@
ii tzdata 2024b-0+deb11u1 all time zone and daylight-saving time data
ii util-linux 2.36.1-8+deb11u2 amd64 miscellaneous system utilities
ii zlib1g:amd64 1:1.2.11.dfsg-2+deb11u2 amd64 compression library - runtime
+ii zlib1g-dev:amd64 1:1.2.11.dfsg-2+deb11u2 amd64 compression library - development
ruby:3.1-alpine3.21
--- /dev/fd/63 2025-01-14 11:25:38.381848956 -0800
+++ /dev/fd/62 2025-01-14 11:25:38.381848956 -0800
@@ -1,4 +1,5 @@
-.ruby-rundeps-20250114.013652 noarch {.ruby-rundeps} () [installed]
+.ruby-493-backcompat-20250114.191428 noarch {.ruby-493-backcompat} () [installed]
+.ruby-rundeps-20250114.191428 noarch {.ruby-rundeps} () [installed]
alpine-baselayout-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-baselayout-data-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-keys-2.5-r0 x86_64 {alpine-keys} (MIT) [installed]
@@ -6,17 +7,31 @@
apk-tools-2.14.6-r2 x86_64 {apk-tools} (GPL-2.0-only) [installed]
busybox-1.37.0-r9 x86_64 {busybox} (GPL-2.0-only) [installed]
busybox-binsh-1.37.0-r9 x86_64 {busybox} (GPL-2.0-only) [installed]
+bzip2-1.0.8-r6 x86_64 {bzip2} (bzip2-1.0.6) [installed]
+ca-certificates-20241121-r1 x86_64 {ca-certificates} (MPL-2.0 AND MIT) [installed]
ca-certificates-bundle-20241121-r1 x86_64 {ca-certificates} (MPL-2.0 AND MIT) [installed]
gmp-6.3.0-r2 x86_64 {gmp} (LGPL-3.0-or-later OR GPL-2.0-or-later) [installed]
+gmp-dev-6.3.0-r2 x86_64 {gmp} (LGPL-3.0-or-later OR GPL-2.0-or-later) [installed]
libcrypto3-3.3.2-r4 x86_64 {openssl} (Apache-2.0) [installed]
libffi-3.4.6-r0 x86_64 {libffi} (MIT) [installed]
+libffi-dev-3.4.6-r0 x86_64 {libffi} (MIT) [installed]
+libgcc-14.2.0-r4 x86_64 {gcc} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
+libgmpxx-6.3.0-r2 x86_64 {gmp} (LGPL-3.0-or-later OR GPL-2.0-or-later) [installed]
+libintl-0.22.5-r0 x86_64 {gettext} (LGPL-2.1-or-later) [installed]
libncursesw-6.5_p20241006-r3 x86_64 {ncurses} (X11) [installed]
+libproc2-4.0.4-r2 x86_64 {procps-ng} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
libssl3-3.3.2-r4 x86_64 {openssl} (Apache-2.0) [installed]
+libstdc++-14.2.0-r4 x86_64 {gcc} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
+linux-headers-6.6-r1 x86_64 {linux-headers} (GPL-2.0-only) [installed]
musl-1.2.5-r8 x86_64 {musl} (MIT) [installed]
musl-utils-1.2.5-r8 x86_64 {musl} (MIT AND BSD-2-Clause AND GPL-2.0-or-later) [installed]
ncurses-terminfo-base-6.5_p20241006-r3 x86_64 {ncurses} (X11) [installed]
+pkgconf-2.3.0-r0 x86_64 {pkgconf} (ISC) [installed]
+procps-ng-4.0.4-r2 x86_64 {procps-ng} (GPL-2.0-or-later AND LGPL-2.1-or-later) [installed]
readline-8.2.13-r0 x86_64 {readline} (GPL-3.0-or-later) [installed]
scanelf-1.3.8-r1 x86_64 {pax-utils} (GPL-2.0-only) [installed]
ssl_client-1.37.0-r9 x86_64 {busybox} (GPL-2.0-only) [installed]
yaml-0.2.5-r2 x86_64 {yaml} (MIT) [installed]
+yaml-dev-0.2.5-r2 x86_64 {yaml} (MIT) [installed]
zlib-1.3.1-r2 x86_64 {zlib} (Zlib) [installed]
+zlib-dev-1.3.1-r2 x86_64 {zlib} (Zlib) [installed] |
FYI - rails has already added now necessary packages to the default Dockerfile - rails/rails#54237 |
(I'm working on another diff to compare the pure revert version / old version's packages to my change to validate that it correctly does bring everything we expect back in, which should be a smaller diff than what I posted above and easier to review for correctness.) |
@tianon what do you think about keeping it indefinitely for 3.1/3.2/3.3/3.4? I understand the inclusion of the dev packages is unintentional and I totally agree about removing them eventually. But considering they have been a part of the image for almost a decade and no one really noticed I don't think this needs to be pushed even in a patch version. |
For Alpine, these unintentional dependencies account for a ~25MiB image size increase (in a ~100MiB image, that's pretty sizeable). For Debian-based Slim variants, it's ~50MiB (on a ~220MiB image). Size isn't the end-all-be-all, of course, but both of these variants have minimal image size as an explicit goal, so it seems useful and even important that we correct our mistake. Doing it on a minor version bump means that (as noted above), it's easier for users to pin to a working version while they figure out which of these dependencies they need to fix their builds and don't have to dig up a content-digest, so it seems like a pretty fair compromise.
As promised: Diff:ruby:3.4-slim-bookworm
ruby:3.4-slim-bullseye
ruby:3.4-alpine3.21
--- /dev/fd/63 2025-01-14 11:43:52.523585335 -0800
+++ /dev/fd/62 2025-01-14 11:43:52.527585370 -0800
@@ -1,4 +1,5 @@
-.ruby-rundeps-20250114.193809 noarch {.ruby-rundeps} () [installed]
+.ruby-493-backcompat-20250114.191511 noarch {.ruby-493-backcompat} () [installed]
+.ruby-rundeps-20250114.191511 noarch {.ruby-rundeps} () [installed]
alpine-baselayout-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-baselayout-data-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-keys-2.5-r0 x86_64 {alpine-keys} (MIT) [installed]
ruby:3.1-slim-bookworm
ruby:3.1-slim-bullseye
ruby:3.1-alpine3.21
--- /dev/fd/63 2025-01-14 11:43:56.495620656 -0800
+++ /dev/fd/62 2025-01-14 11:43:56.495620656 -0800
@@ -1,4 +1,5 @@
-.ruby-rundeps-20250114.194243 noarch {.ruby-rundeps} () [installed]
+.ruby-493-backcompat-20250114.191428 noarch {.ruby-493-backcompat} () [installed]
+.ruby-rundeps-20250114.191428 noarch {.ruby-rundeps} () [installed]
alpine-baselayout-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-baselayout-data-3.6.8-r1 x86_64 {alpine-baselayout} (GPL-2.0-only) [installed]
alpine-keys-2.5-r0 x86_64 {alpine-keys} (MIT) [installed] |
I guess most(?) do specify the patch version so if you have even the smallest amount of CI it should catch it. I just rank the size savings so very low since it went unnoticed for sooo long. I can't really tell if it would repeat with the next patch versions, so I would be more conservative, but it may be fine. |
I guess most should have already noticed the issue and added the build dependencies in the respective build stages (where they honestly belong). It's just unfortunate that it surfaced like this, so maybe take it as a note for the future to at least add a warning first, before adding breaking changes and/or add the breaking changes in the next patch or (conservatively) minor version(s). |
We don't really have a better way to notify users of things like this -- a warning would've been lost in the logs, totally unnoticed. 😞 |
(There's also not an obvious place to add a warning -- we'd have to add something nutty like a wrapper script around ... |
Yeah that's why it's probably better to just keep the patch versions backwards compatible. You're right, a warning would have most likely been lost in the logs. There's also no built in mechanism for notifying docker users of such changes. |
I'll go ahead and merge this to at least get the revert in. LGTM. If you'd still like to discuss or change when it will come back, let's open a new PR/issue. |
Changes: - docker-library/ruby@2ba928a: Merge pull request docker-library/ruby#497 from Earlopain/revert-slim-trim - docker-library/ruby@1ea0c59: Remove packages again at next minor release of each series - docker-library/ruby@6f84caa: Revert "Remove runtime dependencies from slim and alpine variants"
@tianon Hi! It is true that even if it were included in the logs, it would probably result in the message being lost and unnoticed. Anyway, developers usually test newer images before bumping versions, so they would notice if something is failing. What we should avoid is introducing changes to already released and tagged versions when those are already in use. |
When will new images be deployed? The latest ruby:3.3-slim was built before this was reverted. |
|
This reverts commit 7f078b1. (#493)
It looks like this change is too disruptive. For example, modern rails apps all transitively depend in
psych
which requires libyaml. Coincidentally my own builds would fail with this.I still think this change makes sense, but should probably only be part of the next Ruby version so it doesn't suddently break for lots of people.
Closes #495, closes #496