Build Logs

shuwariafrica/ashtray • 3.8.0:2026-01-13

Errors

5

Warnings

20

Total Lines

520

1##################################
2Clonning https://github.com/shuwariafrica/ashtray.git into /build/repo using revision v0.3.0
3##################################
4Note: switching to '6e90fc9b5977b7372cbe1e106a11c91e39a76fcb'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21----
22Preparing build for 3.8.0
23Scala binary version found: 3.8
24Implicitly using source version 3.8
25Scala binary version found: 3.8
26Implicitly using source version 3.8
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.8
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30----
31Starting build for 3.8.0
32Execute tests: true
33sbt project found:
34No prepare script found for project shuwariafrica/ashtray
35##################################
36Scala version: 3.8.0
37Targets: africa.shuwari%ashtray-mssql africa.shuwari%ashtray-zio-prelude
38Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[]}
39##################################
40Using extra scalacOptions: ,REQUIRE:-source:3.8
41Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
42[sbt_options] declare -a sbt_options=()
43[process_args] java_version = '25'
44[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_25/rt.jar'
45# Executing command line:
46java
47-Dfile.encoding=UTF-8
48-Xmx5G
49-Xms2G
50-Xss2M
51-Dcommunitybuild.scala=3.8.0
52-Dcommunitybuild.project.dependencies.add=
53-Xmx7G
54-Xms4G
55-Xss8M
56-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
57-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_25
58-jar
59/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
60"setCrossScalaVersions 3.8.0"
61"++3.8.0 -v"
62"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
63"set every credentials := Nil"
64"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
65"removeScalacOptionsStartingWith -P:wartremover"
66
67moduleMappings
68"runBuild 3.8.0 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[]}""" africa.shuwari%ashtray-mssql africa.shuwari%ashtray-zio-prelude"
69
70[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
71WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
72WARNING: sun.misc.Unsafe::arrayBaseOffset has been called by net.openhft.hashing.UnsafeAccess (file:/root/.sbt/boot/scala-2.12.20/org.scala-sbt/sbt/1.11.7/zero-allocation-hashing-0.16.jar)
73WARNING: Please consider reporting this to the maintainers of class net.openhft.hashing.UnsafeAccess
74WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release
75WARNING: A restricted method in java.lang.System has been called
76WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/root/.sbt/boot/scala-2.12.20/org.scala-sbt/sbt/1.11.7/jna-5.12.0.jar)
77WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
78WARNING: Restricted methods will be blocked in a future release unless native access is enabled
79
80[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 25)
81[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
82[info] loading project definition from /build/repo/project
83[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
84[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
85[info] Compilation completed in 8.224s.
86[info] done compiling
87[info] loading settings for project ashtray from build.sbt...
88[info] set current project to ashtray (in build file:/build/repo/)
89Execute setCrossScalaVersions: 3.8.0
90OpenCB::Changing crossVersion 3.7.4 -> 3.8.0 in ashtray-zio-prelude/crossScalaVersions
91OpenCB::Changing crossVersion 3.7.4 -> 3.8.0 in ashtray-test/crossScalaVersions
92OpenCB::Changing crossVersion 3.7.4 -> 3.8.0 in ashtray-mssql/crossScalaVersions
93OpenCB::Changing crossVersion 3.7.4 -> 3.8.0 in ashtray/crossScalaVersions
94[info] set current project to ashtray (in build file:/build/repo/)
95[info] Setting Scala version to 3.8.0 on 4 projects.
96[info] Switching Scala version on:
97[info] * ashtray (3.8.0)
98[info] ashtray-test (3.8.0)
99[info] ashtray-mssql (3.8.0)
100[info] ashtray-zio-prelude (3.8.0)
101[info] Excluding projects:
102[info] Reapplying settings...
103[info] set current project to ashtray (in build file:/build/repo/)
104Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
105[info] Reapplying settings...
106[info] set current project to ashtray (in build file:/build/repo/)
107[info] Defining Global / credentials, ThisBuild / credentials and 3 others.
108[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 29 others.
109[info] Run `last` for details.
110[info] Reapplying settings...
111[info] set current project to ashtray (in build file:/build/repo/)
112Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
113[info] Reapplying settings...
114OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
115
116 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
117 Did you mean ashtray-test / allExcludeDependencies ?
118 , retry without global scopes
119[info] Reapplying settings...
120[info] set current project to ashtray (in build file:/build/repo/)
121Execute removeScalacOptionsStartingWith: -P:wartremover
122[info] Reapplying settings...
123[info] set current project to ashtray (in build file:/build/repo/)
124[success] Total time: 0 s, completed Jan 13, 2026, 4:39:16 PM
125Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[]}
126Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
127Starting build...
128Projects: Set(ashtray-mssql, ashtray-zio-prelude, ashtray-test)
129Starting build for ProjectRef(file:/build/repo/,ashtray-mssql) (ashtray-mssql)... [0/3]
130OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
131Compile scalacOptions: -Xsemanticdb, -semanticdb-target, /build/repo/modules/mssql/target/scala-3.8.0/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
132OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
133OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
134OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
135[info] compiling 15 Scala sources to /build/repo/modules/mssql/target/scala-3.8.0/classes ...
136[info] done compiling
137[info] compiling 1 Scala source to /build/repo/modules/test/target/scala-3.8.0/classes ...
138[info] done compiling
139[info] compiling 14 Scala sources to /build/repo/modules/mssql/target/scala-3.8.0/test-classes ...
140[info] done compiling
141WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
142WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/3.8.0/scala-library-3.8.0.jar)
143WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
144WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
145ashtray.mssql.test.time.test_formatters:
146 + 'formatter.datetime2' can correctly parse SQL Server DATETIME2 formatted values 0.023s
147 + 'formatter.datetime2' can correctly show LocalDateTime values 0.001s
148 + 'formatter.datetimeoffset' can correctly parse SQL Server DATETIMEOFFSET formatted values 0.002s
149 + 'formatter.datetimeoffset' can correctly show OffsetDateTime values 0.001s
150 + 'formatter.datetime2' rejects over-precision fractional seconds 0.001s
151 + 'formatter.datetimeoffset' rejects malformed offsets 0.001s
152ashtray.mssql.test.GeneratorTests:
153 + default V7 generator produces RFC variant and version 0.324s
154 + generateBatch rejects non-positive counts 0.005s
155 + generateBatch rejects negative counts 0.0s
156 + generateBatch returns requested size of V7 identifiers 0.035s
157 + generateBatch V7 identifiers narrow to V7 and not V4 0.007s
158 + V4 generator produces version 4 with correct variant 0.004s
159 + V4 batch produces correct version and variant with no duplicates in small sample 0.013s
160 + V7 batch timestamps are non-decreasing 0.007s
161 + V7 batch has no duplicates in small sample 0.013s
162 + V7 batch uniqueness holds for a larger sample 0.027s
163 + generate propagates IdentifierGen failures 0.003s
164ashtray.mssql.test.ErrorHierarchyTests:
165 + Identifier.parse rejects null input with NullInput error 0.001s
166 + Identifier.fromBytes rejects null input with NullInput error 0.0s
167 + Identifier.fromSqlServerBytes rejects null input with NullInput error 0.0s
168 + All IdentifierError instances are AshtrayError 0.008s
169 + All TemporalSchemaError instances are AshtrayError 0.004s
170 + All MetaError instances are AshtrayError 0.005s
171 + All errors extend Exception with NoStackTrace 0.002s
172 + Pattern matching on AshtrayError discriminates IdentifierError 0.0s
173 + Pattern matching on AshtrayError discriminates TemporalSchemaError 0.0s
174 + Pattern matching on AshtrayError discriminates MetaError 0.001s
175 + Pattern matching on IdentifierError discriminates specific cases 0.004s
176 + Pattern matching on TemporalSchemaError discriminates specific cases 0.001s
177 + Pattern matching on MetaError discriminates specific cases 0.001s
178 + IdentifierError.NullInput has descriptive message 0.001s
179 + IdentifierError.InvalidLength has descriptive message with values 0.001s
180 + IdentifierError.InvalidCharacter has descriptive message with position 0.001s
181 + TemporalSchemaError messages include fragment for debugging 0.001s
182 + MetaError.IdentifierDecodeFailure includes column index and cause 0.002s
183 + IdentifierError type alias resolves correctly 0.0s
184 + TemporalSchemaError type alias resolves correctly 0.001s
185 + MetaError type alias resolves correctly 0.001s
1862026.01.13 16:39:39:502 pool-1-thread-1 INFO org.testcontainers.images.PullPolicy
187 Image pull policy will be performed by: DefaultPullPolicy()
1882026.01.13 16:39:39:560 pool-1-thread-1 INFO org.testcontainers.utility.ImageNameSubstitutor
189 Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
1902026.01.13 16:39:39:568 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
191 Testcontainers version: 2.0.2
192WARNING: A restricted method in java.lang.System has been called
193WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.18.1/jna-5.18.1.jar)
194WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
195WARNING: Restricted methods will be blocked in a future release unless native access is enabled
196
1972026.01.13 16:39:40:168 pool-1-thread-1 INFO org.testcontainers.dockerclient.DockerClientProviderStrategy
198 Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
1992026.01.13 16:39:40:199 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
200 Docker host IP address is 172.17.0.1
201 Connected to docker:
202 Server Version: 28.0.4
203 API Version: 1.48
204 Operating System: Ubuntu 22.04.5 LTS
205 Total Memory: 15995 MB
2062026.01.13 16:39:40:260 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
207 Pulling docker image: testcontainers/ryuk:0.13.0. Please be patient; this may take some time but only needs to be done once.
2082026.01.13 16:39:40:264 pool-1-thread-1 INFO org.testcontainers.utility.RegistryAuthLocator
209 Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:latest, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
2102026.01.13 16:39:40:649 docker-java-stream--792291873 INFO tc.testcontainers/ryuk:0.13.0
211 Starting to pull image
212 Pulling image layers: 0 pending, 0 downloaded, 0 extracted, (0 bytes/0 bytes)
213 Pulling image layers: 1 pending, 1 downloaded, 0 extracted, (281 KB/? MB)
214 Pulling image layers: 1 pending, 1 downloaded, 1 extracted, (281 KB/? MB)
215 Pulling image layers: 0 pending, 2 downloaded, 1 extracted, (281 KB/6 MB)
216 Pulling image layers: 0 pending, 2 downloaded, 2 extracted, (6 MB/6 MB)
2172026.01.13 16:39:40:988 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
218 Image testcontainers/ryuk:0.13.0 pull took PT0.727806303S
219 Creating container for image: testcontainers/ryuk:0.13.0
220 Container testcontainers/ryuk:0.13.0 is starting: 83f8110c60afd6e21be9f43b494f0d230376dce37b7f50f22e662a24ec23d552
221 Container testcontainers/ryuk:0.13.0 started in PT0.331629241S
2222026.01.13 16:39:41:348 pool-1-thread-1 INFO org.testcontainers.utility.RyukResourceReaper
223 Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
2242026.01.13 16:39:41:349 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
225 Checking the system...
226 ✔︎ Docker server version should be at least 1.6.0
2272026.01.13 16:39:41:355 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
228 Pulling docker image: mcr.microsoft.com/mssql/rhel/server:2025-latest. Please be patient; this may take some time but only needs to be done once.
2292026.01.13 16:39:41:356 pool-1-thread-1 INFO org.testcontainers.utility.RegistryAuthLocator
230 Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: mcr.microsoft.com/mssql/rhel/server:latest, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
2312026.01.13 16:39:42:236 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
232 Starting to pull image
233 Pulling image layers: 0 pending, 0 downloaded, 0 extracted, (0 bytes/0 bytes)
234 Pulling image layers: 2 pending, 1 downloaded, 0 extracted, (169 MB/? MB)
2352026.01.13 16:39:43:762 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
236 Pulling image layers: 1 pending, 2 downloaded, 0 extracted, (739 MB/? MB)
237 Pulling image layers: 0 pending, 3 downloaded, 0 extracted, (855 MB/918 MB)
2382026.01.13 16:39:46:050 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
239 Pulling image layers: 0 pending, 3 downloaded, 1 extracted, (879 MB/918 MB)
2402026.01.13 16:39:54:859 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
241 Pulling image layers: 0 pending, 3 downloaded, 2 extracted, (904 MB/918 MB)
2422026.01.13 16:39:57:606 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
243 Pulling image layers: 0 pending, 3 downloaded, 3 extracted, (918 MB/918 MB)
244 Pull complete. 3 layers, pulled in 15s (downloaded 918 MB at 61 MB/s)
2452026.01.13 16:39:57:611 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
246 Image mcr.microsoft.com/mssql/rhel/server:2025-latest pull took PT16.255884305S
247 Creating container for image: mcr.microsoft.com/mssql/rhel/server:2025-latest
248 Container mcr.microsoft.com/mssql/rhel/server:2025-latest is starting: f8c66d45b7d491cf2a44d1af2ad76c4d8222cc4ed711f06042087d45dc02fc0b
249 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32769;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
2502026.01.13 16:40:02:565 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
251 Container mcr.microsoft.com/mssql/rhel/server:2025-latest started in PT4.944091023S
252 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32769;encrypt=true;trustServerCertificate=true)
253ashtray.mssql.test.TemporalPeriodTests:
254 + Temporal.Versioned Read instance correctly deserializes entity and period from database 0.72s
255 + Period.isCurrent correctly identifies current rows by validTo == MaxDateTime2 1.407s
256 + Temporal.isCurrent extension method correctly identifies current versions 1.381s
257 + Temporal.current extension correctly extracts entity 0.288s
258 + Period.MaxDateTime2 constant matches SQL Server max DATETIME2 0.28s
259 + Temporal.Versioned and Temporal.Current type aliases resolve correctly 0.004s
260 + Historical versions maintain accurate period boundaries 1.389s
2612026.01.13 16:40:08:246 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
262 Creating container for image: mcr.microsoft.com/mssql/rhel/server:2025-latest
263 Container mcr.microsoft.com/mssql/rhel/server:2025-latest is starting: 4de332f841b6ecca3e8926dcb1b3381bba0dce84ab1332c0be69ee6e0c2ded96
264 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32770;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
2652026.01.13 16:40:12:856 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
266 Container mcr.microsoft.com/mssql/rhel/server:2025-latest started in PT4.609779514S
267 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32770;encrypt=true;trustServerCertificate=true)
268ashtray.mssql.test.MetaTests:
269 + Encode and decode between java UUID instances and SQL Server UNIQUEIDENTIFIER records. 0.146s
270 + Encode and decode between java LocalDateTime instances and SQL Server DATETIME2 records. 0.12s
271 + Encode and decode between java OffsetDateTime instances and SQL Server DATETIMEOFFSET records. 0.094s
272 + Encode and decode Identifier via UNIQUEIDENTIFIER round trip 0.098s
273 + Encode and decode typed V7 Identifier via UNIQUEIDENTIFIER round trip 0.104s
274 + Encode and decode typed V4 Identifier via UNIQUEIDENTIFIER round trip 0.099s
275 + UNIQUEIDENTIFIER bytes match SQL Server mixed-endian storage 0.293s
276 + Identifier can be used in WHERE predicates 0.28s
277 + Nullable Identifier and datetime Meta handle NULL values 0.182s
278 + Typed and untyped literals survive database round trips 0.253s
279ashtray.mssql.test.NarrowingRoundtripTests:
280 + parse then narrow to V7 succeeds when version nibble is 7 0.001s
281 + parse then narrow to V4 succeeds when version nibble is 4 0.001s
282 + typed literal idv narrows to specific version 0.001s
283ashtray.mssql.test.IdentifierOpsTests:
284 + Minimal wrapper exports type classes correctly 0.003s
285 + Full wrapper has all operations available 0.003s
286 + V7 wrapper has timestamp operations 0.004s
287 + Selective exports limit API surface 0.001s
288 + Non-exported operations are not available 0.001s
289 + Different wrappers can have different capabilities 0.001s
2902026.01.13 16:40:14:959 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
291 Creating container for image: mcr.microsoft.com/mssql/rhel/server:2025-latest
292 Container mcr.microsoft.com/mssql/rhel/server:2025-latest is starting: fb438158f86dd56ad4f3c097386e90728d40f1ac4a645bd87fdb9b5bc6e6de93
293 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32771;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
2942026.01.13 16:40:19:525 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
295 Container mcr.microsoft.com/mssql/rhel/server:2025-latest started in PT4.566112755S
296 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32771;encrypt=true;trustServerCertificate=true)
297ashtray.mssql.test.TemporalIntegrationTests:
298 + System-versioned table tracks period columns automatically 0.339s
299 + FOR SYSTEM_TIME AS OF returns point-in-time snapshot 4.72s
300 + FOR SYSTEM_TIME FROM...TO returns overlapping records (exclusive bounds) 0.945s
301 + FOR SYSTEM_TIME BETWEEN returns overlapping records (inclusive end) 0.838s
302 + FOR SYSTEM_TIME CONTAINED IN returns records entirely within period 1.148s
303 + FOR SYSTEM_TIME ALL returns complete history 0.621s
304 + TemporalRepo.current returns only current version 0.473s
305 + TemporalRepo.diff compares two versions at different times 1.201s
306 + Deleted records remain in history 0.919s
307 + Extension syntax with Long ID works end-to-end 0.545s
308 + TemporalRepo.allAsOf returns snapshot of all entities 1.115s
309 + restoreTo rolls back entity to historical state 1.211s
310 + restoreTo returns 0 when entity didn't exist at specified time 0.554s
311 + restoreTo preserves all entity fields correctly 0.94s
312 + asOf returns None for non-existent entity ID 0.266s
313 + allAsOf returns empty list when table is empty 0.267s
314 + history returns empty list for non-existent entity ID 0.276s
315 + historyBetween returns empty list for non-existent entity ID 0.36s
316 + historyBetween with very narrow time window 0.94s
317 + containedIn returns empty list when no versions fully contained 0.638s
318 + diff returns None when entity doesn't exist at one timestamp 0.729s
319 + current returns None for non-existent entity ID 0.269s
320 + Multiple concurrent inserts tracked in history 0.564s
321 + restoreTo with non-existent entity at specified time returns 0 0.451s
322 + Queries handle MaxDateTime2 boundary correctly 0.268s
323 + Large batch query with allAsOf handles multiple entities efficiently 4.978s
3242026.01.13 16:40:45:309 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
325 Creating container for image: mcr.microsoft.com/mssql/rhel/server:2025-latest
326 Container mcr.microsoft.com/mssql/rhel/server:2025-latest is starting: 49c2150c4fbc677eb839eb4ba69c26f8f127c5190859d49c0904f2e2aa10376d
327 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32773;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
3282026.01.13 16:40:49:852 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
329 Container mcr.microsoft.com/mssql/rhel/server:2025-latest started in PT4.542378382S
330 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32773;encrypt=true;trustServerCertificate=true)
331ashtray.mssql.test.PackageExtensionTests:
332 + xa.temporal[Long, A] extension derives repository with Long ID type 0.344s
333 + xa.temporal[Identifier, A] extension derives repository with Identifier ID type 0.269s
334 + Extension method works with only single import (no TemporalRepo.* import needed) 0.276s
335 + Repository derived via extension supports all temporal operations 1.457s
336ashtray.mssql.test.IdentifierParsingTests:
337 + parse accepts canonical UUID string 0.001s
338 + parse accepts upper and mixed case input 0.001s
339 + parse rejects invalid length 0.0s
340 + parse rejects invalid character 0.0s
341 + parse rejects misplaced hyphens 0.0s
342 + parse rejects surrounding whitespace 0.001s
343 + fromBytes rejects wrong length 0.0s
344 + fromSqlServerBytes rejects wrong length 0.001s
345 + unknown version nibble parses to Version.Unknown 0.001s
346ashtray.mssql.test.IdentifierLiteralTests:
347 + id literal constructs identifier at compile time 0.0s
348 + idv literal returns typed V7 0.001s
349 + idv literal returns typed V4 with correct variant 0.0s
350 + id literal rejects invalid input at compile time 0.004s
351 + id literal rejects wrong length and hyphen positions at compile time 0.002s
352 + id literal rejects interpolated usage 0.001s
353 + idv literal rejects unsupported version 0.001s
354 + idv literal rejects non 4/7/1 versions at compile time 0.001s
355 + literals render in canonical lowercase and retain variant bits 0.001s
3562026.01.13 16:40:52:427 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
357 Creating container for image: mcr.microsoft.com/mssql/rhel/server:2025-latest
358 Container mcr.microsoft.com/mssql/rhel/server:2025-latest is starting: 446a26e6bf00d5dbf419d663864cc891b7b10c80b48caad49f1d07b702a9d040
359 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32774;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
3602026.01.13 16:40:57:304 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
361 Container mcr.microsoft.com/mssql/rhel/server:2025-latest started in PT4.877211172S
362 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32774;encrypt=true;trustServerCertificate=true)
363ashtray.mssql.test.MetaErrorIntegrationTests:
364 + Meta[Identifier] successfully decodes valid UNIQUEIDENTIFIER from database 0.09s
365 + Meta[Identifier] handles NULL in nullable column correctly 0.087s
366 + Meta[UUID] successfully round-trips java.util.UUID through database 0.086s
367 + Meta instances preserve identifier through INSERT/SELECT round trip 0.088s
368 + Meta[Identifier.Versioned[V7]] preserves version through round trip 0.092s
369 + Meta[LocalDateTime] handles DATETIME2 with full precision 0.086s
370 + Meta[OffsetDateTime] handles DATETIMEOFFSET with timezone 0.086s
371 + Multiple identifier operations in single transaction preserve values 0.103s
372ashtray.mssql.test.IdentifierEncodingTests:
373 + toBytes and fromBytes roundtrip 0.001s
374 + toSqlServerBytes uses mixed endian ordering 0.0s
375 + toSqlServerBytes and fromSqlServerBytes roundtrip 0.001s
376 + fromSqlServerBytes rejects big-endian ordering by yielding a different identifier 0.001s
377 + toJava and fromJava roundtrip 0.0s
378 + mostSignificantBits accessor returns correct value 0.0s
379 + leastSignificantBits accessor returns correct value 0.001s
380 + Identifier.render produces canonical lowercase representation 0.0s
381 + Identifier Show typeclass produces canonical format 0.001s
382 + Versioned[V] Show typeclass produces canonical format 0.001s
383ashtray.mssql.test.VersionTests:
384 + version detection for V4 0.001s
385 + version detection and timestamp for V7 0.001s
386 + v1 fields are extracted correctly 0.001s
387 + unknown version yields Version.Unknown and does not narrow 0.001s
388ashtray.mssql.test.TemporalTests:
389 + Period.MaxDateTime2 has correct maximum value 0.001s
390 + Period.DateTime2 type alias is correct 0.0s
391 + SystemTime.asOf creates AsOf with UTC conversion 0.0s
392 + SystemTime.AsOf.toFragment generates FOR SYSTEM_TIME AS OF clause 0.001s
393 + SystemTime.fromTo creates FromTo with UTC conversion 0.0s
394 + SystemTime.FromTo.toFragment generates FOR SYSTEM_TIME FROM TO clause 0.001s
395 + SystemTime.between creates Between with UTC conversion 0.0s
396 + SystemTime.Between.toFragment generates FOR SYSTEM_TIME BETWEEN clause 0.001s
397 + SystemTime.containedIn creates ContainedIn with UTC conversion 0.0s
398 + SystemTime.ContainedIn.toFragment generates FOR SYSTEM_TIME CONTAINED IN clause 0.001s
399 + SystemTime.All.toFragment generates FOR SYSTEM_TIME ALL clause 0.0s
400 + Temporal.Versioned type alias resolves correctly 0.001s
401 + Temporal.Current type alias resolves correctly 0.0s
402 + Temporal.isCurrent returns true when validTo is MaxDateTime2 0.001s
403 + Temporal.isCurrent returns false when validTo is not MaxDateTime2 0.0s
404 + Temporal.current extracts entity when called 0.0s
405 + Temporal.current always extracts entity 0.001s
406 + TemporalSchema.periodColumns generates correct fragment 0.001s
407 + TemporalSchema.allColumns combines entity and period columns 0.001s
408 + TemporalSchema.forSystemTime combines table and AS OF clause 0.001s
409 + TemporalSchema.forSystemTime combines table and FROM TO clause 0.001s
410 + TemporalSchema.forSystemTime combines table and BETWEEN clause 0.001s
411 + TemporalSchema.forSystemTime combines table and CONTAINED IN clause 0.0s
412 + TemporalSchema.forSystemTime combines table and ALL clause 0.001s
413 + Period.columns generates correct fragment 0.002s
414 + Transactor extension for temporal repository is available with single import 0.0s
415 + Type safety: TemporalMode.Standard and SystemVersioned are distinct 0.0s
416 + TemporalVersioned type alias is exported 0.0s
417 + TemporalCurrent type alias is exported 0.0s
418 + columnNames extracts simple comma-separated list 0.0s
419 + columnNames handles columns with no spaces 0.0s
420 + columnNames handles qualified column names 0.001s
421 + columnNames rejects SQL line comments 0.0s
422 + columnNames rejects SQL block comments 0.0s
423 + columnNames rejects string literals with single quotes 0.0s
424 + columnNames rejects string literals with double quotes 0.0s
425 + columnNames rejects SELECT keywords 0.0s
426 + columnNames rejects FROM keywords 0.0s
427 + columnNames rejects function calls with parentheses 0.001s
428 + columnNames rejects empty column names 0.0s
429Starting build for ProjectRef(file:/build/repo/,ashtray-zio-prelude) (ashtray-zio-prelude)... [1/3]
430Compile scalacOptions: -Xsemanticdb, -semanticdb-target, /build/repo/modules/zio-prelude/target/scala-3.8.0/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
431[info] compiling 1 Scala source to /build/repo/modules/zio-prelude/target/scala-3.8.0/classes ...
432[info] done compiling
433[info] compiling 1 Scala source to /build/repo/modules/zio-prelude/target/scala-3.8.0/test-classes ...
434[info] done compiling
435WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
436WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/3.8.0/scala-library-3.8.0.jar)
437WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
438WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
4392026.01.13 16:41:01:647 pool-1-thread-1 INFO org.testcontainers.images.PullPolicy
440 Image pull policy will be performed by: DefaultPullPolicy()
4412026.01.13 16:41:01:712 pool-1-thread-1 INFO org.testcontainers.utility.ImageNameSubstitutor
442 Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
4432026.01.13 16:41:01:724 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
444 Testcontainers version: 2.0.2
4452026.01.13 16:41:01:887 pool-1-thread-1 INFO org.testcontainers.dockerclient.DockerClientProviderStrategy
446 Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
447 Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
4482026.01.13 16:41:02:387 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
449 Docker host IP address is 172.17.0.1
450 Connected to docker:
451 Server Version: 28.0.4
452 API Version: 1.48
453 Operating System: Ubuntu 22.04.5 LTS
454 Total Memory: 15995 MB
4552026.01.13 16:41:02:437 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
456 Creating container for image: testcontainers/ryuk:0.13.0
4572026.01.13 16:41:02:442 pool-1-thread-1 INFO org.testcontainers.utility.RegistryAuthLocator
458 Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:0.13.0, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
4592026.01.13 16:41:02:547 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
460 Container testcontainers/ryuk:0.13.0 is starting: 8ef46e9c5b96eac0c84d44fd503a981485ecaf08768a68973ea183486ef283b8
461 Container testcontainers/ryuk:0.13.0 started in PT0.381337417S
4622026.01.13 16:41:02:824 pool-1-thread-1 INFO org.testcontainers.utility.RyukResourceReaper
463 Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
4642026.01.13 16:41:02:824 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
465 Checking the system...
466 ✔︎ Docker server version should be at least 1.6.0
4672026.01.13 16:41:02:834 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
468 Creating container for image: mcr.microsoft.com/mssql/rhel/server:2025-latest
4692026.01.13 16:41:02:835 pool-1-thread-1 INFO org.testcontainers.utility.RegistryAuthLocator
470 Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: mcr.microsoft.com/mssql/rhel/server:2025-latest, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
4712026.01.13 16:41:02:855 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
472 Container mcr.microsoft.com/mssql/rhel/server:2025-latest is starting: 949dadbbbe321bf03dc19729736ce1d09de8c4d37b7f7ed524178bcf528f262f
473 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32776;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
4742026.01.13 16:41:07:622 pool-1-thread-1 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
475 Container mcr.microsoft.com/mssql/rhel/server:2025-latest started in PT4.787962645S
476 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32776;encrypt=true;trustServerCertificate=true)
477ashtray.prelude.test.NewtypeTests:
478 + Encode and decode between zio.Prelude.Newtype type instances with available Meta instances 0.227s
479Starting build for ProjectRef(file:/build/repo/,ashtray-test) (ashtray-test)... [2/3]
480Compile scalacOptions: -Xsemanticdb, -semanticdb-target, /build/repo/modules/test/target/scala-3.8.0/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
481
482************************
483Build summary:
484[{
485 "module": "ashtray-mssql",
486 "compile": {"status": "ok", "tookMs": 11028, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
487 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
488 "test-compile": {"status": "ok", "tookMs": 8847, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
489 "test": {"status": "ok", "tookMs": 80370, "passed": 174, "failed": 0, "ignored": 0, "skipped": 0, "total": 174, "byFramework": [{"framework": "munit", "stats": {"passed": 174, "failed": 0, "ignored": 0, "skipped": 0, "total": 174}}]},
490 "publish": {"status": "skipped", "tookMs": 0},
491 "metadata": {
492 "crossScalaVersions": ["3.7.4"]
493}
494},{
495 "module": "ashtray-zio-prelude",
496 "compile": {"status": "ok", "tookMs": 370, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
497 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
498 "test-compile": {"status": "ok", "tookMs": 1125, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
499 "test": {"status": "ok", "tookMs": 8134, "passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1, "byFramework": [{"framework": "munit", "stats": {"passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1}}]},
500 "publish": {"status": "skipped", "tookMs": 0},
501 "metadata": {
502 "crossScalaVersions": ["3.7.4"]
503}
504},{
505 "module": "ashtray-test",
506 "compile": {"status": "ok", "tookMs": 48, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
507 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
508 "test-compile": {"status": "ok", "tookMs": 86, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
509 "test": {"status": "ok", "tookMs": 73, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
510 "publish": {"status": "ok", "tookMs": 0},
511 "metadata": {
512 "crossScalaVersions": ["3.7.4"]
513}
514}]
515************************
516[success] Total time: 113 s (0:01:53.0), completed Jan 13, 2026, 4:41:09 PM
517[0JChecking patch project/plugins.sbt...
518Checking patch build.sbt...
519Applied patch project/plugins.sbt cleanly.
520Applied patch build.sbt cleanly.