Build Logs

guardian/janus-app • 3.8.0-RC4:2025-12-22

Errors

2

Warnings

7

Total Lines

387

1##################################
2Clonning https://github.com/guardian/janus-app.git into /build/repo using revision v7.0.0
3##################################
4Note: switching to '50e8eb6e527a8f0e8e558cf73d5af00c5bfc9106'.
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
21----
22Preparing build for 3.8.0-RC4
23Scala binary version found: 3.8
24Implicitly using source version 3.8
25Scala binary version found: 3.8
26Implicitly using source version 3.8
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.8
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30----
31Starting build for 3.8.0-RC4
32Execute tests: true
33sbt project found:
34No prepare script found for project guardian/janus-app
35##################################
36Scala version: 3.8.0-RC4
37Targets: com.gu%janus-config-tools
38Project projectConfig: {"tests":null}
39##################################
40Using extra scalacOptions: ,REQUIRE:-source:3.8
41Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
42[sbt_options] declare -a sbt_options=()
43[process_args] java_version = '17'
44[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
45# Executing command line:
46java
47-Dfile.encoding=UTF-8
48-Dcommunitybuild.scala=3.8.0-RC4
49-Dcommunitybuild.project.dependencies.add=
50-Xmx7G
51-Xms4G
52-Xss8M
53-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
54-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
55-jar
56/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
57"setCrossScalaVersions 3.8.0-RC4"
58"++3.8.0-RC4 -v"
59"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
60"set every credentials := Nil"
61"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
62"removeScalacOptionsStartingWith -P:wartremover"
63
64moduleMappings
65"runBuild 3.8.0-RC4 """{"tests":null}""" com.gu%janus-config-tools"
66
67[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
68[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 17.0.8)
69[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
70[info] loading project definition from /build/repo/project
71[info] compiling 4 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
72[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
73[info] Compilation completed in 8.577s.
74[info] done compiling
75[info] loading settings for project root from build.sbt, version.sbt...
76[info] __ __
77[info] \ \ ____ / /____ _ __ __
78[info] \ \ / __ \ / // __ `// / / /
79[info] / / / /_/ // // /_/ // /_/ /
80[info] /_/ / .___//_/ \__,_/ \__, /
81[info] /_/ /____/
82[info]
83[info] Version 3.0.9 running Java 17.0.8
84[info]
85[info] Play is run entirely by the community. Please consider contributing and/or donating:
86[info] https://www.playframework.com/sponsors
87[info]
88[warn] there's a key that's not used by any other settings/tasks:
89[warn]
90[warn] * root / Debian / topLevelDirectory
91[warn] +- /build/repo/build.sbt:153
92[warn]
93[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
94[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
95Execute setCrossScalaVersions: 3.8.0-RC4
96OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC4 in configTools/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in configTools/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC4 in root/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in root/crossScalaVersions
100[info] __ __
101[info] \ \ ____ / /____ _ __ __
102[info] \ \ / __ \ / // __ `// / / /
103[info] / / / /_/ // // /_/ // /_/ /
104[info] /_/ / .___//_/ \__,_/ \__, /
105[info] /_/ /____/
106[info]
107[info] Version 3.0.9 running Java 17.0.8
108[info]
109[info] Play is run entirely by the community. Please consider contributing and/or donating:
110[info] https://www.playframework.com/sponsors
111[info]
112[info] Setting Scala version to 3.8.0-RC4 on 2 projects.
113[info] Switching Scala version on:
114[info] * root (3.8.0-RC4)
115[info] configTools (3.8.0-RC4)
116[info] Excluding projects:
117[info] Reapplying settings...
118[info] __ __
119[info] \ \ ____ / /____ _ __ __
120[info] \ \ / __ \ / // __ `// / / /
121[info] / / / /_/ // // /_/ // /_/ /
122[info] /_/ / .___//_/ \__,_/ \__, /
123[info] /_/ /____/
124[info]
125[info] Version 3.0.9 running Java 17.0.8
126[info]
127[info] Play is run entirely by the community. Please consider contributing and/or donating:
128[info] https://www.playframework.com/sponsors
129[info]
130Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
131[info] Reapplying settings...
132[info] __ __
133[info] \ \ ____ / /____ _ __ __
134[info] \ \ / __ \ / // __ `// / / /
135[info] / / / /_/ // // /_/ // /_/ /
136[info] /_/ / .___//_/ \__,_/ \__, /
137[info] /_/ /____/
138[info]
139[info] Version 3.0.9 running Java 17.0.8
140[info]
141[info] Play is run entirely by the community. Please consider contributing and/or donating:
142[info] https://www.playframework.com/sponsors
143[info]
144[info] Defining Global / credentials, configTools / credentials, credentials
145[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 13 others.
146[info] Run `last` for details.
147[info] Reapplying settings...
148[info] __ __
149[info] \ \ ____ / /____ _ __ __
150[info] \ \ / __ \ / // __ `// / / /
151[info] / / / /_/ // // /_/ // /_/ /
152[info] /_/ / .___//_/ \__,_/ \__, /
153[info] /_/ /____/
154[info]
155[info] Version 3.0.9 running Java 17.0.8
156[info]
157[info] Play is run entirely by the community. Please consider contributing and/or donating:
158[info] https://www.playframework.com/sponsors
159[info]
160Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
161[info] Reapplying settings...
162OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
163
164 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
165 Did you mean allExcludeDependencies ?
166 , retry without global scopes
167[info] Reapplying settings...
168[info] __ __
169[info] \ \ ____ / /____ _ __ __
170[info] \ \ / __ \ / // __ `// / / /
171[info] / / / /_/ // // /_/ // /_/ /
172[info] /_/ / .___//_/ \__,_/ \__, /
173[info] /_/ /____/
174[info]
175[info] Version 3.0.9 running Java 17.0.8
176[info]
177[info] Play is run entirely by the community. Please consider contributing and/or donating:
178[info] https://www.playframework.com/sponsors
179[info]
180Execute removeScalacOptionsStartingWith: -P:wartremover
181[info] Reapplying settings...
182[info] __ __
183[info] \ \ ____ / /____ _ __ __
184[info] \ \ / __ \ / // __ `// / / /
185[info] / / / /_/ // // /_/ // /_/ /
186[info] /_/ / .___//_/ \__,_/ \__, /
187[info] /_/ /____/
188[info]
189[info] Version 3.0.9 running Java 17.0.8
190[info]
191[info] Play is run entirely by the community. Please consider contributing and/or donating:
192[info] https://www.playframework.com/sponsors
193[info]
194[success] Total time: 0 s, completed Dec 22, 2025, 6:02:45 PM
195Build config: {"tests":null}
196Parsed config: Failure(sjsonnew.DeserializationException: Expected String as JString, but got JNull)
197Starting build...
198Projects: Set(configTools)
199Starting build for ProjectRef(file:/build/repo/,configTools) (janus-config-tools)... [0/1]
200OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
201OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
202OpenCB::Filter out '-Werror', matches setting pattern '^-?-Werror'
203Compile scalacOptions: --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
204[info] scalafmt: Formatting 10 Scala sources (/build/repo/configTools)...
205[info] scalafmt: Formatting 10 Scala sources (/build/repo/configTools)...
206[info] compiling 12 Scala sources to /build/repo/configTools/target/scala-3.8.0-RC4/classes ...
207[info] done compiling
208[info] compiling 10 Scala sources to /build/repo/configTools/target/scala-3.8.0-RC4/test-classes ...
209[info] done compiling
210[info] StatementsTest:
211[info] policy helper
212[info] - deduplicates statements
213[info] enforceCorrectPath
214[info] - returns true for /
215[info] - returns true for path with leading slash and no trailing slash
216[info] - returns false if no leading slash
217[info] - returns false with trailing and leading slash
218[info] - returns false for edge case of single char
219[info] hierarchyPath
220[info] - builds a '/*' pattern for the path '/'
221[info] - builds a '/my-path/sub-path/*' pattern for the path '/my-path/sub-path'
222[info] WriterTest:
223[info] toConfig
224[info] - includes the permissionsRepo
225[info] - excludes permissionsRepo entry if it is empty
226[info] - includes the inline policy for a permission
227[info] - includes the managed policy ARNs for a permission
228[info] access section
229[info] - includes user in ACL
230[info] - includes provisioned role name in ACL entry
231[info] - includes provisioned role iamRoleTag in ACL entry
232[info] - includes multiple provisioned roles for a single user
233[info] - includes multiple permissions and multiple roles for a single user
234[info] admin section
235[info] - includes user in admin ACL
236[info] - includes provisioned role in admin ACL entry
237[info] - includes provisioned role iamRoleTag in admin ACL entry
238[info] - includes multiple provisioned roles for a single user
239[info] - includes multiple permissions and multiple roles for a single user
240[info] ValidationTest:
241[info] policySizeChecks
242[info] - returns nothing if the provided data contains no large policies
243[info] returns a warning if there is a large policy
244[info] in the access ACL
245[info] - for a large inline policy
246[info] - for large managedPolicyArns
247[info] in the admin ACL
248[info] - for a large inline policy
249[info] - for large managedPolicyArns
250[info] in the support ACL
251[info] - for a large inline policy
252[info] - for large managedPolicyArns
253[info] - returns an 'invalid' validation result if a warning is generated
254[info] permissionIdUniqueness
255[info] - returns nothing for valid permissions
256[info] - returns nothing for duplicate permissions in separate accounts
257[info] - returns a validation error for permissions with duplicate IDs (concatenation of account & label)
258[info] - returns a validation error for duplicate permissions across multiple users
259[info] isClean
260[info] - returns true for a result with no warnings or errors
261[info] - returns false for a result with errors but no warnings
262[info] - returns false for a result with warnings but no errors
263[info] - returns false for a result with warnings and errors
264[info] noErrors
265[info] - returns true for a result with no warnings or errors
266[info] - returns true for a result with warnings but no errors
267[info] - returns false for a result with errors but no warnings
268[info] - returns false for a result with warnings and errors
269[info] IamTest:
270[info] Action
271[info] - should encode action name correctly
272[info] Resource
273[info] - should encode resource id correctly
274[info] Statement
275[info] - should encode basic statement correctly
276[info] - should encode statement with ID correctly
277[info] - should encode statement with single condition correctly
278[info] - should encode statement with single condition with multiple values correctly
279[info] - should encode statement with multiple conditions correctly
280[info] - should encode statement with multiple conditions of same type correctly
281[info] - should encode statement with single principal correctly
282[info] - should encode statement with multiple principals correctly
283[info] Policy
284[info] - should encode basic policy correctly
285[info] - should encode policy with ID correctly
286[info] should encode complex policy correctly
287[info] - with correct version
288[info] - with correct ID
289[info] - with correct effect
290[info] - with explicitly set statement ID
291[info] - with correct condition
292[info] - with correct principal
293[info] - with correct second principal
294[info] - with correct complete json string
295[info] PermissionTest:
296[info] allPermissions
297[info] - returns nothing for an empty JanusData
298[info] - includes default access permissions
299[info] - includes access permissions
300[info] - includes access permissions from multiple users
301[info] - includes admin permissions
302[info] - includes support permissions
303[info] - includes permissions from all sources
304[info] JanusConfigTest:
305[info] - Can load a config file
306[info] - throws a Janus configuration exception if there is an error in the config
307[info] ConfigIntegrationTests:
308[info] round trips
309[info] - the example janus data can be read, written and re-read
310[info] - the example janus data that omits a permissions repo can be read, written and re-read
311[info] development helpers
312[info] - print the generated config file to the console for manual inspection !!! IGNORED !!!
313[info] LoaderTest:
314[info] fromConfig
315[info] - parses the full example
316[info] - parses an example without a permissions repo
317[info] loadPermissionsRepo
318[info] - loads the example file's repo
319[info] - loads example with no permissions repository
320[info] loadAccounts
321[info] - loads the example file's accounts
322[info] loadPermissions
323[info] - loads the example file's permissions
324[info] loadAccess
325[info] loads the example file's access definition
326[info] - and extracts the default permissions
327[info] - and extracts the ACL
328[info] - properly extracts a standard inline-policy permission
329[info] - properly extracts a permission with managed ARNs
330[info] - properly extracts a permission with an inline policy document and managed policy ARNs
331[info] loadAdmin
332[info] - loads the example file's admin definition
333[info] loadSupport
334[info] loads the example file's support definition
335[info] - extracts the support permissions
336[info] - extracts the rota
337[info] parseAclEntries
338[info] - returns empty list for empty ACL
339[info] parses a single user with a single permission
340[info] - returns a single entry
341[info] - returns correct permissions
342[info] - returns no roles
343[info] parses a single user with multiple permissions
344[info] - returns single entry
345[info] - returns correct permissions
346[info] parses multiple users
347[info] - returns two entries
348[info] - returns correct user names
349[info] - returns correct permissions
350[info] parses a single role-based ACL entry
351[info] - returns single entry
352[info] - returns no permissions
353[info] - returns correct role
354[info] parses a multiple-role-based ACL entry
355[info] - returns single entry
356[info] - returns no permissions
357[info] - returns correct roles
358[info] parses mixed permission and role entries for same user
359[info] - returns single entry
360[info] - returns correct permissions
361[info] - returns correct roles
362[info] fails when permission doesn't exist
363[info] - returns failure value
364[info] - failure value is correct
365[info] fails when account doesn't exist
366[info] - returns failure value
367[info] - failure value is correct
368
369************************
370Build summary:
371[{
372 "module": "janus-config-tools",
373 "compile": {"status": "ok", "tookMs": 17403, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
374 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
375 "test-compile": {"status": "ok", "tookMs": 7992, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
376 "test": {"status": "ok", "tookMs": 1399, "passed": 109, "failed": 0, "ignored": 1, "skipped": 0, "total": 110, "byFramework": [{"framework": "unknown", "stats": {"passed": 109, "failed": 0, "ignored": 1, "skipped": 0, "total": 110}}]},
377 "publish": {"status": "skipped", "tookMs": 0},
378 "metadata": {
379 "crossScalaVersions": ["2.12.20"]
380}
381}]
382************************
383[success] Total time: 46 s, completed Dec 22, 2025, 6:03:31 PM
384[0JChecking patch project/plugins.sbt...
385Checking patch build.sbt...
386Applied patch project/plugins.sbt cleanly.
387Applied patch build.sbt cleanly.