Build Logs
sbt/io • 3.8.0-RC4:2025-12-22
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-RC4
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-RC4"
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-RC4
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-RC4
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-RC4
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-RC4"
70"++3.8.0-RC4 -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-RC4 """{"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.031s.
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-RC4
97OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in ioRoot/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 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-RC4 on 2 projects.
109[info] Switching Scala version on:
110[info] * ioRoot (2.12.20, 2.13.16, 3.8.0-RC4)
111[info] io (2.12.20, 2.13.16, 3.8.0-RC4)
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 22, 2025, 6:42:12 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-RC4/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-RC4/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] MacOSXWatchServiceSpec:
258[info] MacOSXWatchService
259[info] - should handle overlapping directories
260[info] GlobsSpec:
261[info] FullFileGlob
262[info] - should apply exact name filters
263[info] - should apply extension filters
264[info] - should apply prefix filters
265[info] - should apply suffix filters
266[info] - should apply pattern filters
267[info] - should apply simple filters
268[info] - should apply not filters
269[info] - should apply and filters
270[info] - should apply or filters
271[info] - should apply arbitrary filters
272[info] - should apply anonymous filters
273[info] - should apply and filter with not hidden file filter
274[info] - should apply and filter with not filter
275[info] - should apply or with name filters
276[info] hidden files
277[info] - should be included by default
278[info] - should be excluded by filter
279[info] FileSpec:
280[info] files
281[info] - should set/unset permissions
282[info] GlobOrderingSpec:
283[info] Globs
284[info] - should be ordered
285[info] - should fall back on depth
286[info] - should not stack overflow
287[info] - should not violate sorting contract
288[info] NioPathFinderSpec:
289[info] PathFinder
290[info] - should find the files in a directory
291[info] - should find children of subdirectories
292[info] - should apply filter
293[info] - should apply exclude filter
294[info] - should apply nothing filter
295[info] - should work for complex extension filters
296[info] - should follow links
297[info] - should include the base directory
298[info] - should preserve ordering
299[info] GlobSyntaxSpec:
300[info] path builders
301[info] - should use `*` and `**` objects
302[info] - should apply question marks
303[info] - should apply ranges
304[info] - should apply extension filters
305[info] - should apply prefix filters
306[info] - should apply suffix filters
307[info] - should apply split filters
308[info] - should convert strings
309[info] - should handle escaped characters
310[info] base
311[info] - should warn on relative paths
312[info] - should work with relative globs with file name prefix
313[info] show
314[info] - should represent globs like the shell
315[info] syntax
316[info] - should work
317[info] file tree view params
318[info] - should work with relative paths
319[info] regex syntax
320[info] - should apply patterns
321[info] dot files
322[info] - should not be excluded by default
323[info] - should be excluded with filter
324[info] - should be excluded with regex filter
325[info] FileAttributeSpec:
326[info] symlinks
327[info] - should be resolved
328[info] broken symlinks
329[info] - should have isSymbolicLink return true
330[info] symlinks
331[info] - should not be resolved with nofollow links
332[info] broken symlinks
333[info] - should have isSymbolicLink true with no follow
334[info] GlobFilterSpec:
335[info] GlobAsFilter
336[info] - should work with simple files
337[info] - should work with globs
338[info] - should work with recursive globs
339[info] - should work with depth
340[info] NameFilterSpec:
341[info] NameFilter
342[info] - should have readable toString() method
343[info] - should correctly override equals/hashCode
344[info] - should correctly identify unequal filters
345[info] FileTreeViewSpec:
346[info] list
347[info] - should return the source root with depth == -1
348[info] - should not return the source root with depth >= 0
349[info] - should get recursive files
350[info] - should handle multiple globs
351[info] - should list directories only once
352[info] - should apply filters
353[info] - should handle exact file glob
354[info] - should handle many exact file globs
355[info] - should handle overlapping globs with exact file
356[info] - should throw NoSuchFileException for non-existent directories
357[info] - should throw NotDirectoryException for regular files
358[info] iterator
359[info] - should be lazy
360[info] sbt.internal.io.RetrySpec
361[info] - retry should throw first exception after number of failures
362[info] - Retry.io should throw first exception after number of failures
363[info] - retry should throw recover
364[info] - retry should recover from non-IO exceptions
365[info] - Retry.io should throw non-IOException
366[info] GlobParserSpec:
367[info] - should parse pure paths
368[info] - should parse paths with range
369[info] - should parse paths with filters
370[info] PathSyntaxSpec:
371[info] toGlob
372[info] - should work with absolute paths
373[info] - should work with relative paths
374[info] - should work with empty paths
375[info] JavaMilliSpec:
376[info] JavaMilli
377[info] - should be exposed to the sbt.io package
378[info] TraversableGlobSpec:
379[info] Traversable globs
380[info] - should collect multiple directories
381[info] - should handle redundant globs
382[info] - should handle semi-overlapping globs
383[info] PathFilterSpec:
384[info] PathFilters
385[info] - should accept files
386[info] - should exclude files
387[info] - should combine filters with &&
388[info] - should combine filters with ||
389[info] - should combine glob strings
390[info] - should combine file filters
391[info] - should combine Globs
392[info] - should negate
393[info] GlobFilterSpec:
394[info] GlobFilter
395[info] - should work with *
396[info] - should work with no *
397[info] - should work with simple extensions
398[info] - should combine extensions
399[info] - should work with patterns
400[info] - should work with trailing *
401[info] - should work with leading *
402[info] PathFinderCombinatorSpec:
403[info] PathFinderCombinator
404[info] - should provide extension methods for File
405[info] CombinedFilterSpec:
406[info] FileFilter
407[info] - should combine filters with &&
408[info] - should combine filters with &
409[info] - should combine filters with ||
410[info] - should combine filters with |
411[info] - should combine filters with --
412[info] - should combine filters with -
413[info] - should negate filters
414[info] PathMapperSpec:
415[info] rebase | flat
416[info] - should copy resource mappings correctly
417[info] directory
418[info] - should create mappings including the baseDirectory
419[info] - should create one mapping entry for an empty directory
420[info] - should create an empty mappings sequence for a non-existing directory
421[info] - should create one mapping entry if the directory is a file
422[info] contentOf
423[info] - should create mappings excluding the baseDirectory
424[info] - should create an empty mappings sequence for an empty directory
425[info] - should create an empty mappings sequence for a non-existing directory
426[info] - should create an empty mappings sequence if the directory is a file
427[info] - should not include the base directory
428[info] FileTreeRepositoryEventMonitorSpec:
429[info] - should detect modified files
430[info] - should watch a directory for file creation
431[info] - should ignore creation of directories with no tracked globs
432[info] - should ignore creation of files that do not match inclusion filter
433[info] - should ignore creation of files that are explicitly ignored
434[info] - should ignore creation of an empty directory
435[info] - should detect files created in a subdirectory
436[info] - should ignore creation of files not included in inclusion filter in subdirectories
437[info] - should ignore creation of files explicitly ignored in subdirectories
438[info] - should ignore creation of empty directories in a subdirectory
439[info] - should detect deleted files
440[info] - should ignore deletion of files not included in inclusion filter
441[info] - should ignore deletion of files explicitly ignored
442[info] - should ignore deletion of empty directories
443[info] - should detect deleted files in subdirectories
444[info] - should ignore deletion of files not included in inclusion filter in subdirectories
445[info] - should ignore deletion of files explicitly ignored in subdirectories
446[info] - should ignore deletion of empty directories in subdirectories
447[info] - should ignore creation and then deletion of empty directories
448[info] - should detect deletion of a directory containing watched files
449[info] - should not generate multiple events for the same file within anti-entropy period
450[info] - should ignore valid files in non-recursive subdirectories
451[info] - should log triggered files
452[info] - should handle rapid creation of many subdirectories and files
453[info] + Write content.Round trip bytes: OK, passed 100 tests.
454[info] + Write content.Append bytes appends: OK, passed 100 tests.
455[info] + Write content.Append string appends: OK, passed 100 tests.
456[info] + Write content.Write bytes overwrites: OK, passed 100 tests.
457[info] + Write content.Round trip string: OK, passed 100 tests.
458[info] + Write content.Write string overwrites: OK, passed 100 tests.
459[info] IOSpec:
460[info] - IO should relativize
461[info] - it should relativize . dirs
462[info] - it should relativize relative paths
463[info] - it should copy directories
464[info] - toURI should make URI
465[info] - it should make u0 URI from a relative path
466[info] - it should make u0 URI from a relative path on Windows
467[info] - it should make URI that roundtrips
468[info] - it should make u0 URI that roundtrips
469[info] - it should make u3 URI for an absolute path on Windows that roundtrips
470[info] - it should make u2 URI for a UNC path on Windows that roundtrips
471[info] - getModifiedTimeOrZero should return 0L if the file doesn't exists
472[info] - classLocation[Integer] should return a URL pointing to the rt.jar or java.base
473[info] - classLocation[AbstractMap.SimpleEntry] should return a URL pointing to the rt.jar or java.base
474[info] - classLocation[this.type] should return a URL pointing to a directory or a JAR
475[info] - classLocationPath[Integer] should return NIO path pointing to the rt.jar or java.base
476[info] - classLocationPath[AbstractMap.SimpleEntry] should return NIO path pointing to the rt.jar or java.base
477[info] - classLocationPath[this.type] should return NIO path pointing to a directory or a JAR
478[info] - classLocationFileOption[Integer] should return File pointing to the rt.jar or None
479[info] - classLocationFileOption[AbstractMap.SimpleEntry] should return File pointing to the rt.jar or None
480[info] - classLocationFileOption[this.type] should return File pointing to a directory or a JAR
481[info] - classfileLocation[Integer] should return a URL pointing to *.class
482[info] - classfileLocation[AbstractMap.SimpleEntry] should return a URL pointing to *.class
483[info] - classfileLocation[this.type] should return a URL pointing to *.class
484[info] - delete should handle non-existent files
485[info] - move should overwrite
486[info] - it should create valid jar files
487[info] SourceSpec:
488[info] - should accept recursive paths
489[info] - should reject subdirectories without recursive flag
490[info] - should apply include filter
491[info] - should apply exclude filter
492[info] - should override equals/hashcode
493[info] IOSyntaxSpec:
494[info] file(...)
495[info] - should create File
496[info] file(...) / "a"
497[info] - should create File
498[info] file(...) glob "*.properties"
499[info] - should create PathFinder
500[info] get
501[info] - should work with PathLister and PathFinder
502[info] NativePathFinderSpec:
503[info] PathFinder
504[info] - should find the files in a directory
505[info] - should find children of subdirectories
506[info] - should apply filter
507[info] - should apply exclude filter
508[info] - should apply nothing filter
509[info] - should work for complex extension filters
510[info] - should follow links
511[info] - should include the base directory
512[info] - should preserve ordering
513[info] StashSpec:
514[info] stash
515[info] - should handle empty files
516[info] - should move files during execution
517[info] - should restore files on exceptions but not errors
518[info] WatchServiceBackedObservableSpec:
519[info] register
520[info] - should work recursively
521[info] FileTreeRepositorySpec:
522[info] register
523[info] - should see existing files
524[info] - should detect new files
525[info] - should detect new subdirectories
526[info] - should detect move events
527[info] - should in children of subdirectories when recursive flag is false
528[info] - should add recursive flag when previously set to false
529[info] - should not remove recursive flag when already set
530[info] - should work with directory file name overlap
531[info] - should detect many creations and deletions
532[info] LastModifiedSpec:
533[info] IO.getModifiedTimeOrZero
534[info] - should work with long path names
535[info] - should handle empty paths
536[info] - should handle relative paths
537[info] LegacyFileTreeRepositoryEventMonitorSpec:
538[info] - should detect modified files
539[info] - should watch a directory for file creation
540[info] - should ignore creation of directories with no tracked globs
541[info] - should ignore creation of files that do not match inclusion filter
542[info] - should ignore creation of files that are explicitly ignored
543[info] - should ignore creation of an empty directory
544[info] - should detect files created in a subdirectory
545[info] - should ignore creation of files not included in inclusion filter in subdirectories
546[info] - should ignore creation of files explicitly ignored in subdirectories
547[info] - should ignore creation of empty directories in a subdirectory
548[info] - should detect deleted files
549[info] - should ignore deletion of files not included in inclusion filter
550[info] - should ignore deletion of files explicitly ignored
551[info] - should ignore deletion of empty directories
552[info] - should detect deleted files in subdirectories
553[info] - should ignore deletion of files not included in inclusion filter in subdirectories
554[info] - should ignore deletion of files explicitly ignored in subdirectories
555[info] - should ignore deletion of empty directories in subdirectories
556[info] - should ignore creation and then deletion of empty directories
557[info] - should detect deletion of a directory containing watched files
558[info] - should not generate multiple events for the same file within anti-entropy period
559[info] - should ignore valid files in non-recursive subdirectories
560[info] - should log triggered files
561[info] - should handle rapid creation of many subdirectories and files
562[info] CopyDirectorySpec:
563[info] - should copy symlinks
564[info] DefaultWatchServiceSpec:
565[info] - should detect modified files
566[info] - should watch a directory for file creation
567[info] - should ignore creation of directories with no tracked globs
568[info] - should ignore creation of files that do not match inclusion filter
569[info] - should ignore creation of files that are explicitly ignored
570[info] - should ignore creation of an empty directory
571[info] - should detect files created in a subdirectory
572[info] - should ignore creation of files not included in inclusion filter in subdirectories
573[info] - should ignore creation of files explicitly ignored in subdirectories
574[info] - should ignore creation of empty directories in a subdirectory
575[info] - should detect deleted files
576[info] - should ignore deletion of files not included in inclusion filter
577[info] - should ignore deletion of files explicitly ignored
578[info] - should ignore deletion of empty directories
579[info] - should detect deleted files in subdirectories
580[info] - should ignore deletion of files not included in inclusion filter in subdirectories
581[info] - should ignore deletion of files explicitly ignored in subdirectories
582[info] - should ignore deletion of empty directories in subdirectories
583[info] - should ignore creation and then deletion of empty directories
584[info] - should detect deletion of a directory containing watched files
585[info] - should not generate multiple events for the same file within anti-entropy period
586[info] - should ignore valid files in non-recursive subdirectories
587[info] - should log triggered files
588[info] - should handle rapid creation of many subdirectories and files
589[info] WatchService.poll
590[info] - should throw a `ClosedWatchServiceException` if used after `close`
591[info] WatchService.register
592[info] - should throw a `ClosedWatchServiceException` if used after `close`
593[info] WatchService.close
594[info] - should not throw if called multiple times
595[info] + Write content.Unzip errors given parent traversal: OK, proved property.
596[info] + NameFilter.All pass accepts everything: OK, passed 100 tests.
597[info] + NameFilter.Exact filter matches valid string: OK, passed 100 tests.
598[info] + NameFilter.Glob filter matches provided string if no *s: OK, passed 100 tests.
599[info] + NameFilter.Glob filter matches valid string if no *s: OK, passed 100 tests.
600[info] PollingWatchServiceSpec:
601[info] - should detect modified files
602[info] - should watch a directory for file creation
603[info] - should ignore creation of directories with no tracked globs
604[info] - should ignore creation of files that do not match inclusion filter
605[info] - should ignore creation of files that are explicitly ignored
606[info] - should ignore creation of an empty directory
607[info] - should detect files created in a subdirectory
608[info] - should ignore creation of files not included in inclusion filter in subdirectories
609[info] - should ignore creation of files explicitly ignored in subdirectories
610[info] - should ignore creation of empty directories in a subdirectory
611[info] - should detect deleted files
612[info] - should ignore deletion of files not included in inclusion filter
613[info] - should ignore deletion of files explicitly ignored
614[info] - should ignore deletion of empty directories
615[info] - should detect deleted files in subdirectories
616[info] - should ignore deletion of files not included in inclusion filter in subdirectories
617[info] - should ignore deletion of files explicitly ignored in subdirectories
618[info] - should ignore deletion of empty directories in subdirectories
619[info] - should ignore creation and then deletion of empty directories
620[info] - should detect deletion of a directory containing watched files
621[info] - should not generate multiple events for the same file within anti-entropy period
622[info] - should ignore valid files in non-recursive subdirectories
623[info] - should log triggered files
624[info] - should handle rapid creation of many subdirectories and files
625[info] WatchService.poll
626[info] - should throw a `ClosedWatchServiceException` if used after `close`
627[info] WatchService.register
628[info] - should throw a `ClosedWatchServiceException` if used after `close`
629[info] WatchService.close
630[info] - should not throw if called multiple times
631[info] + NameFilter.Exact filter matches provided string: OK, passed 100 tests.
632[info] FileEventMonitorSpec:
633[info] anti-entropy
634[info] - should ignore redundant events
635[info] - should not ignore new events
636[info] - should quarantine deletions with finite poll
637[info] - should quarantine deletions with infinite poll
638[info] - should immediately trigger for creations
639[info] - should immediately trigger with zero antientropy
640[info] + IO.IO.classLocationPath able to determine containing directories: OK, passed 100 tests.
641[info] + NameFilter.Glob filter matches valid: OK, passed 100 tests.
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": 30059, "warnings": 4, "errors": 0, "sourceVersion": "3.8"},
650 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
651 "test-compile": {"status": "ok", "tookMs": 12561, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
652 "test": {"status": "ok", "tookMs": 11778, "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: 72 s (0:01:12.0), completed Dec 22, 2025, 6:43:24 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.