Opinionated OCaml linter with Merlin integration for code quality, naming conventions, and style checks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

bottler, s3: byte-level upload progress

Bottler's upload progress bar used to tick per-bottle, which looks
frozen for long single-bottle uploads (e.g. a 9 MB bottle over a
flow-control-limited H2 link). Switch the Step 2 / Step 4 progress
bars to count bytes: total = sum of bottle sizes, tick on every disk
read the HTTP layer pulls out of the File body.

S3.put_object_file gains ?on_progress:(int -> unit), wired through by
wrapping the file source with a byte counter before handing it to
Requests.Body.of_stream. Bottler.Upload.upload gains a matching
?on_bytes callback and Release.run feeds it into Tty.Progress.set.

Also reconcile ocaml-xmlt with the recent Textloc refactor:
Xmlt.Error is a module equation to Textloc.Error, the Xmlt.Error
exception aliases Textloc.Error in the implementation, and
ocaml-s3's size_codec uses Xmlt.Error.msgf for decode failures.

+4 -1
+1
dune-project
··· 28 28 fmt 29 29 astring 30 30 sexpt 31 + textloc 31 32 tty 32 33 vlog 33 34 (alcotest :with-test)))
+2 -1
lib/dune
··· 16 16 tty 17 17 jsont 18 18 jsont.bytesrw 19 - sexpt)) 19 + sexpt 20 + textloc)) 20 21 21 22 (rule 22 23 (target examples.ml)
+1
merlint.opam
··· 23 23 "fmt" 24 24 "astring" 25 25 "sexpt" 26 + "textloc" 26 27 "tty" 27 28 "vlog" 28 29 "alcotest" {with-test}