Build Logs

sbt/io • 3.8.0-RC3:2025-12-04

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