Skip to content

+ extlib 1.7.8#17998

Merged
kit-ty-kate merged 6 commits intoocaml:masterfrom
ygrek:extlib
Jan 20, 2021
Merged

+ extlib 1.7.8#17998
kit-ty-kate merged 6 commits intoocaml:masterfrom
ygrek:extlib

Conversation

@ygrek
Copy link
Copy Markdown
Contributor

@ygrek ygrek commented Jan 20, 2021

1.7.8 (2021-01-19)

  • sync with OCaml 4.12
  • breaking change: ExtList.find_map type updated to match stdlib (following deprecation in previous release)
  • breaking change: minimal (recommended) build of extlib now excludes Base64 module

@camelus
Copy link
Copy Markdown
Contributor

camelus commented Jan 20, 2021

Commit: 06f28d1

A pull request by opam-seasoned @ygrek.

🌤️ opam-lint warnings 06f28d1
  • extprot.1.1.1 has some warnings:

    • warning 25: Missing field 'authors'
    • warning 36: Missing field 'bug-reports'
  • extprot.1.1.2 has some warnings:

    • warning 25: Missing field 'authors'
    • warning 36: Missing field 'bug-reports'
  • These packages passed lint tests: dose3.4.3, dose3.5.0.1-1, dose3.5.0.1, dose3.5.0, extlib.1.7.8, extprot.1.2.0, extprot.1.3.0, extprot.1.4.0, extprot.1.5.0, extprot.1.6.0, google-drive-ocamlfuse.0.6.21, google-drive-ocamlfuse.0.6.22, google-drive-ocamlfuse.0.6.23, google-drive-ocamlfuse.0.6.26, google-drive-ocamlfuse.0.7.1, google-drive-ocamlfuse.0.7.11, google-drive-ocamlfuse.0.7.13, google-drive-ocamlfuse.0.7.14, google-drive-ocamlfuse.0.7.15, google-drive-ocamlfuse.0.7.16, google-drive-ocamlfuse.0.7.17, google-drive-ocamlfuse.0.7.18, google-drive-ocamlfuse.0.7.19, google-drive-ocamlfuse.0.7.2, google-drive-ocamlfuse.0.7.20, google-drive-ocamlfuse.0.7.21, google-drive-ocamlfuse.0.7.22, google-drive-ocamlfuse.0.7.23, google-drive-ocamlfuse.0.7.24, google-drive-ocamlfuse.0.7.3, google-drive-ocamlfuse.0.7.4, google-drive-ocamlfuse.0.7.5, google-drive-ocamlfuse.0.7.6, google-drive-ocamlfuse.0.7.7, google-drive-ocamlfuse.0.7.8, google-drive-ocamlfuse.0.7.9, haxe.4.0.0, haxe.4.0.1, haxe.4.0.2, haxe.4.0.3, haxe.4.0.5, haxe.4.1.1


☀️ Installability check (+1)
  • new installable packages (1): extlib.1.7.8

@kit-ty-kate
Copy link
Copy Markdown
Member

Some packages were broken by the breaking changes.

cc @abate for dose3 (I wrote a comment already in !2)
cc @astrada for google-drive-ocamlfuse
cc @andyli for haxe
cc @mfp for extprot

Fixing these issues is required for get the compatibility with OCaml 4.12.

Thanks!

@kit-ty-kate kit-ty-kate merged commit 5491aa2 into ocaml:master Jan 20, 2021
@ygrek
Copy link
Copy Markdown
Contributor Author

ygrek commented Jan 20, 2021

implicitly uses Base64, previously pulled by extlib

to clarify: extlib has implementation of Base64 module. There is also a separate opam package base64 (unrelated to extlib) which has much more elaborate implementation of base64. Due to all extlib modules being at top-level of the namespace - there was a name conflict which prevented using extlib and base64 opam packages in the same project. In this release extlib drops Base64 from the minimal build (but it is still available in the full build, opam package extlib-compat) to avoid the above problem, recommended solution is to switch to standalone base64 implementation. Short-term solution may be to use extlib-compat (but I stopped uploading it to opam for the lack of interest, let me know if it is needed).

@kit-ty-kate
Copy link
Copy Markdown
Member

ah.. Looks like I made a bad judgement then.

This is a rather large breakage for a point release, I'm rather surprised here.

@kit-ty-kate
Copy link
Copy Markdown
Member

Mh, thinking about it a bit more, it makes sense if taken from the point of vue of extlib + extlib-compat I guess. I hadn't realized this was the goal of extlib-compat.

Could you also send a PR for extlib-compat.1.7.8? that'd be wonderful. I'll handle the addition of | extlib-compat everywhere if you don't have the time to do that

@ygrek
Copy link
Copy Markdown
Contributor Author

ygrek commented Jan 20, 2021

extlib has inherent namespacing problem, and reducing number of modules (ideally leaving only Ext* ones) is one way to solve it eventually. Hence, I think it is best for ecosystem if dependent projects eventually migrated off these modules. I will upload extlib-compat.

@ygrek
Copy link
Copy Markdown
Contributor Author

ygrek commented Jan 20, 2021

actually I just realized that probably easiest way to solve packaging/conflicts issues may be to provide one-module extlib-base64 extlib-utf8 etc libraries (best in the sense that namespacing problem remains, but extlib choices will not create new problems for existing code)

@ygrek ygrek mentioned this pull request Jan 20, 2021
astrada added a commit to astrada/google-drive-ocamlfuse that referenced this pull request Jan 20, 2021
Use base64 encoding from Cryptokit instead of extlib, because extlib
1.7.8 removed module Base64. See ocaml/opam-repository#17998
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants