Build Logs

sbt/io • 3.8.0-RC2:2025-11-28

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