Build Logs
guardian/janus-app • 3.8.0-RC3:2025-12-04
Errors
2
Warnings
7
Total Lines
342
1##################################
2Clonning https://github.com/guardian/janus-app.git into /build/repo using revision v6.0.0
3##################################
4Note: switching to '065602cdf13eeb4fffe7cf6793badde2c5e833d5'.
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-RC3
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-RC3
32Execute tests: true
33sbt project found:
34No prepare script found for project guardian/janus-app
35##################################
36Scala version: 3.8.0-RC3
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-RC3
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-RC3"
58"++3.8.0-RC3 -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-RC3 """{"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.367s.
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:136
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-RC3
96OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC3 in root/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC3) in root/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC3 in configTools/crossScalaVersions
99[info] __ __
100[info] \ \ ____ / /____ _ __ __
101[info] \ \ / __ \ / // __ `// / / /
102[info] / / / /_/ // // /_/ // /_/ /
103[info] /_/ / .___//_/ \__,_/ \__, /
104[info] /_/ /____/
105[info]
106[info] Version 3.0.9 running Java 17.0.8
107[info]
108[info] Play is run entirely by the community. Please consider contributing and/or donating:
109[info] https://www.playframework.com/sponsors
110[info]
111[info] Setting Scala version to 3.8.0-RC3 on 2 projects.
112[info] Switching Scala version on:
113[info] * root (3.8.0-RC3)
114[info] configTools (2.13.16, 3.8.0-RC3)
115[info] Excluding projects:
116[info] Reapplying settings...
117[info] __ __
118[info] \ \ ____ / /____ _ __ __
119[info] \ \ / __ \ / // __ `// / / /
120[info] / / / /_/ // // /_/ // /_/ /
121[info] /_/ / .___//_/ \__,_/ \__, /
122[info] /_/ /____/
123[info]
124[info] Version 3.0.9 running Java 17.0.8
125[info]
126[info] Play is run entirely by the community. Please consider contributing and/or donating:
127[info] https://www.playframework.com/sponsors
128[info]
129Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
130[info] Reapplying settings...
131[info] __ __
132[info] \ \ ____ / /____ _ __ __
133[info] \ \ / __ \ / // __ `// / / /
134[info] / / / /_/ // // /_/ // /_/ /
135[info] /_/ / .___//_/ \__,_/ \__, /
136[info] /_/ /____/
137[info]
138[info] Version 3.0.9 running Java 17.0.8
139[info]
140[info] Play is run entirely by the community. Please consider contributing and/or donating:
141[info] https://www.playframework.com/sponsors
142[info]
143[info] Defining Global / credentials, configTools / credentials, credentials
144[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 13 others.
145[info] Run `last` for details.
146[info] Reapplying settings...
147[info] __ __
148[info] \ \ ____ / /____ _ __ __
149[info] \ \ / __ \ / // __ `// / / /
150[info] / / / /_/ // // /_/ // /_/ /
151[info] /_/ / .___//_/ \__,_/ \__, /
152[info] /_/ /____/
153[info]
154[info] Version 3.0.9 running Java 17.0.8
155[info]
156[info] Play is run entirely by the community. Please consider contributing and/or donating:
157[info] https://www.playframework.com/sponsors
158[info]
159Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
160[info] Reapplying settings...
161OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
162
163 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
164 Did you mean allExcludeDependencies ?
165 , retry without global scopes
166[info] Reapplying settings...
167[info] __ __
168[info] \ \ ____ / /____ _ __ __
169[info] \ \ / __ \ / // __ `// / / /
170[info] / / / /_/ // // /_/ // /_/ /
171[info] /_/ / .___//_/ \__,_/ \__, /
172[info] /_/ /____/
173[info]
174[info] Version 3.0.9 running Java 17.0.8
175[info]
176[info] Play is run entirely by the community. Please consider contributing and/or donating:
177[info] https://www.playframework.com/sponsors
178[info]
179Execute removeScalacOptionsStartingWith: -P:wartremover
180[info] Reapplying settings...
181[info] __ __
182[info] \ \ ____ / /____ _ __ __
183[info] \ \ / __ \ / // __ `// / / /
184[info] / / / /_/ // // /_/ // /_/ /
185[info] /_/ / .___//_/ \__,_/ \__, /
186[info] /_/ /____/
187[info]
188[info] Version 3.0.9 running Java 17.0.8
189[info]
190[info] Play is run entirely by the community. Please consider contributing and/or donating:
191[info] https://www.playframework.com/sponsors
192[info]
193[success] Total time: 0 s, completed Dec 4, 2025, 3:17:50 PM
194Build config: {"tests":null}
195Parsed config: Failure(sjsonnew.DeserializationException: Expected String as JString, but got JNull)
196Starting build...
197Projects: Set(configTools)
198Starting build for ProjectRef(file:/build/repo/,configTools) (janus-config-tools)... [0/1]
199OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
200OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
201OpenCB::Filter out '-Werror', matches setting pattern '^-?-Werror'
202Compile scalacOptions: --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
203[info] scalafmt: Formatting 9 Scala sources (/build/repo/configTools)...
204[info] scalafmt: Formatting 10 Scala sources (/build/repo/configTools)...
205[info] compiling 12 Scala sources to /build/repo/configTools/target/scala-3.8.0-RC3/classes ...
206[info] done compiling
207[info] compiling 9 Scala sources to /build/repo/configTools/target/scala-3.8.0-RC3/test-classes ...
208[info] done compiling
209[info] JanusConfigTest:
210[info] - Can load a config file
211[info] - throws a Janus configuration exception if there is an error in the config
212[info] ConfigIntegrationTests:
213[info] round trips
214[info] - the example janus data can be read, written and re-read
215[info] - the example janus data that omits a permissions repo can be read, written and re-read
216[info] development helpers
217[info] - print the generated config file to the console for manual inspection !!! IGNORED !!!
218[info] IamTest:
219[info] Action
220[info] - should encode action name correctly
221[info] Resource
222[info] - should encode resource id correctly
223[info] Statement
224[info] - should encode basic statement correctly
225[info] - should encode statement with ID correctly
226[info] - should encode statement with single condition correctly
227[info] - should encode statement with single condition with multiple values correctly
228[info] - should encode statement with multiple conditions correctly
229[info] - should encode statement with multiple conditions of same type correctly
230[info] - should encode statement with single principal correctly
231[info] - should encode statement with multiple principals correctly
232[info] Policy
233[info] - should encode basic policy correctly
234[info] - should encode policy with ID correctly
235[info] should encode complex policy correctly
236[info] - with correct version
237[info] - with correct ID
238[info] - with correct effect
239[info] - with explicitly set statement ID
240[info] - with correct condition
241[info] - with correct principal
242[info] - with correct second principal
243[info] - with correct complete json string
244[info] WriterTest:
245[info] allPermissions
246[info] - returns nothing for an empty JanusData
247[info] - includes default access permissions
248[info] - includes access permissions
249[info] - includes access permissions from mulitple users
250[info] - includes admin permissions
251[info] - includes support permissions
252[info] - includes permissions from all sources
253[info] toConfig
254[info] - includes the permissionsRepo
255[info] - excludes permissionsRepo entry if it is empty
256[info] - includes the inline policy for a permission
257[info] - includes the managed policy ARNs for a permission
258[info] StatementsTest:
259[info] policy helper
260[info] - deduplicates statements
261[info] enforceCorrectPath
262[info] - returns true for /
263[info] - returns true for path with leading slash and no trailing slash
264[info] - returns false if no leading slash
265[info] - returns false with trailing and leading slash
266[info] - returns false for edge case of single char
267[info] hierarchyPath
268[info] - builds a '/*' pattern for the path '/'
269[info] - builds a '/my-path/sub-path/*' pattern for the path '/my-path/sub-path'
270[info] ValidationTest:
271[info] policySizeChecks
272[info] - returns nothing if the provided data contains no large policies
273[info] returns a warning if there is a large policy
274[info] in the access ACL
275[info] - for a large inline policy
276[info] - for large managedPolicyArns
277[info] in the admin ACL
278[info] - for a large inline policy
279[info] - for large managedPolicyArns
280[info] in the support ACL
281[info] - for a large inline policy
282[info] - for large managedPolicyArns
283[info] - returns an 'invalid' validation result if a warning is generated
284[info] permissionIdUniqueness
285[info] - returns nothing for valid permissions
286[info] - returns nothing for duplicate permissions in separate accounts
287[info] - returns a validation error for permissions with duplicate IDs (concatenation of account & label)
288[info] - returns a validation error for duplicate permissions across multiple users
289[info] isClean
290[info] - returns true for a result with no warnings or errors
291[info] - returns false for a result with errors but no warnings
292[info] - returns false for a result with warnings but no errors
293[info] - returns false for a result with warnings and errors
294[info] noErrors
295[info] - returns true for a result with no warnings or errors
296[info] - returns true for a result with warnings but no errors
297[info] - returns false for a result with errors but no warnings
298[info] - returns false for a result with warnings and errors
299[info] LoaderTest:
300[info] fromConfig
301[info] - parses the full example
302[info] - parses an example without a permissions repo
303[info] loadPermissionsRepo
304[info] - loads the example file's repo
305[info] - loads example with no permissions repository
306[info] loadAccounts
307[info] - loads the example file's accounts
308[info] loadPermissions
309[info] - loads the example file's permissions
310[info] loadAccess
311[info] loads the example file's access definition
312[info] - and extracts the default permissions
313[info] - and extracts the ACL
314[info] - properly extracts a standard inline-policy permission
315[info] - properly extracts a permission with managed ARNs
316[info] - properly extracts a permission with an inline policy document and managed policy ARNs
317[info] loadAdmin
318[info] - loads the example file's admin definition
319[info] loadSupport
320[info] loads the example file's support definition
321[info] - extracts the support permissions
322[info] - extracts the rota
323
324************************
325Build summary:
326[{
327 "module": "janus-config-tools",
328 "compile": {"status": "ok", "tookMs": 16105, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
329 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
330 "test-compile": {"status": "ok", "tookMs": 6450, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
331 "test": {"status": "ok", "tookMs": 1136, "passed": 77, "failed": 0, "ignored": 1, "skipped": 0, "total": 78, "byFramework": [{"framework": "unknown", "stats": {"passed": 77, "failed": 0, "ignored": 1, "skipped": 0, "total": 78}}]},
332 "publish": {"status": "skipped", "tookMs": 0},
333 "metadata": {
334 "crossScalaVersions": ["2.13.16", "3.3.7"]
335}
336}]
337************************
338[success] Total time: 43 s, completed Dec 4, 2025, 3:18:33 PM
339[0JChecking patch project/plugins.sbt...
340Checking patch build.sbt...
341Applied patch project/plugins.sbt cleanly.
342Applied patch build.sbt cleanly.