-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.0.0 #311
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 None A solution is to replace type endpoint =
| Dns of [ `host ] Domain_name.t
| Ip of Ipaddr.t And provide finally: val resolve : endpoint -> resolvers -> (flow, [> error ]) result io It 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
async/conduit_async_ssl.mli
Outdated
@@ -48,11 +48,11 @@ val protocol_with_ssl : | |||
(context * 'edn, 'flow with_ssl) Client.protocol | |||
|
|||
val service_with_ssl : | |||
('cfg, 't * 'flow) Service.service -> | |||
('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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is that protocol still needed here?
This is the main PR where I replaced all conduit by
tuyau
. Currently, thelwt-unix
implementation is missing and should be provided as before. Otherwise, it seems good to prepare a plan about a possible release of 3.0.0.