Build Logs

guardian/play-brotli-filter • 3.8.0-RC2:2025-11-28

Errors

0

Warnings

6

Total Lines

359

1##################################
2Clonning https://github.com/guardian/play-brotli-filter.git into /build/repo using revision v0.18.0
3##################################
4Note: switching to 'd38a905a56528be7e68a74985c1feeb35482853d'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.4
22----
23Preparing build for 3.8.0-RC2
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: build.sbt
34Pattern: val Scala3 = "3.3.4"
35Replacement: val Scala3 = "3.8.0-RC2"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (21))
38Compiled project (Scala 3.7.3, JVM (21))
39Successfully applied pattern 'val Scala3 = "3.3.4"' in build.sbt
40----
41Starting build for 3.8.0-RC2
42Execute tests: true
43sbt project found:
44Sbt version 1.10.7 is not supported, minimal supported version is 1.11.5
45Enforcing usage of sbt in version 1.11.5
46No prepare script found for project guardian/play-brotli-filter
47##################################
48Scala version: 3.8.0-RC2
49Targets: com.gu%akka-stream-brotli com.gu%brotli4s com.gu%pekko-stream-brotli com.gu%play-v29-brotli-filter com.gu%play-v30-brotli-filter
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3 = \"3.3.4\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
51##################################
52Using extra scalacOptions: ,REQUIRE:-source:3.8
53Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
54[sbt_options] declare -a sbt_options=()
55[process_args] java_version = '21'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21/rt.jar'
57# Executing command line:
58java
59-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.8.0-RC2
61-Dcommunitybuild.project.dependencies.add=
62-Xmx7G
63-Xms4G
64-Xss8M
65-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
66-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.8.0-RC2"
70"++3.8.0-RC2 -v"
71"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
72"set every credentials := Nil"
73"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
74"removeScalacOptionsStartingWith -P:wartremover"
75
76moduleMappings
77"runBuild 3.8.0-RC2 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3 = \"3.3.4\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}""" com.gu%akka-stream-brotli com.gu%brotli4s com.gu%pekko-stream-brotli com.gu%play-v29-brotli-filter com.gu%play-v30-brotli-filter"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 21)
80[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
81[info] loading project definition from /build/repo/project
82[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
83[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
84[info] Compilation completed in 8.619s.
85[info] done compiling
86[info] loading settings for project play-brotli-filter-root from build.sbt, version.sbt...
87[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
88Execute setCrossScalaVersions: 3.8.0-RC2
89OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in play-v30/crossScalaVersions
90OpenCB::Limitting incorrect crossVersions List() -> List(2.13.15) in play-brotli-filter-root/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in pekko/crossScalaVersions
92OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in akka/crossScalaVersions
93OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in play-v29/crossScalaVersions
94OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in common/crossScalaVersions
95[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
96[info] Setting Scala version to 3.8.0-RC2 on 5 projects.
97[info] Switching Scala version on:
98[info] play-v29 (2.13.15, 3.8.0-RC2)
99[info] akka (2.12.20, 2.13.15, 3.8.0-RC2)
100[info] common (2.12.20, 2.13.15, 3.8.0-RC2)
101[info] play-v30 (2.13.15, 3.8.0-RC2)
102[info] pekko (2.13.15, 3.8.0-RC2)
103[info] Excluding projects:
104[info] * play-brotli-filter-root (2.13.15)
105[info] play-v28 (2.12.20, 2.13.15)
106[info] Reapplying settings...
107[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
108Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
109[info] Reapplying settings...
110[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
111[info] Defining Global / credentials, akka / credentials and 5 others.
112[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 34 others.
113[info] Run `last` for details.
114[info] Reapplying settings...
115[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
116Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
117[info] Reapplying settings...
118OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
119
120 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
121 Did you mean play-v30 / allExcludeDependencies ?
122 , retry without global scopes
123[info] Reapplying settings...
124[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
125Execute removeScalacOptionsStartingWith: -P:wartremover
126[info] Reapplying settings...
127[info] set current project to play-brotli-filter-root (in build file:/build/repo/)
128[success] Total time: 0 s, completed Nov 28, 2025, 3:08:44 PM
129Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3 = \"3.3.4\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
130Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
131Starting build...
132Projects: Set(play-v29, akka, common, play-v30, pekko)
133Starting build for ProjectRef(file:/build/repo/,play-v29) (play-v29-brotli-filter)... [0/5]
134OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
135OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
136OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
137Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
138[info] compiling 1 Java source to /build/repo/common/target/scala-3.8.0-RC2/classes ...
139[warn] /build/repo/common/src/main/java/Brotli.java:80:19: getSecurityManager() in java.lang.System has been deprecated and marked for removal
140[warn] System.getSecurityManager
141[warn] ^
142[warn] /build/repo/common/src/main/java/Brotli.java:83:20: java.security.AccessController in java.security has been deprecated and marked for removal
143[warn] AccessController
144[warn] ^
145[info] done compiling
146[info] compiling 3 Scala sources to /build/repo/akka/target/scala-3.8.0-RC2/classes ...
147[info] done compiling
148[info] compiling 2 Scala sources to /build/repo/play-v29/target/scala-3.8.0-RC2/classes ...
149[info] done compiling
150[info] compiling 1 Scala source to /build/repo/play-v29/target/scala-3.8.0-RC2/test-classes ...
151[info] done compiling
152[info] BrotliFilterSpec
153[info] The BrotliFilter should
154[info] + compress responses with brotli
155[info] + compress a response with brotli if (and only if) it is accepted and preferred by the request.
156[info] Although not explicitly mentioned in RFC 2616 sect. 14.3, the default qvalue
157[info] is assumed to be 1 for all mentioned codings. If no "*" is present, unmentioned
158[info] codings are assigned a qvalue of 0, except the identity coding which gets q=0.001,
159[info] which is the lowest possible acceptable qvalue.
160[info] This seems to be the most consistent behaviour with respect to the other "accept"
161[info] header fields described in sect 14.1-5.
162[info] + not brotli empty responses
163[info] + not brotli responses when not requested
164[info] + not brotli HEAD requests
165[info] + not brotli no content responses
166[info] + not brotli not modified responses
167[info] + brotli chunked responses
168[info] + not buffer more than the configured threshold
169[info] + brotli a strict body even if it exceeds the threshold
170[info] + brotli entire content for large files
171[info] + preserve original headers
172[info] + preserve original cookies
173[info] + preserve original session
174[info] + preserve original Vary header values
175[info] + preserve original Vary header values and not duplicate case-insensitive ACCEPT-ENCODING
176[info] Total for specification BrotliFilterSpec
177[info] Finished in 3 seconds, 273 ms
178[info] 16 examples, 0 failure, 0 error
179Starting build for ProjectRef(file:/build/repo/,akka) (akka-stream-brotli)... [1/5]
180Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
181[info] compiling 5 Scala sources to /build/repo/akka/target/scala-3.8.0-RC2/test-classes ...
182[info] done compiling
183[INFO] [11/28/2025 15:10:07.765] [pool-27-thread-4] [CoordinatedShutdown(akka://GzipSpec)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
184[INFO] [11/28/2025 15:10:07.765] [pool-27-thread-3] [CoordinatedShutdown(akka://BrotliSpec)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
185[info] GzipSpec:
186[info] The gzip codec
187[info] - should properly encode a small string
188[info] - should properly decode a small string
189[info] - should properly round-trip encode/decode a small string
190[info] - should properly encode a large string
191[info] - should properly decode a large string
192[info] - should properly round-trip encode/decode a large string
193[info] - should throw an error on corrupt input
194[info] - should decompress in very small chunks
195[info] - should support chunked round-trip encoding/decoding
196[info] - should works for any split in prefix + suffix
197[info] - should works for chunked compressed data of sizes just above 1024
198[info] - should shouldn't produce huge ByteStrings for some input
199[info] - should decode concatenated compressions
200[info] - should provide a better compression ratio than the standard Gzip/Gunzip streams
201[info] - should throw an error on truncated input
202[info] - should throw an error if compressed data is just missing the trailer at the end
203[info] - should throw early if header is corrupt
204[info] BrotliSpec:
205[info] The brotli codec
206[info] - should properly encode a small string
207[info] - should properly decode a small string
208[info] - should properly round-trip encode/decode a small string
209[info] - should properly encode a large string
210[info] - should properly decode a large string
211[info] - should properly round-trip encode/decode a large string
212[info] - should decompress in very small chunks
213[info] - should support chunked round-trip encoding/decoding
214[info] - should works for any split in prefix + suffix
215[info] - should works for chunked compressed data of sizes just above 1024
216[info] - should shouldn't produce huge ByteStrings for some input
217[info] - should decode concatenated compressions (pending)
218[info] - should provide a similar compression ratio than the standard Brotli/Unbortli streams
219[info] - should throw an error on truncated input
220Starting build for ProjectRef(file:/build/repo/,play-v30) (play-v30-brotli-filter)... [2/5]
221Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
222[info] compiling 3 Scala sources to /build/repo/pekko/target/scala-3.8.0-RC2/classes ...
223[info] done compiling
224[info] compiling 2 Scala sources to /build/repo/play-v30/target/scala-3.8.0-RC2/classes ...
225[info] done compiling
226[info] compiling 1 Scala source to /build/repo/play-v30/target/scala-3.8.0-RC2/test-classes ...
227[info] done compiling
228[info] BrotliFilterSpec
229[info] The BrotliFilter should
230[info] + compress responses with brotli
231[info] + compress a response with brotli if (and only if) it is accepted and preferred by the request.
232[info] Although not explicitly mentioned in RFC 2616 sect. 14.3, the default qvalue
233[info] is assumed to be 1 for all mentioned codings. If no "*" is present, unmentioned
234[info] codings are assigned a qvalue of 0, except the identity coding which gets q=0.001,
235[info] which is the lowest possible acceptable qvalue.
236[info] This seems to be the most consistent behaviour with respect to the other "accept"
237[info] header fields described in sect 14.1-5.
238[info] + not brotli empty responses
239[info] + not brotli responses when not requested
240[info] + not brotli HEAD requests
241[info] + not brotli no content responses
242[info] + not brotli not modified responses
243[info] + brotli chunked responses
244[info] + not buffer more than the configured threshold
245[info] + brotli a strict body even if it exceeds the threshold
246[info] + brotli entire content for large files
247[info] + preserve original headers
248[info] + preserve original cookies
249[info] + preserve original session
250[info] + preserve original Vary header values
251[info] + preserve original Vary header values and not duplicate case-insensitive ACCEPT-ENCODING
252[info] Total for specification BrotliFilterSpec
253[info] Finished in 2 seconds, 496 ms
254[info] 16 examples, 0 failure, 0 error
255Starting build for ProjectRef(file:/build/repo/,pekko) (pekko-stream-brotli)... [3/5]
256Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
257[info] compiling 5 Scala sources to /build/repo/pekko/target/scala-3.8.0-RC2/test-classes ...
258[info] done compiling
259[INFO] [11/28/2025 15:10:29.496] [pool-46-thread-5] [CoordinatedShutdown(pekko://BrotliSpec)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
260[INFO] [11/28/2025 15:10:29.496] [pool-46-thread-1] [CoordinatedShutdown(pekko://GzipSpec)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
261[info] GzipSpec:
262[info] The gzip codec
263[info] - should properly encode a small string
264[info] - should properly decode a small string
265[info] - should properly round-trip encode/decode a small string
266[info] - should properly encode a large string
267[info] - should properly decode a large string
268[info] - should properly round-trip encode/decode a large string
269[info] - should throw an error on corrupt input
270[info] - should decompress in very small chunks
271[info] - should support chunked round-trip encoding/decoding
272[info] - should works for any split in prefix + suffix
273[info] - should works for chunked compressed data of sizes just above 1024
274[info] - should shouldn't produce huge ByteStrings for some input
275[info] - should decode concatenated compressions
276[info] - should provide a better compression ratio than the standard Gzip/Gunzip streams
277[info] - should throw an error on truncated input
278[info] - should throw an error if compressed data is just missing the trailer at the end
279[info] - should throw early if header is corrupt
280[info] BrotliSpec:
281[info] The brotli codec
282[info] - should properly encode a small string
283[info] - should properly decode a small string
284[info] - should properly round-trip encode/decode a small string
285[info] - should properly encode a large string
286[info] - should properly decode a large string
287[info] - should properly round-trip encode/decode a large string
288[info] - should decompress in very small chunks
289[info] - should support chunked round-trip encoding/decoding
290[info] - should works for any split in prefix + suffix
291[info] - should works for chunked compressed data of sizes just above 1024
292[info] - should shouldn't produce huge ByteStrings for some input
293[info] - should decode concatenated compressions (pending)
294[info] - should provide a similar compression ratio than the standard Brotli/Unbortli streams
295[info] - should throw an error on truncated input
296Starting build for ProjectRef(file:/build/repo/,common) (brotli4s)... [4/5]
297Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
298
299************************
300Build summary:
301[{
302 "module": "play-v29-brotli-filter",
303 "compile": {"status": "ok", "tookMs": 10069, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
304 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
305 "test-compile": {"status": "ok", "tookMs": 4378, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
306 "test": {"status": "ok", "tookMs": 4235, "passed": 16, "failed": 0, "ignored": 0, "skipped": 0, "total": 16, "byFramework": [{"framework": "specs2", "stats": {"passed": 16, "failed": 0, "ignored": 0, "skipped": 0, "total": 16}}]},
307 "publish": {"status": "skipped", "tookMs": 0},
308 "metadata": {
309 "crossScalaVersions": ["2.13.15", "3.3.4"]
310}
311},{
312 "module": "akka-stream-brotli",
313 "compile": {"status": "ok", "tookMs": 95, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
314 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
315 "test-compile": {"status": "ok", "tookMs": 3026, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
316 "test": {"status": "ok", "tookMs": 796, "passed": 30, "failed": 0, "ignored": 0, "skipped": 0, "total": 30, "byFramework": [{"framework": "unknown", "stats": {"passed": 30, "failed": 0, "ignored": 0, "skipped": 0, "total": 30}}]},
317 "publish": {"status": "skipped", "tookMs": 0},
318 "metadata": {
319 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.4"]
320}
321},{
322 "module": "play-v30-brotli-filter",
323 "compile": {"status": "ok", "tookMs": 1951, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
324 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
325 "test-compile": {"status": "ok", "tookMs": 2354, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
326 "test": {"status": "ok", "tookMs": 3069, "passed": 16, "failed": 0, "ignored": 0, "skipped": 0, "total": 16, "byFramework": [{"framework": "specs2", "stats": {"passed": 16, "failed": 0, "ignored": 0, "skipped": 0, "total": 16}}]},
327 "publish": {"status": "skipped", "tookMs": 0},
328 "metadata": {
329 "crossScalaVersions": ["2.13.15", "3.3.4"]
330}
331},{
332 "module": "pekko-stream-brotli",
333 "compile": {"status": "ok", "tookMs": 72, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
334 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
335 "test-compile": {"status": "ok", "tookMs": 1537, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
336 "test": {"status": "ok", "tookMs": 650, "passed": 30, "failed": 0, "ignored": 0, "skipped": 0, "total": 30, "byFramework": [{"framework": "unknown", "stats": {"passed": 30, "failed": 0, "ignored": 0, "skipped": 0, "total": 30}}]},
337 "publish": {"status": "skipped", "tookMs": 0},
338 "metadata": {
339 "crossScalaVersions": ["2.13.15", "3.3.4"]
340}
341},{
342 "module": "brotli4s",
343 "compile": {"status": "ok", "tookMs": 38, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
344 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
345 "test-compile": {"status": "ok", "tookMs": 77, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
346 "test": {"status": "ok", "tookMs": 56, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
347 "publish": {"status": "skipped", "tookMs": 0},
348 "metadata": {
349 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.4"]
350}
351}]
352************************
353[success] Total time: 105 s (0:01:45.0), completed Nov 28, 2025, 3:10:30 PM
354[0JChecking patch project/plugins.sbt...
355Checking patch project/build.properties...
356Checking patch build.sbt...
357Applied patch project/plugins.sbt cleanly.
358Applied patch project/build.properties cleanly.
359Applied patch build.sbt cleanly.