Build Logs
shuwariafrica/ashtray • 3.8.0-RC4:2025-12-22
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-RC4
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-RC4
32Execute tests: true
33sbt project found:
34No prepare script found for project shuwariafrica/ashtray
35##################################
36Scala version: 3.8.0-RC4
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-RC4
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-RC4"
61"++3.8.0-RC4 -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-RC4 """{"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 7.731s.
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-RC4
90OpenCB::Changing crossVersion 3.7.4 -> 3.8.0-RC4 in ashtray-zio-prelude/crossScalaVersions
91OpenCB::Changing crossVersion 3.7.4 -> 3.8.0-RC4 in ashtray-test/crossScalaVersions
92OpenCB::Changing crossVersion 3.7.4 -> 3.8.0-RC4 in ashtray-mssql/crossScalaVersions
93OpenCB::Changing crossVersion 3.7.4 -> 3.8.0-RC4 in ashtray/crossScalaVersions
94[info] set current project to ashtray (in build file:/build/repo/)
95[info] Setting Scala version to 3.8.0-RC4 on 4 projects.
96[info] Switching Scala version on:
97[info] * ashtray (3.8.0-RC4)
98[info] ashtray-test (3.8.0-RC4)
99[info] ashtray-mssql (3.8.0-RC4)
100[info] ashtray-zio-prelude (3.8.0-RC4)
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 Dec 22, 2025, 8:20:11 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-RC4/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-RC4/classes ...
136[info] done compiling
137[info] compiling 1 Scala source to /build/repo/modules/test/target/scala-3.8.0-RC4/classes ...
138[info] done compiling
139[info] compiling 14 Scala sources to /build/repo/modules/mssql/target/scala-3.8.0-RC4/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/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC4/scala-library-3.8.0-RC4.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.379s
154 + generateBatch rejects non-positive counts 0.007s
155 + generateBatch rejects negative counts 0.003s
156 + generateBatch returns requested size of V7 identifiers 0.04s
157 + generateBatch V7 identifiers narrow to V7 and not V4 0.005s
158 + V4 generator produces version 4 with correct variant 0.003s
159 + V4 batch produces correct version and variant with no duplicates in small sample 0.011s
160 + V7 batch timestamps are non-decreasing 0.006s
161 + V7 batch has no duplicates in small sample 0.018s
162 + V7 batch uniqueness holds for a larger sample 0.043s
163 + generate propagates IdentifierGen failures 0.007s
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.001s
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.006s
170 + All MetaError instances are AshtrayError 0.004s
171 + All errors extend Exception with NoStackTrace 0.001s
172 + Pattern matching on AshtrayError discriminates IdentifierError 0.001s
173 + Pattern matching on AshtrayError discriminates TemporalSchemaError 0.0s
174 + Pattern matching on AshtrayError discriminates MetaError 0.0s
175 + Pattern matching on IdentifierError discriminates specific cases 0.005s
176 + Pattern matching on TemporalSchemaError discriminates specific cases 0.0s
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.0s
182 + MetaError.IdentifierDecodeFailure includes column index and cause 0.002s
183 + IdentifierError type alias resolves correctly 0.002s
184 + TemporalSchemaError type alias resolves correctly 0.001s
185 + MetaError type alias resolves correctly 0.0s
1862025.12.22 20:21:01:292 pool-1-thread-1 INFO org.testcontainers.images.PullPolicy
187 Image pull policy will be performed by: DefaultPullPolicy()
1882025.12.22 20:21:01:367 pool-1-thread-1 INFO org.testcontainers.utility.ImageNameSubstitutor
189 Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
1902025.12.22 20:21:01:378 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/repo.scala-lang.org/artifactory/maven-nightlies/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
1972025.12.22 20:21:01:984 pool-1-thread-1 INFO org.testcontainers.dockerclient.DockerClientProviderStrategy
198 Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
1992025.12.22 20:21:02:019 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
2062025.12.22 20:21:02:078 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.
2082025.12.22 20:21:02:083 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)
2102025.12.22 20:21:02:479 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: 0 pending, 2 downloaded, 0 extracted, (281 KB/6 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)
2172025.12.22 20:21:02:820 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
218 Image testcontainers/ryuk:0.13.0 pull took PT0.741816168S
219 Creating container for image: testcontainers/ryuk:0.13.0
220 Container testcontainers/ryuk:0.13.0 is starting: af807cd53faf73afefc2b7c92584ed37752eb87bfd05246d1bdf811967bfa1ee
221 Container testcontainers/ryuk:0.13.0 started in PT0.280345232S
2222025.12.22 20:21:03:128 pool-1-thread-1 INFO org.testcontainers.utility.RyukResourceReaper
223 Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
2242025.12.22 20:21:03:128 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
225 Checking the system...
226 ✔︎ Docker server version should be at least 1.6.0
2272025.12.22 20:21:03:132 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.
2292025.12.22 20:21:03:133 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)
2312025.12.22 20:21:03:325 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, (193 MB/? MB)
2352025.12.22 20:21:04:534 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
236 Pulling image layers: 1 pending, 2 downloaded, 0 extracted, (630 MB/? MB)
237 Pulling image layers: 0 pending, 3 downloaded, 0 extracted, (847 MB/918 MB)
2382025.12.22 20:21:06:886 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
239 Pulling image layers: 0 pending, 3 downloaded, 1 extracted, (873 MB/918 MB)
2402025.12.22 20:21:15:192 docker-java-stream--250437938 INFO tc.mcr.microsoft.com/mssql/rhel/server:2025-latest
241 Pulling image layers: 0 pending, 3 downloaded, 2 extracted, (889 MB/918 MB)
2422025.12.22 20:21:17:878 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 14s (downloaded 918 MB at 65 MB/s)
2452025.12.22 20:21:17:883 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 PT14.750871161S
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: 811aa683ed1ddb24c0232094398154bbd6dbaea369f429b4898c393327a766f7
249 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32769;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
2502025.12.22 20:21:22:557 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.662752817S
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.697s
255 + Period.isCurrent correctly identifies current rows by validTo == MaxDateTime2 1.394s
256 + Temporal.isCurrent extension method correctly identifies current versions 1.381s
257 + Temporal.current extension correctly extracts entity 0.3s
258 + Period.MaxDateTime2 constant matches SQL Server max DATETIME2 0.289s
259 + Temporal.Versioned and Temporal.Current type aliases resolve correctly 0.004s
260 + Historical versions maintain accurate period boundaries 1.386s
2612025.12.22 20:21:28:218 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: 57f3cd2639c4dddc0472e44302818a0c64d1b4b9a6f8737293ff643e3e12cbc8
264 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32770;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
2652025.12.22 20:21:32:601 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.383009949S
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.133s
270 + Encode and decode between java LocalDateTime instances and SQL Server DATETIME2 records. 0.107s
271 + Encode and decode between java OffsetDateTime instances and SQL Server DATETIMEOFFSET records. 0.101s
272 + Encode and decode Identifier via UNIQUEIDENTIFIER round trip 0.093s
273 + Encode and decode typed V7 Identifier via UNIQUEIDENTIFIER round trip 0.09s
274 + Encode and decode typed V4 Identifier via UNIQUEIDENTIFIER round trip 0.091s
275 + UNIQUEIDENTIFIER bytes match SQL Server mixed-endian storage 0.282s
276 + Identifier can be used in WHERE predicates 0.268s
277 + Nullable Identifier and datetime Meta handle NULL values 0.177s
278 + Typed and untyped literals survive database round trips 0.186s
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.0s
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.002s
2902025.12.22 20:21:34:571 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: 5c5467c44ed95f18832ea33225f1971b97569f57a36a3c282170779c51003792
293 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32771;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
2942025.12.22 20:21:39:291 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.719781351S
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.383s
299 + FOR SYSTEM_TIME AS OF returns point-in-time snapshot 4.394s
300 + FOR SYSTEM_TIME FROM...TO returns overlapping records (exclusive bounds) 0.931s
301 + FOR SYSTEM_TIME BETWEEN returns overlapping records (inclusive end) 0.828s
302 + FOR SYSTEM_TIME CONTAINED IN returns records entirely within period 1.123s
303 + FOR SYSTEM_TIME ALL returns complete history 0.606s
304 + TemporalRepo.current returns only current version 0.467s
305 + TemporalRepo.diff compares two versions at different times 1.19s
306 + Deleted records remain in history 0.912s
307 + Extension syntax with Long ID works end-to-end 0.54s
308 + TemporalRepo.allAsOf returns snapshot of all entities 1.093s
309 + restoreTo rolls back entity to historical state 1.22s
310 + restoreTo returns 0 when entity didn't exist at specified time 0.553s
311 + restoreTo preserves all entity fields correctly 0.926s
312 + asOf returns None for non-existent entity ID 0.261s
313 + allAsOf returns empty list when table is empty 0.263s
314 + history returns empty list for non-existent entity ID 0.287s
315 + historyBetween returns empty list for non-existent entity ID 0.353s
316 + historyBetween with very narrow time window 0.925s
317 + containedIn returns empty list when no versions fully contained 0.661s
318 + diff returns None when entity doesn't exist at one timestamp 0.797s
319 + current returns None for non-existent entity ID 0.262s
320 + Multiple concurrent inserts tracked in history 0.548s
321 + restoreTo with non-existent entity at specified time returns 0 0.457s
322 + Queries handle MaxDateTime2 boundary correctly 0.285s
323 + Large batch query with allAsOf handles multiple entities efficiently 5.002s
3242025.12.22 20:22:04:780 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: c0f47cd44b07242efcab9f945fda19aff7164dfabd088c27a2445f77f0eacf46
327 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32772;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
3282025.12.22 20:22:09:182 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.401556944S
330 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32772;encrypt=true;trustServerCertificate=true)
331ashtray.mssql.test.PackageExtensionTests:
332 + xa.temporal[Long, A] extension derives repository with Long ID type 0.301s
333 + xa.temporal[Identifier, A] extension derives repository with Identifier ID type 0.275s
334 + Extension method works with only single import (no TemporalRepo.* import needed) 0.262s
335 + Repository derived via extension supports all temporal operations 1.455s
336ashtray.mssql.test.IdentifierParsingTests:
337 + parse accepts canonical UUID string 0.002s
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.002s
351 + id literal rejects wrong length and hyphen positions at compile time 0.001s
352 + id literal rejects interpolated usage 0.001s
353 + idv literal rejects unsupported version 0.0s
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
3562025.12.22 20:22:11:692 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: 5a82faa643a9462fc0ab12df96eb3e64dd896609437ba2ee287768e2cabe2ce7
359 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32773;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
3602025.12.22 20:22:16:097 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.404884491S
362 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32773;encrypt=true;trustServerCertificate=true)
363ashtray.mssql.test.MetaErrorIntegrationTests:
364 + Meta[Identifier] successfully decodes valid UNIQUEIDENTIFIER from database 0.118s
365 + Meta[Identifier] handles NULL in nullable column correctly 0.101s
366 + Meta[UUID] successfully round-trips java.util.UUID through database 0.087s
367 + Meta instances preserve identifier through INSERT/SELECT round trip 0.086s
368 + Meta[Identifier.Versioned[V7]] preserves version through round trip 0.087s
369 + Meta[LocalDateTime] handles DATETIME2 with full precision 0.085s
370 + Meta[OffsetDateTime] handles DATETIMEOFFSET with timezone 0.084s
371 + Multiple identifier operations in single transaction preserve values 0.099s
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.0s
377 + toJava and fromJava roundtrip 0.001s
378 + mostSignificantBits accessor returns correct value 0.0s
379 + leastSignificantBits accessor returns correct value 0.0s
380 + Identifier.render produces canonical lowercase representation 0.001s
381 + Identifier Show typeclass produces canonical format 0.0s
382 + Versioned[V] Show typeclass produces canonical format 0.002s
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.0s
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.001s
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.009s
397 + SystemTime.containedIn creates ContainedIn with UTC conversion 0.001s
398 + SystemTime.ContainedIn.toFragment generates FOR SYSTEM_TIME CONTAINED IN clause 0.0s
399 + SystemTime.All.toFragment generates FOR SYSTEM_TIME ALL clause 0.001s
400 + Temporal.Versioned type alias resolves correctly 0.001s
401 + Temporal.Current type alias resolves correctly 0.001s
402 + Temporal.isCurrent returns true when validTo is MaxDateTime2 0.0s
403 + Temporal.isCurrent returns false when validTo is not MaxDateTime2 0.001s
404 + Temporal.current extracts entity when called 0.0s
405 + Temporal.current always extracts entity 0.0s
406 + TemporalSchema.periodColumns generates correct fragment 0.001s
407 + TemporalSchema.allColumns combines entity and period columns 0.002s
408 + TemporalSchema.forSystemTime combines table and AS OF clause 0.001s
409 + TemporalSchema.forSystemTime combines table and FROM TO clause 0.002s
410 + TemporalSchema.forSystemTime combines table and BETWEEN clause 0.001s
411 + TemporalSchema.forSystemTime combines table and CONTAINED IN clause 0.002s
412 + TemporalSchema.forSystemTime combines table and ALL clause 0.001s
413 + Period.columns generates correct fragment 0.001s
414 + Transactor extension for temporal repository is available with single import 0.001s
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.001s
418 + columnNames extracts simple comma-separated list 0.0s
419 + columnNames handles columns with no spaces 0.001s
420 + columnNames handles qualified column names 0.0s
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.001s
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.0s
428 + columnNames rejects empty column names 0.001s
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-RC4/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-RC4/classes ...
432[info] done compiling
433[info] compiling 1 Scala source to /build/repo/modules/zio-prelude/target/scala-3.8.0-RC4/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/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC4/scala-library-3.8.0-RC4.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
4392025.12.22 20:22:25:280 pool-1-thread-1 INFO org.testcontainers.images.PullPolicy
440 Image pull policy will be performed by: DefaultPullPolicy()
4412025.12.22 20:22:25:334 pool-1-thread-1 INFO org.testcontainers.utility.ImageNameSubstitutor
442 Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
4432025.12.22 20:22:25:347 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
444 Testcontainers version: 2.0.2
4452025.12.22 20:22:25:473 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)
4482025.12.22 20:22:25:958 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
4552025.12.22 20:22:26:006 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
456 Creating container for image: testcontainers/ryuk:0.13.0
4572025.12.22 20:22:26:010 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)
4592025.12.22 20:22:26:109 pool-1-thread-1 INFO tc.testcontainers/ryuk:0.13.0
460 Container testcontainers/ryuk:0.13.0 is starting: b80dfa3012fc4fb419b67ddb1b25feec2ed23231980d2d7c5aa826ef4bd4ae8c
461 Container testcontainers/ryuk:0.13.0 started in PT0.364935633S
4622025.12.22 20:22:26:376 pool-1-thread-1 INFO org.testcontainers.utility.RyukResourceReaper
463 Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
4642025.12.22 20:22:26:376 pool-1-thread-1 INFO org.testcontainers.DockerClientFactory
465 Checking the system...
466 ✔︎ Docker server version should be at least 1.6.0
4672025.12.22 20:22:26:386 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
4692025.12.22 20:22:26:386 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)
4712025.12.22 20:22:26:403 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: 33a2fbf60bceab4c06a033a67bb6c5730396e9365abb5f607ee1d0d7cd4aaa4b
473 Waiting for database connection to become available at jdbc:sqlserver://172.17.0.1:32775;encrypt=true;trustServerCertificate=true using query 'SELECT 1'
4742025.12.22 20:22:31:365 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.979352089S
476 Container is started (JDBC URL: jdbc:sqlserver://172.17.0.1:32775;encrypt=true;trustServerCertificate=true)
477ashtray.prelude.test.NewtypeTests:
478 + Encode and decode between zio.Prelude.Newtype type instances with available Meta instances 0.21s
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-RC4/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": 13553, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
487 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
488 "test-compile": {"status": "ok", "tookMs": 8224, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
489 "test": {"status": "ok", "tookMs": 77487, "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": 420, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
497 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
498 "test-compile": {"status": "ok", "tookMs": 1081, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
499 "test": {"status": "ok", "tookMs": 8061, "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": 81, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
509 "test": {"status": "ok", "tookMs": 79, "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: 142 s (0:02:22.0), completed Dec 22, 2025, 8:22:33 PM
517[0JChecking patch project/plugins.sbt...
518Checking patch build.sbt...
519Applied patch project/plugins.sbt cleanly.
520Applied patch build.sbt cleanly.