Build Logs
guardian/janus-app • 3.8.0-RC2:2025-11-28
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-RC2
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-RC2
32Execute tests: true
33sbt project found:
34No prepare script found for project guardian/janus-app
35##################################
36Scala version: 3.8.0-RC2
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-RC2
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-RC2"
58"++3.8.0-RC2 -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-RC2 """{"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.881s.
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-RC2
96OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC2 in configTools/crossScalaVersions
97OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC2 in root/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in root/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-RC2 on 2 projects.
112[info] Switching Scala version on:
113[info] * root (3.8.0-RC2)
114[info] configTools (2.13.16, 3.8.0-RC2)
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 Nov 28, 2025, 2:29:49 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-RC2/classes ...
206[info] done compiling
207[info] compiling 9 Scala sources to /build/repo/configTools/target/scala-3.8.0-RC2/test-classes ...
208[info] done compiling
209[info] StatementsTest:
210[info] policy helper
211[info] - deduplicates statements
212[info] enforceCorrectPath
213[info] - returns true for /
214[info] - returns true for path with leading slash and no trailing slash
215[info] - returns false if no leading slash
216[info] - returns false with trailing and leading slash
217[info] - returns false for edge case of single char
218[info] hierarchyPath
219[info] - builds a '/*' pattern for the path '/'
220[info] - builds a '/my-path/sub-path/*' pattern for the path '/my-path/sub-path'
221[info] ValidationTest:
222[info] policySizeChecks
223[info] - returns nothing if the provided data contains no large policies
224[info] returns a warning if there is a large policy
225[info] in the access ACL
226[info] - for a large inline policy
227[info] - for large managedPolicyArns
228[info] in the admin ACL
229[info] - for a large inline policy
230[info] - for large managedPolicyArns
231[info] in the support ACL
232[info] - for a large inline policy
233[info] - for large managedPolicyArns
234[info] - returns an 'invalid' validation result if a warning is generated
235[info] permissionIdUniqueness
236[info] - returns nothing for valid permissions
237[info] - returns nothing for duplicate permissions in separate accounts
238[info] - returns a validation error for permissions with duplicate IDs (concatenation of account & label)
239[info] - returns a validation error for duplicate permissions across multiple users
240[info] isClean
241[info] - returns true for a result with no warnings or errors
242[info] - returns false for a result with errors but no warnings
243[info] - returns false for a result with warnings but no errors
244[info] - returns false for a result with warnings and errors
245[info] noErrors
246[info] - returns true for a result with no warnings or errors
247[info] - returns true for a result with warnings but no errors
248[info] - returns false for a result with errors but no warnings
249[info] - returns false for a result with warnings and errors
250[info] ConfigIntegrationTests:
251[info] round trips
252[info] - the example janus data can be read, written and re-read
253[info] - the example janus data that omits a permissions repo can be read, written and re-read
254[info] development helpers
255[info] - print the generated config file to the console for manual inspection !!! IGNORED !!!
256[info] IamTest:
257[info] Action
258[info] - should encode action name correctly
259[info] Resource
260[info] - should encode resource id correctly
261[info] Statement
262[info] - should encode basic statement correctly
263[info] - should encode statement with ID correctly
264[info] - should encode statement with single condition correctly
265[info] - should encode statement with single condition with multiple values correctly
266[info] - should encode statement with multiple conditions correctly
267[info] - should encode statement with multiple conditions of same type correctly
268[info] - should encode statement with single principal correctly
269[info] - should encode statement with multiple principals correctly
270[info] Policy
271[info] - should encode basic policy correctly
272[info] - should encode policy with ID correctly
273[info] should encode complex policy correctly
274[info] - with correct version
275[info] - with correct ID
276[info] - with correct effect
277[info] - with explicitly set statement ID
278[info] - with correct condition
279[info] - with correct principal
280[info] - with correct second principal
281[info] - with correct complete json string
282[info] JanusConfigTest:
283[info] - Can load a config file
284[info] - throws a Janus configuration exception if there is an error in the config
285[info] WriterTest:
286[info] allPermissions
287[info] - returns nothing for an empty JanusData
288[info] - includes default access permissions
289[info] - includes access permissions
290[info] - includes access permissions from mulitple users
291[info] - includes admin permissions
292[info] - includes support permissions
293[info] - includes permissions from all sources
294[info] toConfig
295[info] - includes the permissionsRepo
296[info] - excludes permissionsRepo entry if it is empty
297[info] - includes the inline policy for a permission
298[info] - includes the managed policy ARNs for a permission
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": 18154, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
329 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
330 "test-compile": {"status": "ok", "tookMs": 6877, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
331 "test": {"status": "ok", "tookMs": 1274, "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: 41 s, completed Nov 28, 2025, 2:30:31 PM
339[0JChecking patch project/plugins.sbt...
340Checking patch build.sbt...
341Applied patch project/plugins.sbt cleanly.
342Applied patch build.sbt cleanly.