2025-05-11 16:49.49: New job: test mefyl/timmy https://github.com/mefyl/timmy.git#refs/heads/master (4c16276dd0af20216966ca37ade96600cd05627f) (linux-x86_64:(lint-fmt)) Base: ocaml/opam:debian-12-ocaml-4.08@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4 ocamlformat version: version 0.27.0 (from opam) To reproduce locally: git clone --recursive "https://github.com/mefyl/timmy.git" -b "master" && cd "timmy" && git reset --hard 4c16276d cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-12-ocaml-4.08@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4 USER 1000:1000 RUN cd ~/opam-repository && (git cat-file -e 442eddb8a363418dcb02e519972818da08bb7cd4 || git fetch origin master) && git reset -q --hard 442eddb8a363418dcb02e519972818da08bb7cd4 && git log --no-decorate -n1 --oneline && opam update -u RUN opam depext -i dune WORKDIR /src RUN opam depext -i ocamlformat=0.27.0 COPY --chown=1000:1000 . /src/ RUN opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2) END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2025-05-11 16:49.49: Using cache hint "mefyl/timmy-ocaml/opam:debian-12-ocaml-4.08@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4-debian-12-4.08_opam-2.3-ocamlformat-442eddb8a363418dcb02e519972818da08bb7cd4" 2025-05-11 16:49.49: Using OBuilder spec: ((from ocaml/opam:debian-12-ocaml-4.08@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4) (user (uid 1000) (gid 1000)) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e 442eddb8a363418dcb02e519972818da08bb7cd4 || git fetch origin master) && git reset -q --hard 442eddb8a363418dcb02e519972818da08bb7cd4 && git log --no-decorate -n1 --oneline && opam update -u")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam depext -i dune")) (workdir /src) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam depext -i ocamlformat=0.27.0")) (copy (src .) (dst /src/)) (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")) ) 2025-05-11 16:49.49: Waiting for resource in pool OCluster 2025-05-11 16:49.49: Waiting for worker… 2025-05-11 16:49.50: Got resource from pool OCluster Building on doris.caelum.ci.dev All commits already cached HEAD is now at 4c16276 Merge subtree logistic. (from ocaml/opam:debian-12-ocaml-4.08@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4) Unable to find image 'ocaml/opam:debian-12-ocaml-4.08@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4' locally docker.io/ocaml/opam@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4: Pulling from ocaml/opam 031dfd3a3b8c: Pulling fs layer 031dfd3a3b8c: Download complete 031dfd3a3b8c: Pull complete Digest: sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4 Status: Downloaded newer image for ocaml/opam@sha256:23c85daf4eb9a91d154cf2f9fed47f4f9b9fa788adc9c1fc7f0802e3dc06d7c4 2025-05-11 16:52.26 ---> saved as "44ab722c6d76cc4aa083f99994b6eb04bd97004720a37e6316ca14ec9a9ee4aa" /: (user (uid 1000) (gid 1000)) /: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e 442eddb8a363418dcb02e519972818da08bb7cd4 || git fetch origin master) && git reset -q --hard 442eddb8a363418dcb02e519972818da08bb7cd4 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD 34a3fc46c3..0d013e603b master -> origin/master 442eddb8a3 Merge pull request #27761 from maiste/release-dune-3.18.1 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] Initialised default (at git+file:///home/opam/opam-repository): [INFO] opam 2.1 and 2.2 include many performance and security improvements over 2.0; please consider upgrading (https://opam.ocaml.org/doc/Install.html) Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). However, you may "opam upgrade" these packages explicitly, which will ask permission to downgrade or uninstall the conflicting packages. Nothing to do. # Run eval $(opam env) to update the current shell environment 2025-05-11 16:53.29 ---> saved as "2b4d57bfea760aa246bd3085b47c380147249138e623417b44e014cb82cda1dd" /: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam depext -i dune")) # Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian # No extra OS packages requirements found. # All required OS packages found. # Now letting opam install the packages The following actions will be performed: - install dune 3.18.1 <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> [dune.3.18.1] found in cache <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> installed dune.3.18.1 Done. # Run eval $(opam env) to update the current shell environment 2025-05-11 16:53.57 ---> saved as "457b790b55ad4c3d576846b293a282971100232ad7fc0da38e5048f75a7fbcd4" /: (workdir /src) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam depext -i ocamlformat=0.27.0")) # Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian # No extra OS packages requirements found. # All required OS packages found. # Now letting opam install the packages The following actions will be performed: - install dune-build-info 3.18.1 [required by ocamlformat-lib] - install sexplib0 v0.14.0 [required by base] - install cmdliner 1.3.0 [required by ocamlformat] - install menhirLib 20240715 [required by ocamlformat-lib] - install menhirCST 20240715 [required by menhir] - install ocamlbuild 0.16.1 [required by fpath, astring, uuseg] - install menhirSdk 20240715 [required by ocamlformat-lib] - install either 1.0.0 [required by ocamlformat-lib] - install ocaml-version 4.0.0 [required by ocamlformat-lib] - install camlp-streams 5.0.1 [required by ocamlformat-lib] - install csexp 1.5.2 [required by ocamlformat] - install seq base [required by re] - install ocamlfind 1.9.8 [required by ocp-indent, astring, fpath, uuseg] - install fix 20230505 [required by ocamlformat-lib] - install menhir 20240715 [required by ocamlformat-lib] - install dune-configurator 3.18.1 [required by base] - install re 1.11.0 [required by ocamlformat] - install topkg 1.0.8 [required by fpath, astring, uuseg] - install base-bytes base [required by ocp-indent] - install base v0.14.3 [required by ocamlformat-lib] - install uutf 1.0.4 [required by ocamlformat-lib] - install astring 0.8.5 [required by ocamlformat-lib] - install ocp-indent 1.8.1 [required by ocamlformat-lib] - install stdio v0.14.0 [required by ocamlformat-lib] - install uucp 15.0.0 [required by uuseg] - install fpath 0.7.3 [required by ocamlformat-lib] - install uuseg 15.0.0 [required by ocamlformat-lib] - install ocamlformat-lib 0.27.0 [required by ocamlformat] - install ocamlformat 0.27.0 ===== 29 to install ===== <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> [astring.0.8.5] found in cache [base.v0.14.3] found in cache [camlp-streams.5.0.1] found in cache [cmdliner.1.3.0] found in cache [csexp.1.5.2] found in cache [dune-build-info.3.18.1] found in cache [dune-configurator.3.18.1] found in cache [either.1.0.0] found in cache [fix.20230505] found in cache [fpath.0.7.3] found in cache [menhir.20240715] found in cache [menhirCST.20240715] found in cache [menhirLib.20240715] found in cache [menhirSdk.20240715] found in cache [ocaml-version.4.0.0] found in cache [ocamlbuild.0.16.1] found in cache [ocamlfind.1.9.8] found in cache [ocamlformat.0.27.0] found in cache [ocamlformat-lib.0.27.0] found in cache [ocp-indent.1.8.1] found in cache [re.1.11.0] found in cache [sexplib0.v0.14.0] found in cache [stdio.v0.14.0] found in cache [topkg.1.0.8] found in cache [uucp.15.0.0] found in cache [uuseg.15.0.0] found in cache [uutf.1.0.4] found in cache <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> installed seq.base -> installed camlp-streams.5.0.1 -> installed csexp.1.5.2 -> installed cmdliner.1.3.0 -> installed either.1.0.0 -> installed fix.20230505 -> installed menhirCST.20240715 -> installed menhirLib.20240715 -> installed menhirSdk.20240715 -> installed ocaml-version.4.0.0 -> installed re.1.11.0 -> installed sexplib0.v0.14.0 -> installed dune-build-info.3.18.1 -> installed dune-configurator.3.18.1 -> installed ocamlfind.1.9.8 -> installed base-bytes.base -> installed ocamlbuild.0.16.1 -> installed ocp-indent.1.8.1 -> installed base.v0.14.3 -> installed topkg.1.0.8 -> installed stdio.v0.14.0 -> installed uutf.1.0.4 -> installed astring.0.8.5 -> installed fpath.0.7.3 -> installed menhir.20240715 -> installed uucp.15.0.0 -> installed uuseg.15.0.0 -> installed ocamlformat-lib.0.27.0 -> installed ocamlformat.0.27.0 Done. <><> ocp-indent.1.8.1 installed successfully ><><><><><><><><><><><><><><><><><> => This package requires additional configuration for use in editors. Install package 'user-setup', or manually: * for Emacs, add these lines to ~/.emacs: (add-to-list 'load-path "/home/opam/.opam/4.08/share/emacs/site-lisp") (require 'ocp-indent) * for Vim, add this line to ~/.vimrc: set rtp^="/home/opam/.opam/4.08/share/ocp-indent/vim" # Run eval $(opam env) to update the current shell environment 2025-05-11 16:54.53 ---> saved as "c834b13f15d865d5960ac73b6948470e601187f159ec92dad38721ea8407ba59" /src: (copy (src .) (dst /src/)) 2025-05-11 16:54.53 ---> saved as "05f1c16ece752d8240a2c1f42dbba4851850fbb275ff1a77d0d2d89096f3b7d5" /src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")) File "timmy-timezones/lib/timmy_timezones.ml", line 1, characters 0-0: diff --git a/_build/default/timmy-timezones/lib/timmy_timezones.ml b/_build/default/timmy-timezones/lib/.formatted/timmy_timezones.ml index 5171ed5..9ea0163 100644 --- a/_build/default/timmy-timezones/lib/timmy_timezones.ml +++ b/_build/default/timmy-timezones/lib/.formatted/timmy_timezones.ml @@ -13,7 +13,8 @@ let of_timere timere_tz : Timmy.Timezone.t = | x -> x in Timedesc.offset_from_utc timedesc - |> Timedesc.min_of_local_date_time_result |> Timedesc.Timestamp.to_float_s + |> Timedesc.min_of_local_date_time_result + |> Timedesc.Timestamp.to_float_s |> Float.to_int and offset_calendar_time_s ~date:(year, month, day) ~time:(hour, minute, second) = @@ -29,7 +30,8 @@ let of_timere timere_tz : Timmy.Timezone.t = | x -> x in Timedesc.offset_from_utc timedesc - |> Timedesc.min_of_local_date_time_result |> Timedesc.Timestamp.to_float_s + |> Timedesc.min_of_local_date_time_result + |> Timedesc.Timestamp.to_float_s |> Float.to_int in Timmy.Timezone.of_implementation ~offset_timestamp_s ~offset_calendar_time_s File "timmy/tests/clock_tests.ml", line 1, characters 0-0: diff --git a/_build/default/timmy/tests/clock_tests.ml b/_build/default/timmy/tests/.formatted/clock_tests.ml index 6ee3c7b..5ee31a5 100644 --- a/_build/default/timmy/tests/clock_tests.ml +++ b/_build/default/timmy/tests/.formatted/clock_tests.ml @@ -21,14 +21,16 @@ let daylight_savings ?(timezone = Clock.timezone_local) () = time_t) offset @@ Timmy.Timezone.gmt_offset_seconds_at_datetime ~date ~time timezone - / 60 / 60 + / 60 + / 60 and () = Alcotest.(check ~here:[%here] int) (Fmt.str "UTC offset at %a" Timmy.Time.pp timestamp) offset @@ Timmy.Timezone.gmt_offset_seconds_at_time timezone (Timmy.Time.to_ptime timestamp) - / 60 / 60 + / 60 + / 60 and () = Alcotest.(check ~here:[%here] date) "date roundtrip" date_t @@ Timmy.Date.of_time ~timezone timestamp File "timmy/tests/schemas.schematic.ml", line 1, characters 0-0: diff --git a/_build/default/timmy/tests/schemas.schematic.ml b/_build/default/timmy/tests/.formatted/schemas.schematic.ml index 28aacd0..b8ff285 100644 --- a/_build/default/timmy/tests/schemas.schematic.ml +++ b/_build/default/timmy/tests/.formatted/schemas.schematic.ml @@ -34,19 +34,21 @@ let daytime () = (Result.ok_or_failwith @@ Timmy.Daytime.make ~hours:13 ~minutes:37 ~seconds:42) (`O - [ - ("hours", `Float 13.); ("minutes", `Float 37.); ("seconds", `Float 42.); - ]) + [ + ("hours", `Float 13.); + ("minutes", `Float 37.); + ("seconds", `Float 42.); + ]) and () = try let res = Schematic.Json.decode Timmy.Daytime.schema (`O - [ - ("hours", `Float (-1.)); - ("minutes", `Float 0.); - ("seconds", `Float 0.); - ]) + [ + ("hours", `Float (-1.)); + ("minutes", `Float 0.); + ("seconds", `Float 0.); + ]) in Alcotest.( check ~here:[%here] File "timmy-lwt/lib/src/timmy_lwt.ml", line 1, characters 0-0: diff --git a/_build/default/timmy-lwt/lib/src/timmy_lwt.ml b/_build/default/timmy-lwt/lib/src/.formatted/timmy_lwt.ml index dfb3c9b..9e72c17 100644 --- a/_build/default/timmy-lwt/lib/src/timmy_lwt.ml +++ b/_build/default/timmy-lwt/lib/src/.formatted/timmy_lwt.ml @@ -1,7 +1,8 @@ module Ticker = Ticker let sleep seconds = - Timmy_lwt_platform.sleep @@ Ptime.Span.to_float_s + Timmy_lwt_platform.sleep + @@ Ptime.Span.to_float_s @@ Timmy.Span.to_ptime seconds let yield = Timmy_lwt_platform.yield File "timmy/lib/src/date.ml", line 1, characters 0-0: diff --git a/_build/default/timmy/lib/src/date.ml b/_build/default/timmy/lib/src/.formatted/date.ml index 271953f..f1bb73e 100644 --- a/_build/default/timmy/lib/src/date.ml +++ b/_build/default/timmy/lib/src/.formatted/date.ml @@ -62,7 +62,11 @@ let to_int { year; month; day } = let m = month + (12 * a) - 3 in day + (((153 * m) + 2) / 5) - + (365 * y) + (y / 4) - (y / 100) + (y / 400) - 32045 + + (365 * y) + + (y / 4) + - (y / 100) + + (y / 400) + - 32045 let add_days date days = of_int @@ (to_int date + days) File "timmy/lib/src/time.mli", line 1, characters 0-0: diff --git a/_build/default/timmy/lib/src/time.mli b/_build/default/timmy/lib/src/.formatted/time.mli index 4437e88..ef40102 100644 --- a/_build/default/timmy/lib/src/time.mli +++ b/_build/default/timmy/lib/src/.formatted/time.mli @@ -41,7 +41,8 @@ include module type of O (** {2 Pretty-print} *) -(** [pp f date] prints [date] to [f] in an unspecified, human readable format. *) +(** [pp f date] prints [date] to [f] in an unspecified, human readable format. +*) val pp : t Fmt.t (** {2 String} *) File "timmy/lib/src/daytime.ml", line 1, characters 0-0: diff --git a/_build/default/timmy/lib/src/daytime.ml b/_build/default/timmy/lib/src/.formatted/daytime.ml index 098db0e..5031b0e 100644 --- a/_build/default/timmy/lib/src/daytime.ml +++ b/_build/default/timmy/lib/src/.formatted/daytime.ml @@ -47,8 +47,8 @@ let pp f { hours; minutes; seconds } = let pp_opt ?(format = `_24) ?(precision = `Seconds) ?(size = `Short) () f { hours; minutes; seconds } = - let hours_format : - type x. unit -> (int -> x, Formatter.t, unit, unit, unit, x) format6 = + let hours_format : type x. + unit -> (int -> x, Formatter.t, unit, unit, unit, x) format6 = match format with `_24 -> fun () -> "%02i" | `_12 -> fun () -> "%i" and hours_formatted = match (format, hours) with File "timmy/lib/src/daytime.mli", line 1, characters 0-0: diff --git a/_build/default/timmy/lib/src/daytime.mli b/_build/default/timmy/lib/src/.formatted/daytime.mli index a89ca70..d3071ca 100644 --- a/_build/default/timmy/lib/src/daytime.mli +++ b/_build/default/timmy/lib/src/.formatted/daytime.mli @@ -31,7 +31,8 @@ val with_daytime : timezone:Timezone.t -> t -> Time.t -> Time.t (** [truncate_seconds daytime] is [daytime] with seconds set to [0]. *) val truncate_seconds : t -> t -(** [truncate_minutes daytime] is [daytime] with minutes and seconds set to [0]. *) +(** [truncate_minutes daytime] is [daytime] with minutes and seconds set to [0]. +*) val truncate_minutes : t -> t (** {2 Time conversions} *) File "timmy/lib/src/date.mli", line 1, characters 0-0: diff --git a/_build/default/timmy/lib/src/date.mli b/_build/default/timmy/lib/src/.formatted/date.mli index 16b2af5..8afd6cc 100644 --- a/_build/default/timmy/lib/src/date.mli +++ b/_build/default/timmy/lib/src/.formatted/date.mli @@ -17,26 +17,21 @@ val make : year:int -> month:Month.t -> day:int -> (t, string) Result.t worrying about month and year boundaries and readjust the final results. Month below 1 will underflow to previous years and month above 12 will - overflow to the next years, eg. [make ~year:2021 ~month:-1 - ~day:1 ()] is + overflow to the next years, eg. [make ~year:2021 ~month:-1 ~day:1 ()] is [{year = 2020; month = 11; day = 1}] and - [make - ~year:2021 ~month:25 ~day:1 ()] is - [{year = 2023; month = 1; day = - 1}]. + [make ~year:2021 ~month:25 ~day:1 ()] is + [{year = 2023; month = 1; day = 1}]. Unless [truncate_day] is true, days below 1 will underflow to the previous months and days past the last day of the month will overflow to the next - months, eg. [make_overflow ~year:1985 ~month:2 - ~day:29 ()] is + months, eg. [make_overflow ~year:1985 ~month:2 ~day:29 ()] is [{year = 1985; month = 3; day = 1}]. If [truncate_day] is true, the day is clipped to the valid range for the current month. This is useful to do arithmetics on months without risking the day overflowing to the next months if the new month is shorter, eg. [make_overflow ~day_truncate:true ~year:1985 ~month:(1 + 1) ~day:31 ()] is - [{year = 1985; - month = 2; day = 28}]. *) + [{year = 1985; month = 2; day = 28}]. *) val make_overflow : ?day_truncate:bool -> year:int -> month:int -> day:int -> unit -> t File "timmy/tests/test.ml", line 1, characters 0-0: diff --git a/_build/default/timmy/tests/test.ml b/_build/default/timmy/tests/.formatted/test.ml index 62772ba..a4083e3 100644 --- a/_build/default/timmy/tests/test.ml +++ b/_build/default/timmy/tests/.formatted/test.ml @@ -214,7 +214,8 @@ module Span = struct (60 * 60 * 24 * 7) and () = check ~here:[%here] "Milliseconds are printed correctly" "0.003s" - @@ Timmy.Span.of_ptime @@ Option.value_exn + @@ Timmy.Span.of_ptime + @@ Option.value_exn @@ Ptime.Span.of_float_s 0.003 and () = check_seconds ~here:[%here] "A composite duration is printed correctly" @@ -225,11 +226,13 @@ module Span = struct and () = let span = Ptime.Span.of_float_s 0.123 in check ~here:[%here] "Milliseconds are printed correctly" "0.123s" - @@ Timmy.Span.of_ptime @@ Option.value_exn span + @@ Timmy.Span.of_ptime + @@ Option.value_exn span and () = let span = Ptime.Span.of_float_s 1.234 in check ~here:[%here] "Milliseconds are printed correctly" "1.234s" - @@ Timmy.Span.of_ptime @@ Option.value_exn span + @@ Timmy.Span.of_ptime + @@ Option.value_exn span and () = check ~here:[%here] "Multiplied correctly" "0.100s" @@ Timmy.Span.(seconds 1 *. 0.1) dune build @fmt failed "/usr/bin/env" "bash" "-c" "opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)" failed with exit status 2 2025-05-11 16:54.54: Job failed: Failed: Build failed