3.0.0#311
Conversation
|
It seems that the CI is happy with my new test: a ping-pong server without and with TLS. I did not yet implement the I currently on a reverse-dependency work to smoothly move to the new interface. |
|
Considering this TODO before any merge:
|
|
I would find cohttp, git and websocket highly useful :)
|
it's not anymore. |
|
Ahah, then datakit would be a welcome inclusion also! :) |
|
TCP |
|
We re-implement the support of SSL on
|
|
Support of |
|
For more context and about produced implementation of protocols, I stress-test |
|
what happened to vchan? I'm not sure whether vchan support is used by anyone (or needed - and for sure can be re-added later if desired). |
As a new principle of It's the same for any others protocols such as TCP, TLS or SSL even if the distribution implements them - I want to re-implement them to avoid a regression on the |
|
I finished to support SSL and TLS on
|
|
Ok,
|
What is the problem? Each platform's log page displays a shell script you can run to reproduce the build on your local machine. |
The problem is a bit hard to highlight. Currently tests want to start several ping-pong servers and clients (with several protocols, TCP, TCP + SSL and TCP + TLS) and it seems that sometimes, I added EDIT: a such situation seems more reproducible with mirage/ocaml-cohttp#692 where we launch tests of |
|
|
1bde31c to
6b73b9b
Compare
|
The PR is cleaned. The support of Windows is a bit tricky. We currently can build and install I consider the PR as done and ready for reviews. |
|
A high usage of In the case of where we need to be connected to a peer which does not have a proper domain-name but only an IP address, it's difficult to tell let resolvers =
Conduit.empty
|> Conduit.add TCP.protocol @@ fun domain_name -> match Domain_name.to_string domain_name with
| "localhost" -> return (Some Ipaddr.V4.localhost)
| "any" -> return (Some Ipaddr.V4.any)
| _ -> return NoneA solution is to replace type endpoint =
| Dns of [ `host ] Domain_name.t
| Ip of Ipaddr.tAnd provide finally: val resolve : endpoint -> resolvers -> (flow, [> error ]) result ioIt does not change too much the core but it's an other indirection about what the user need to give to us to start a connection (note that |
|
So I think it's time to merge this PR, waiting the CI (which should be green). We reach the point where I can not spend much more time to maintain all PRs according this new version and @mirage/core agreed with this new version. The next real plan is to propose an other PR which will implement an The merge will invalidate #319 (which requires an new version of |
avsm
left a comment
There was a problem hiding this comment.
Lgtm. In terms of next steps, lets:
- merge to master (I will do so now)
- add the endpoint/ip functionality in a separate PR as you suggest
- prepare a migration guide from conduit 2, which @hannesm had some ideas for as he has ported his live unikernels
- post this on discuss.ocaml.org and add to the CHANGES file to this repo
- merge the various cohttp changes (cc @mseri) into cohttp master
- then cut releases into opam of conduit and cohttp at the same time
|
Awesome job! |
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API. An other document exists to understand the goal of Conduit [here](https://mirage.github.io/ocaml-conduit/conduit/readme.html).
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API. An other document exists to understand the goal of Conduit [here](https://mirage.github.io/ocaml-conduit/conduit/readme.html).
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API. An other document exists to understand the goal of Conduit [here](https://mirage.github.io/ocaml-conduit/conduit/readme.html).
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API. An other document exists to understand the goal of Conduit [here](https://mirage.github.io/ocaml-conduit/conduit/readme.html).
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API.
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API.
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API.
…wt, conduit-async-tls, conduit-async, conduit, conduit-async-ssl and conduit-lwt-ssl (3.0.0) CHANGES: * **breaking change** - New version of `conduit`. Most of the new API has a description on the pull-request [mirage/ocaml-conduit#311](mirage/ocaml-conduit#311). Documentation is updated as well with a small HOW-TO (available [here](https://mirage.github.io/ocaml-conduit/conduit/howto.html)) which describes the new API.
| ('cfg, 't, 'flow) Service.service -> | ||
| reader:('flow -> Reader.t) -> | ||
| writer:('flow -> Writer.t) -> | ||
| ('edn, 'flow with_ssl) Client.protocol -> |
There was a problem hiding this comment.
is that protocol still needed here?
This is the main PR where I replaced all conduit by
tuyau. Currently, thelwt-uniximplementation is missing and should be provided as before. Otherwise, it seems good to prepare a plan about a possible release of 3.0.0.