Monorepo management for opam overlays
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.

+1 -2
+1 -2
lib/dune_project.ml
··· 21 21 22 22 module Sexp = Sexpt.Sexp 23 23 24 - let err_parse err = 25 - Error (Fmt.str "S-expression parse error: %s" (Sexp.Error.to_string err)) 24 + let err_parse msg = Error (Fmt.str "S-expression parse error: %s" msg) 26 25 27 26 (** Extract string from a Sexp.Atom, or None if it's a List *) 28 27 let atom_string = function Sexp.Atom s -> Some s | Sexp.List _ -> None