Build Logs
sbt/io • 3.8.0-RC5:2025-12-31
Errors
11
Warnings
66
Total Lines
667
1##################################
2Clonning https://github.com/sbt/io.git into /build/repo using revision v1.10.5
3##################################
4Note: switching to '170490bd030b16f754d7b3a90086da3dd40fa82d'.
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.5
22----
23Preparing build for 3.8.0-RC5
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: project/Dependencies.scala
34Pattern: val scala3 = "3.3.5"
35Replacement: val scala3 = "3.8.0-RC5"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val scala3 = "3.3.5"' in project/Dependencies.scala
40----
41Starting build for 3.8.0-RC5
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 sbt/io
47##################################
48Scala version: 3.8.0-RC5
49Targets: org.scala-sbt%io
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","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 = '17'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
57# Executing command line:
58java
59-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.8.0-RC5
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_17_0_8
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.8.0-RC5"
70"++3.8.0-RC5 -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-RC5 """{"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.scala-sbt%io"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
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 4 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 9.287s.
85[info] done compiling
86[info] loading settings for project ioRoot from build.sbt...
87[info] _
88[info] (_)___
89[info] / / __ \
90[info] / / /_/ /
91[info] /_/\____/
92[info] Welcome to the build for sbt/io.
93[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
94[info] Java versions is 17. We recommend 1.8.
95[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
96Execute setCrossScalaVersions: 3.8.0-RC5
97OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in ioRoot/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in io/crossScalaVersions
99[info] _
100[info] (_)___
101[info] / / __ \
102[info] / / /_/ /
103[info] /_/\____/
104[info] Welcome to the build for sbt/io.
105[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
106[info] Java versions is 17. We recommend 1.8.
107[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
108[info] Setting Scala version to 3.8.0-RC5 on 2 projects.
109[info] Switching Scala version on:
110[info] * ioRoot (2.12.20, 2.13.16, 3.8.0-RC5)
111[info] io (2.12.20, 2.13.16, 3.8.0-RC5)
112[info] Excluding projects:
113[info] Reapplying settings...
114[info] _
115[info] (_)___
116[info] / / __ \
117[info] / / /_/ /
118[info] /_/\____/
119[info] Welcome to the build for sbt/io.
120[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
121[info] Java versions is 17. We recommend 1.8.
122[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
123Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
124[info] Reapplying settings...
125[info] _
126[info] (_)___
127[info] / / __ \
128[info] / / /_/ /
129[info] /_/\____/
130[info] Welcome to the build for sbt/io.
131[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
132[info] Java versions is 17. We recommend 1.8.
133[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
134[info] Defining Global / credentials, credentials, io / credentials
135[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 15 others.
136[info] Run `last` for details.
137[info] Reapplying settings...
138[info] _
139[info] (_)___
140[info] / / __ \
141[info] / / /_/ /
142[info] /_/\____/
143[info] Welcome to the build for sbt/io.
144[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
145[info] Java versions is 17. We recommend 1.8.
146[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
147Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
148[info] Reapplying settings...
149OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
150
151 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
152 Did you mean io / allExcludeDependencies ?
153 , retry without global scopes
154[info] Reapplying settings...
155[info] _
156[info] (_)___
157[info] / / __ \
158[info] / / /_/ /
159[info] /_/\____/
160[info] Welcome to the build for sbt/io.
161[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
162[info] Java versions is 17. We recommend 1.8.
163[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
164Execute removeScalacOptionsStartingWith: -P:wartremover
165[info] Reapplying settings...
166[info] _
167[info] (_)___
168[info] / / __ \
169[info] / / /_/ /
170[info] /_/\____/
171[info] Welcome to the build for sbt/io.
172[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
173[info] Java versions is 17. We recommend 1.8.
174[info] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
175[success] Total time: 0 s, completed Dec 31, 2025, 9:41:28 PM
176Build config: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
177Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
178Starting build...
179Projects: Set(io)
180Starting build for ProjectRef(file:/build/repo/,io) (io)... [0/1]
181OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
182OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
183OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
184Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -language:implicitConversions, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
185[info] scalafmt: Formatting 38 Scala sources (/build/repo/io)...
186[info] scalafmt: Formatting 36 Scala sources (/build/repo/io)...
187[info] compiling 37 Scala sources to /build/repo/io/target/scala-3.8.0-RC5/classes ...
188[warn] -- [E147] Syntax Warning: /build/repo/io/src/main/scala/sbt/nio/file/Glob.scala:283:16
189[warn] 283 | private[file] final case object Empty extends RelativeGlob {
190[warn] | ^^^^^
191[warn] | Modifier final is redundant for this definition
192[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/io/src/main/scala/sbt/internal/nio/FileEventMonitor.scala:266:8
193[warn] 266 | case event @ FileEvent(path, attributes) =>
194[warn] | ^
195[warn] |match may not be exhaustive.
196[warn] |
197[warn] |It would fail on pattern case: sbt.internal.nio.FileEvent.Creation(_, _), sbt.internal.nio.FileEvent.Update(_, _, _), sbt.internal.nio.FileEvent.Deletion(_, _)
198[warn] |
199[warn] | longer explanation available when compiling with `-explain`
200[warn] -- [E030] Match case Unreachable Warning: /build/repo/io/src/main/scala/sbt/internal/nio/Globs.scala:70:11
201[warn] 70 | case AllPassFilter => Some(AnyPath)
202[warn] | ^^^^^^^^^^^^^
203[warn] | Unreachable case
204[warn] -- [E030] Match case Unreachable Warning: /build/repo/io/src/main/scala/sbt/internal/nio/Globs.scala:71:11
205[warn] 71 | case NothingFilter => Some(NoPath)
206[warn] | ^^^^^^^^^^^^^
207[warn] | Unreachable case
208[warn] there were 60 deprecation warnings; re-run with -deprecation for details
209[warn] 5 warnings found
210[info] done compiling
211[info] compiling 39 Scala sources to /build/repo/io/target/scala-3.8.0-RC5/test-classes ...
212[warn] An existential type that came from a Scala-2 classfile for trait Transforms
213[warn] cannot be mapped accurately to a Scala-3 equivalent.
214[warn] original type : stabilizer$1.type#global.Type forSome stabilizer$1.type <:
215[warn] (AnyRef & scala.reflect.internal.transform.PostErasure){
216[warn] val global:
217[warn] (Transforms.this : scala.reflect.internal.SymbolTable &
218[warn] scala.reflect.internal.transform.Transforms)
219[warn] }
220[warn] & Singleton
221[warn] reduces to : stabilizer$1.type#global.Type
222[warn] type used instead: (
223[warn] (AnyRef & scala.reflect.internal.transform.PostErasure){
224[warn] val global:
225[warn] (Transforms.this : scala.reflect.internal.SymbolTable &
226[warn] scala.reflect.internal.transform.Transforms)
227[warn] }
228[warn] & Singleton)#global.Type
229[warn] This choice can cause follow-on type errors or hide type errors.
230[warn] Proceed at own risk.
231[warn] |
232[warn] | longer explanation available when compiling with `-explain`
233[warn] An existential type that came from a Scala-2 classfile for trait Transforms
234[warn] cannot be mapped accurately to a Scala-3 equivalent.
235[warn] original type : _1.type#global.Type forSome _1.type <:
236[warn] (AnyRef & scala.reflect.internal.transform.PostErasure){
237[warn] val global:
238[warn] (Transforms.this : scala.reflect.internal.SymbolTable &
239[warn] scala.reflect.internal.transform.Transforms)
240[warn] }
241[warn] & Singleton
242[warn] reduces to : _1.type#global.Type
243[warn] type used instead: (
244[warn] (AnyRef & scala.reflect.internal.transform.PostErasure){
245[warn] val global:
246[warn] (Transforms.this : scala.reflect.internal.SymbolTable &
247[warn] scala.reflect.internal.transform.Transforms)
248[warn] }
249[warn] & Singleton)#global.Type
250[warn] This choice can cause follow-on type errors or hide type errors.
251[warn] Proceed at own risk.
252[warn] |
253[warn] | longer explanation available when compiling with `-explain`
254[warn] there were 20 deprecation warnings; re-run with -deprecation for details
255[warn] three warnings found
256[info] done compiling
257[info] GlobOrderingSpec:
258[info] Globs
259[info] - should be ordered
260[info] - should fall back on depth
261[info] - should not stack overflow
262[info] - should not violate sorting contract
263[info] FileTreeViewSpec:
264[info] list
265[info] - should return the source root with depth == -1
266[info] - should not return the source root with depth >= 0
267[info] - should get recursive files
268[info] - should handle multiple globs
269[info] - should list directories only once
270[info] - should apply filters
271[info] - should handle exact file glob
272[info] - should handle many exact file globs
273[info] - should handle overlapping globs with exact file
274[info] - should throw NoSuchFileException for non-existent directories
275[info] - should throw NotDirectoryException for regular files
276[info] iterator
277[info] - should be lazy
278[info] sbt.internal.io.RetrySpec
279[info] - retry should throw first exception after number of failures
280[info] - Retry.io should throw first exception after number of failures
281[info] - retry should throw recover
282[info] - retry should recover from non-IO exceptions
283[info] - Retry.io should throw non-IOException
284[info] MacOSXWatchServiceSpec:
285[info] MacOSXWatchService
286[info] - should handle overlapping directories
287[info] IOSyntaxSpec:
288[info] file(...)
289[info] - should create File
290[info] file(...) / "a"
291[info] - should create File
292[info] file(...) glob "*.properties"
293[info] - should create PathFinder
294[info] get
295[info] - should work with PathLister and PathFinder
296[info] CombinedFilterSpec:
297[info] FileFilter
298[info] - should combine filters with &&
299[info] - should combine filters with &
300[info] - should combine filters with ||
301[info] - should combine filters with |
302[info] - should combine filters with --
303[info] - should combine filters with -
304[info] - should negate filters
305[info] GlobsSpec:
306[info] FullFileGlob
307[info] - should apply exact name filters
308[info] - should apply extension filters
309[info] - should apply prefix filters
310[info] - should apply suffix filters
311[info] - should apply pattern filters
312[info] - should apply simple filters
313[info] - should apply not filters
314[info] - should apply and filters
315[info] - should apply or filters
316[info] - should apply arbitrary filters
317[info] - should apply anonymous filters
318[info] - should apply and filter with not hidden file filter
319[info] - should apply and filter with not filter
320[info] - should apply or with name filters
321[info] hidden files
322[info] - should be included by default
323[info] - should be excluded by filter
324[info] LastModifiedSpec:
325[info] IO.getModifiedTimeOrZero
326[info] - should work with long path names
327[info] - should handle empty paths
328[info] - should handle relative paths
329[info] StashSpec:
330[info] stash
331[info] - should handle empty files
332[info] - should move files during execution
333[info] - should restore files on exceptions but not errors
334[info] NativePathFinderSpec:
335[info] PathFinder
336[info] - should find the files in a directory
337[info] - should find children of subdirectories
338[info] - should apply filter
339[info] - should apply exclude filter
340[info] - should apply nothing filter
341[info] - should work for complex extension filters
342[info] - should follow links
343[info] - should include the base directory
344[info] - should preserve ordering
345[info] GlobFilterSpec:
346[info] GlobAsFilter
347[info] - should work with simple files
348[info] - should work with globs
349[info] - should work with recursive globs
350[info] - should work with depth
351[info] FileTreeRepositorySpec:
352[info] register
353[info] - should see existing files
354[info] - should detect new files
355[info] - should detect new subdirectories
356[info] - should detect move events
357[info] - should in children of subdirectories when recursive flag is false
358[info] - should add recursive flag when previously set to false
359[info] - should not remove recursive flag when already set
360[info] - should work with directory file name overlap
361[info] - should detect many creations and deletions
362[info] IOSpec:
363[info] - IO should relativize
364[info] - it should relativize . dirs
365[info] - it should relativize relative paths
366[info] - it should copy directories
367[info] - toURI should make URI
368[info] - it should make u0 URI from a relative path
369[info] - it should make u0 URI from a relative path on Windows
370[info] - it should make URI that roundtrips
371[info] - it should make u0 URI that roundtrips
372[info] - it should make u3 URI for an absolute path on Windows that roundtrips
373[info] - it should make u2 URI for a UNC path on Windows that roundtrips
374[info] - getModifiedTimeOrZero should return 0L if the file doesn't exists
375[info] - classLocation[Integer] should return a URL pointing to the rt.jar or java.base
376[info] - classLocation[AbstractMap.SimpleEntry] should return a URL pointing to the rt.jar or java.base
377[info] - classLocation[this.type] should return a URL pointing to a directory or a JAR
378[info] - classLocationPath[Integer] should return NIO path pointing to the rt.jar or java.base
379[info] - classLocationPath[AbstractMap.SimpleEntry] should return NIO path pointing to the rt.jar or java.base
380[info] - classLocationPath[this.type] should return NIO path pointing to a directory or a JAR
381[info] - classLocationFileOption[Integer] should return File pointing to the rt.jar or None
382[info] - classLocationFileOption[AbstractMap.SimpleEntry] should return File pointing to the rt.jar or None
383[info] - classLocationFileOption[this.type] should return File pointing to a directory or a JAR
384[info] - classfileLocation[Integer] should return a URL pointing to *.class
385[info] - classfileLocation[AbstractMap.SimpleEntry] should return a URL pointing to *.class
386[info] - classfileLocation[this.type] should return a URL pointing to *.class
387[info] - delete should handle non-existent files
388[info] - move should overwrite
389[info] - it should create valid jar files
390[info] TraversableGlobSpec:
391[info] Traversable globs
392[info] - should collect multiple directories
393[info] - should handle redundant globs
394[info] - should handle semi-overlapping globs
395[info] GlobParserSpec:
396[info] - should parse pure paths
397[info] - should parse paths with range
398[info] - should parse paths with filters
399[info] DefaultWatchServiceSpec:
400[info] - should detect modified files
401[info] - should watch a directory for file creation
402[info] - should ignore creation of directories with no tracked globs
403[info] - should ignore creation of files that do not match inclusion filter
404[info] - should ignore creation of files that are explicitly ignored
405[info] - should ignore creation of an empty directory
406[info] - should detect files created in a subdirectory
407[info] - should ignore creation of files not included in inclusion filter in subdirectories
408[info] - should ignore creation of files explicitly ignored in subdirectories
409[info] - should ignore creation of empty directories in a subdirectory
410[info] - should detect deleted files
411[info] - should ignore deletion of files not included in inclusion filter
412[info] - should ignore deletion of files explicitly ignored
413[info] - should ignore deletion of empty directories
414[info] - should detect deleted files in subdirectories
415[info] - should ignore deletion of files not included in inclusion filter in subdirectories
416[info] - should ignore deletion of files explicitly ignored in subdirectories
417[info] - should ignore deletion of empty directories in subdirectories
418[info] - should ignore creation and then deletion of empty directories
419[info] - should detect deletion of a directory containing watched files
420[info] - should not generate multiple events for the same file within anti-entropy period
421[info] - should ignore valid files in non-recursive subdirectories
422[info] - should log triggered files
423[info] - should handle rapid creation of many subdirectories and files
424[info] WatchService.poll
425[info] - should throw a `ClosedWatchServiceException` if used after `close`
426[info] WatchService.register
427[info] - should throw a `ClosedWatchServiceException` if used after `close`
428[info] WatchService.close
429[info] - should not throw if called multiple times
430[info] + Write content.Round trip bytes: OK, passed 100 tests.
431[info] + Write content.Round trip string: OK, passed 100 tests.
432[info] PathMapperSpec:
433[info] rebase | flat
434[info] - should copy resource mappings correctly
435[info] directory
436[info] - should create mappings including the baseDirectory
437[info] - should create one mapping entry for an empty directory
438[info] - should create an empty mappings sequence for a non-existing directory
439[info] - should create one mapping entry if the directory is a file
440[info] contentOf
441[info] - should create mappings excluding the baseDirectory
442[info] - should create an empty mappings sequence for an empty directory
443[info] - should create an empty mappings sequence for a non-existing directory
444[info] - should create an empty mappings sequence if the directory is a file
445[info] - should not include the base directory
446[info] FileTreeRepositoryEventMonitorSpec:
447[info] - should detect modified files
448[info] - should watch a directory for file creation
449[info] - should ignore creation of directories with no tracked globs
450[info] - should ignore creation of files that do not match inclusion filter
451[info] - should ignore creation of files that are explicitly ignored
452[info] - should ignore creation of an empty directory
453[info] - should detect files created in a subdirectory
454[info] - should ignore creation of files not included in inclusion filter in subdirectories
455[info] - should ignore creation of files explicitly ignored in subdirectories
456[info] - should ignore creation of empty directories in a subdirectory
457[info] - should detect deleted files
458[info] - should ignore deletion of files not included in inclusion filter
459[info] - should ignore deletion of files explicitly ignored
460[info] - should ignore deletion of empty directories
461[info] - should detect deleted files in subdirectories
462[info] - should ignore deletion of files not included in inclusion filter in subdirectories
463[info] - should ignore deletion of files explicitly ignored in subdirectories
464[info] - should ignore deletion of empty directories in subdirectories
465[info] - should ignore creation and then deletion of empty directories
466[info] - should detect deletion of a directory containing watched files
467[info] - should not generate multiple events for the same file within anti-entropy period
468[info] - should ignore valid files in non-recursive subdirectories
469[info] - should log triggered files
470[info] - should handle rapid creation of many subdirectories and files
471[info] PathFinderCombinatorSpec:
472[info] PathFinderCombinator
473[info] - should provide extension methods for File
474[info] + Write content.Write string overwrites: OK, passed 100 tests.
475[info] FileSpec:
476[info] files
477[info] - should set/unset permissions
478[info] GlobSyntaxSpec:
479[info] path builders
480[info] - should use `*` and `**` objects
481[info] - should apply question marks
482[info] - should apply ranges
483[info] - should apply extension filters
484[info] - should apply prefix filters
485[info] - should apply suffix filters
486[info] - should apply split filters
487[info] - should convert strings
488[info] - should handle escaped characters
489[info] base
490[info] - should warn on relative paths
491[info] - should work with relative globs with file name prefix
492[info] show
493[info] - should represent globs like the shell
494[info] syntax
495[info] - should work
496[info] file tree view params
497[info] - should work with relative paths
498[info] regex syntax
499[info] - should apply patterns
500[info] dot files
501[info] - should not be excluded by default
502[info] - should be excluded with filter
503[info] - should be excluded with regex filter
504[info] JavaMilliSpec:
505[info] JavaMilli
506[info] - should be exposed to the sbt.io package
507[info] NameFilterSpec:
508[info] NameFilter
509[info] - should have readable toString() method
510[info] - should correctly override equals/hashCode
511[info] - should correctly identify unequal filters
512[info] PathSyntaxSpec:
513[info] toGlob
514[info] - should work with absolute paths
515[info] - should work with relative paths
516[info] - should work with empty paths
517[info] FileEventMonitorSpec:
518[info] anti-entropy
519[info] - should ignore redundant events
520[info] - should not ignore new events
521[info] - should quarantine deletions with finite poll
522[info] - should quarantine deletions with infinite poll
523[info] - should immediately trigger for creations
524[info] - should immediately trigger with zero antientropy
525[info] CopyDirectorySpec:
526[info] - should copy symlinks
527[info] SourceSpec:
528[info] - should accept recursive paths
529[info] - should reject subdirectories without recursive flag
530[info] - should apply include filter
531[info] - should apply exclude filter
532[info] - should override equals/hashcode
533[info] FileAttributeSpec:
534[info] symlinks
535[info] - should be resolved
536[info] broken symlinks
537[info] - should have isSymbolicLink return true
538[info] symlinks
539[info] - should not be resolved with nofollow links
540[info] broken symlinks
541[info] - should have isSymbolicLink true with no follow
542[info] NioPathFinderSpec:
543[info] PathFinder
544[info] - should find the files in a directory
545[info] - should find children of subdirectories
546[info] - should apply filter
547[info] - should apply exclude filter
548[info] - should apply nothing filter
549[info] - should work for complex extension filters
550[info] - should follow links
551[info] - should include the base directory
552[info] - should preserve ordering
553[info] PathFilterSpec:
554[info] PathFilters
555[info] - should accept files
556[info] - should exclude files
557[info] - should combine filters with &&
558[info] - should combine filters with ||
559[info] - should combine glob strings
560[info] - should combine file filters
561[info] - should combine Globs
562[info] - should negate
563[info] GlobFilterSpec:
564[info] GlobFilter
565[info] - should work with *
566[info] - should work with no *
567[info] - should work with simple extensions
568[info] - should combine extensions
569[info] - should work with patterns
570[info] - should work with trailing *
571[info] - should work with leading *
572[info] WatchServiceBackedObservableSpec:
573[info] register
574[info] - should work recursively
575[info] LegacyFileTreeRepositoryEventMonitorSpec:
576[info] - should detect modified files
577[info] - should watch a directory for file creation
578[info] - should ignore creation of directories with no tracked globs
579[info] - should ignore creation of files that do not match inclusion filter
580[info] - should ignore creation of files that are explicitly ignored
581[info] - should ignore creation of an empty directory
582[info] - should detect files created in a subdirectory
583[info] - should ignore creation of files not included in inclusion filter in subdirectories
584[info] - should ignore creation of files explicitly ignored in subdirectories
585[info] - should ignore creation of empty directories in a subdirectory
586[info] - should detect deleted files
587[info] - should ignore deletion of files not included in inclusion filter
588[info] - should ignore deletion of files explicitly ignored
589[info] - should ignore deletion of empty directories
590[info] - should detect deleted files in subdirectories
591[info] - should ignore deletion of files not included in inclusion filter in subdirectories
592[info] - should ignore deletion of files explicitly ignored in subdirectories
593[info] - should ignore deletion of empty directories in subdirectories
594[info] - should ignore creation and then deletion of empty directories
595[info] - should detect deletion of a directory containing watched files
596[info] - should not generate multiple events for the same file within anti-entropy period
597[info] - should ignore valid files in non-recursive subdirectories
598[info] - should log triggered files
599[info] - should handle rapid creation of many subdirectories and files
600[info] + Write content.Unzip errors given parent traversal: OK, proved property.
601[info] + Write content.Append string appends: OK, passed 100 tests.
602[info] + Write content.Write bytes overwrites: OK, passed 100 tests.
603[info] + Write content.Append bytes appends: OK, passed 100 tests.
604[info] + IO.IO.classLocationPath able to determine containing directories: OK, passed 100 tests.
605[info] + NameFilter.All pass accepts everything: OK, passed 100 tests.
606[info] + NameFilter.Glob filter matches valid: OK, passed 100 tests.
607[info] + NameFilter.Glob filter matches valid string if no *s: OK, passed 100 tests.
608[info] + NameFilter.Glob filter matches provided string if no *s: OK, passed 100 tests.
609[info] + NameFilter.Exact filter matches provided string: OK, passed 100 tests.
610[info] + NameFilter.Exact filter matches valid string: OK, passed 100 tests.
611[info] PollingWatchServiceSpec:
612[info] - should detect modified files
613[info] - should watch a directory for file creation
614[info] - should ignore creation of directories with no tracked globs
615[info] - should ignore creation of files that do not match inclusion filter
616[info] - should ignore creation of files that are explicitly ignored
617[info] - should ignore creation of an empty directory
618[info] - should detect files created in a subdirectory
619[info] - should ignore creation of files not included in inclusion filter in subdirectories
620[info] - should ignore creation of files explicitly ignored in subdirectories
621[info] - should ignore creation of empty directories in a subdirectory
622[info] - should detect deleted files
623[info] - should ignore deletion of files not included in inclusion filter
624[info] - should ignore deletion of files explicitly ignored
625[info] - should ignore deletion of empty directories
626[info] - should detect deleted files in subdirectories
627[info] - should ignore deletion of files not included in inclusion filter in subdirectories
628[info] - should ignore deletion of files explicitly ignored in subdirectories
629[info] - should ignore deletion of empty directories in subdirectories
630[info] - should ignore creation and then deletion of empty directories
631[info] - should detect deletion of a directory containing watched files
632[info] - should not generate multiple events for the same file within anti-entropy period
633[info] - should ignore valid files in non-recursive subdirectories
634[info] - should log triggered files
635[info] - should handle rapid creation of many subdirectories and files
636[info] WatchService.poll
637[info] - should throw a `ClosedWatchServiceException` if used after `close`
638[info] WatchService.register
639[info] - should throw a `ClosedWatchServiceException` if used after `close`
640[info] WatchService.close
641[info] - should not throw if called multiple times
642[info] + Write content.Unzip doesn't stack overflow: OK, proved property.
643[info] + Copy.same contents: OK, passed 100 tests.
644
645************************
646Build summary:
647[{
648 "module": "io",
649 "compile": {"status": "ok", "tookMs": 22500, "warnings": 4, "errors": 0, "sourceVersion": "3.8"},
650 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
651 "test-compile": {"status": "ok", "tookMs": 14459, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
652 "test": {"status": "ok", "tookMs": 7685, "passed": 306, "failed": 0, "ignored": 0, "skipped": 0, "total": 306, "byFramework": [{"framework": "unknown", "stats": {"passed": 306, "failed": 0, "ignored": 0, "skipped": 0, "total": 306}}]},
653 "publish": {"status": "skipped", "tookMs": 0},
654 "metadata": {
655 "crossScalaVersions": ["2.12.20", "2.13.16", "3.3.5"]
656}
657}]
658************************
659[success] Total time: 47 s, completed Dec 31, 2025, 9:42:14 PM
660[0JChecking patch project/plugins.sbt...
661Checking patch project/build.properties...
662Checking patch project/Dependencies.scala...
663Checking patch build.sbt...
664Applied patch project/plugins.sbt cleanly.
665Applied patch project/build.properties cleanly.
666Applied patch project/Dependencies.scala cleanly.
667Applied patch build.sbt cleanly.