Skip to content

Commit 40cd9f0

Browse files
committed
chore: dependency-submission: skip test scope
Currently, dependency-submission would submit all dependencies to https://github.com/apache/pekko/security/dependabot , including test dependencies. We then added explicit dependencies to the build to squash warnings about outdated test dependencies (#1181, #1313 and #1344). With version 3, sbt-dependency-submission now supports ignoring scopes. This PR proposes to ignore the test scope, and remove the explicit dependencies from the build. Of course, we want our developers to be secure as much as our users. From that perspective you could say we'd want to remove 'insecure' dependencies even from the test scope. In practice, however, I think it's really unlikely that a vulnerability in a test scope dependency would lead to a realistic attack on a developer. For that reason, I think ignoring this scope for dependency-submission and keeping the old dependencies in the build removes some development friction, which balances out the risk of testing with outdated dependencies. If there'd be a 'malicious' dependency out there, I expect we'd learn about it through other channels. (do we need to request sbt-dependency-submission@v3 to be whitelisted at Infra?)
1 parent 2adb783 commit 40cd9f0

File tree

2 files changed

+4
-14
lines changed

2 files changed

+4
-14
lines changed

.github/workflows/dependency-graph.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@ jobs:
1616
contents: write
1717
steps:
1818
- uses: actions/checkout@v4
19-
- uses: scalacenter/sbt-dependency-submission@v2
19+
- uses: scalacenter/sbt-dependency-submission@v3
20+
with:
21+
configs-ignore: test

project/Dependencies.scala

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ object Dependencies {
3434
// needs to be inline with the aeron version, check
3535
// https://github.com/real-logic/aeron/blob/1.x.y/build.gradle
3636
val agronaVersion = "1.21.1"
37-
val bouncyCastleVersion = "1.78.1"
3837
val nettyVersion = "4.1.112.Final"
3938
val logbackVersion = "1.3.14"
4039

@@ -119,13 +118,8 @@ object Dependencies {
119118
}
120119

121120
object TestDependencies {
122-
val bcprov = "org.bouncycastle" % "bcprov-jdk18on" % bouncyCastleVersion % Test
123-
val bcpkix = "org.bouncycastle" % "bcpkix-jdk18on" % bouncyCastleVersion % Test
124-
val bcutil = "org.bouncycastle" % "bcutil-jdk18on" % bouncyCastleVersion % Test
125121
val commonsIo = "commons-io" % "commons-io" % "2.16.1" % Test
126122
val commonsCodec = "commons-codec" % "commons-codec" % "1.17.1" % Test
127-
val commonsCompress = "org.apache.commons" % "commons-compress" % "1.26.2" % Test
128-
val guava = "com.google.guava" % "guava" % "33.2.1-jre" % Test
129123
val junit = "junit" % "junit" % junitVersion % Test
130124
val junit5 = "org.junit.jupiter" % "junit-jupiter-engine" % junit5Version % Test
131125
val httpClient = "org.apache.httpcomponents" % "httpclient" % "4.5.14" % Test
@@ -150,16 +144,10 @@ object Dependencies {
150144
// in-memory filesystem for file related tests
151145
val jimfs = "com.google.jimfs" % "jimfs" % "1.3.0" % Test
152146

153-
// the extra dependency overrides for bcprov, commonsCompress and guava should be reviewed - https://github.com/apache/pekko/issues/1317
154147
val dockerClientVersion = "3.4.0"
155148
val dockerClient = Seq(
156149
"com.github.docker-java" % "docker-java-core" % dockerClientVersion % Test,
157-
"com.github.docker-java" % "docker-java-transport-httpclient5" % dockerClientVersion % Test,
158-
TestDependencies.bcprov,
159-
TestDependencies.bcpkix,
160-
TestDependencies.bcutil,
161-
TestDependencies.commonsCompress,
162-
TestDependencies.guava)
150+
"com.github.docker-java" % "docker-java-transport-httpclient5" % dockerClientVersion % Test)
163151

164152
val jackson = Seq(
165153
jacksonCore % Test,

0 commit comments

Comments
 (0)