@@ -11,6 +11,7 @@ Options:
11
11
-b, --base The base image to diff against.
12
12
-t, --target The image to diff against the base image.
13
13
Default is the locally built image.
14
+ -p, --package Only show diff for this package and its dependencies.
14
15
EOF
15
16
}
16
17
@@ -19,6 +20,7 @@ BASE_IMAGE_TAG='gcr.io/kaggle-images/python:latest'
19
20
BASE_IMAGE_TAG_OVERRIDE=' '
20
21
TARGET_IMAGE_TAG=' kaggle/python-build'
21
22
TARGET_IMAGE_TAG_OVERRIDE=' '
23
+ PACKAGE_NAME=' '
22
24
23
25
while : ; do
24
26
case " $1 " in
@@ -48,6 +50,15 @@ while :; do
48
50
TARGET_IMAGE_TAG_OVERRIDE=" $2 "
49
51
shift # skip the flag value
50
52
;;
53
+ -p|--package)
54
+ if [[ -z " $2 " ]]; then
55
+ usage
56
+ printf ' ERROR: No PACKAGE specified after the %s flag.\n' " $1 " >&2
57
+ exit
58
+ fi
59
+ PACKAGE_NAME=" $2 "
60
+ shift # skip the flag value
61
+ ;;
51
62
-?* )
52
63
usage
53
64
printf ' ERROR: Unknown option: %s\n' " $1 " >&2
@@ -78,11 +89,18 @@ if [[ "$BASE_IMAGE_TAG" == "gcr.io/"* ]]; then
78
89
docker pull " $BASE_IMAGE_TAG "
79
90
fi
80
91
81
- CMDS=(' dpkg-query --show -f "${Package}==${Version}\n"' ' pip freeze' )
92
+
93
+ if [[ -n " $PACKAGE_NAME " ]]; then
94
+ echo " Package: $PACKAGE_NAME "
95
+ CMDS=(" python /tools/pip_list_versions.py $PACKAGE_NAME | sort" )
96
+ else
97
+ CMDS=(' dpkg-query --show -f "${Package}==${Version}\n"' ' pip freeze' )
98
+ fi
99
+
82
100
for cmd in " ${CMDS[@]} " ; do
83
101
echo " == Comparing $cmd =="
84
102
diff --suppress-common-lines --side-by-side \
85
- <( docker run -- rm " $BASE_IMAGE_TAG " $cmd ) \
86
- <( docker run -- rm " $TARGET_IMAGE_TAG " $cmd ) \
103
+ <( docker run -v $PWD /tools:/tools -- rm " $BASE_IMAGE_TAG " /bin/bash -c " $cmd " ) \
104
+ <( docker run -v $PWD /tools:/tools -- rm " $TARGET_IMAGE_TAG " /bin/bash -c " $cmd " ) \
87
105
&& echo ' No diff' || true
88
106
done
0 commit comments