Skip to content
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

+lwt.3.0.0 - concurrency library (the real PR) #8956

Merged
merged 7 commits into from
Apr 19, 2017

Conversation

aantron
Copy link
Contributor

@aantron aantron commented Apr 12, 2017

#8929, but without lwt_ssl, lwt_react, and lwt_glib.

@camelus
Copy link
Contributor

camelus commented Apr 12, 2017

❌ opam-lint errors 0d06886
  • 0install.2.6.2 has errors:

    • error 25: Missing field 'authors'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
  • conf-glib-2.1 has errors:

    • error 23: Missing field 'maintainer'
    • error 25: Missing field 'authors'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
  • dns.0.4.0 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
  • dns.0.5.0 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "async"
  • dns.0.5.1 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "async"
  • dns.0.6.0 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "async"
  • dns.0.6.1 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • lambda-term.1.2 has errors:

    • error 24: Field 'maintainer' has the old default value
    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
  • dns.0.6.2 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • dns.0.7.0 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • dns.0.8.0 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • dns.0.8.1 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • dns.0.9.0 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • dns.0.9.1 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "base-unix"
  • lambda-term.1.4 has some warnings:

    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
  • lambda-term.1.5 has some warnings:

    • warning 36: Missing field 'bug-reports'
  • lambda-term.1.6 has some warnings:

    • warning 36: Missing field 'bug-reports'
  • lambda-term.1.7 has some warnings:

    • warning 36: Missing field 'bug-reports'
  • lambda-term.1.8 has some warnings:

    • warning 36: Missing field 'bug-reports'
  • lwt.3.0.0 has some warnings:

    • warning 41: Some packages are mentionned in package scripts of features,
      but there is no dependency or depopt toward them: "lablgtk", "lwt_glib",
      "lwt_react", "lwt_ssl", "react", "ssl"
  • These packages passed lint tests: 0install.2.10, 0install.2.11, 0install.2.12.1, 0install.2.12, 0install.2.9.1, conduit.0.10.0, conduit.0.11.0, conduit.0.12.0, conduit.0.13.0, conduit.0.14.0, conduit.0.14.1, conduit.0.14.2, conduit.0.14.3, conduit.0.14.4, conduit.0.14.5, conduit.0.15.0, conduit.0.5.0, conduit.0.5.1, conduit.0.6.0, conduit.0.6.1, conduit.0.7.0, conduit.0.7.1, conduit.0.7.2, conduit.0.8.0, conduit.0.8.1, conduit.0.8.2, conduit.0.8.4, conduit.0.8.5, conduit.0.8.6, conduit.0.8.7, conduit.0.8.8, conduit.0.9.0, dns.0.10.0, dns.0.11.0, dns.0.12.0, dns.0.13.0, dns.0.14.0, dns.0.14.1, dns.0.15.0, dns.0.15.1, dns.0.15.2, dns.0.15.3, dns.0.16.0, dns.0.17.0, dns.0.18.0, dns.0.18.1, dns.0.19.0, dns.0.19.1, dns.0.20.0, lambda-term.1.10.1, lambda-term.1.10, lambda-term.1.9, lwt-parallel.0.1.0, lwt-parallel.0.1.1, lwt_glib.1.0.1, lwt_react.1.0.1, lwt_ssl.1.0.1, obus.1.1.5, obus.1.1.6, obus.1.1.7, ocsigenserver.2.5, ocsigenserver.2.6, ocsigenserver.2.7, ocsigenserver.2.8, protocol-9p.0.1, protocol-9p.0.2, protocol-9p.0.3, protocol-9p.0.4.0, protocol-9p.0.5.0, protocol-9p.0.5.1, protocol-9p.0.5.2, protocol-9p.0.6.0, protocol-9p.0.7.2, protocol-9p.0.7.3, protocol-9p.0.7.4, protocol-9p.0.8.0, protocol-9p.0.9.0, tcpip.1.1.0, tcpip.1.1.1, tcpip.1.1.2, tcpip.1.1.3, tcpip.1.1.5, tcpip.1.1.6, tcpip.2.0.0, tcpip.2.0.1, tcpip.2.0.2, tcpip.2.0.3, tcpip.2.1.0, tcpip.2.2.0, tcpip.2.2.1, tcpip.2.2.2, tcpip.2.2.3, tcpip.2.3.0, tcpip.2.3.1, tcpip.2.4.0, tcpip.2.4.1, tcpip.2.4.2, tcpip.2.4.3, tcpip.2.5.0, tcpip.2.5.1, tcpip.2.6.0, tcpip.2.6.1, tcpip.2.7.0, tcpip.2.8.0, tcpip.2.8.1, tcpip.3.0.0, tcpip.3.1.0


✅ Installability check (6502 → 6507)
  • new installable packages (5): conf-glib-2.1 lwt.3.0.0 lwt_glib.1.0.1
    lwt_react.1.0.1 lwt_ssl.1.0.1

@aantron
Copy link
Contributor Author

aantron commented Apr 12, 2017

The failure in Alpine looks related to ocamlfind, not Lwt. Some revdeps failed to build due to Lwt. I'll add constraints this evening or tomorrow.

@avsm
Copy link
Member

avsm commented Apr 12, 2017

That weird, conf-m4 should pull in the binary. Looking...

@aantron
Copy link
Contributor Author

aantron commented Apr 13, 2017

Added constraints.

conduit dns lwt-parallel protocol-9p tcpip don't build against Lwt 3.0.0 because Lwt_unix.bind now evaluates to a unit Lwt.t instead of just unit. Attn.: @rgrinberg @hannesm @yomimono @djs55 @ivg @talex5. conduit in particular is blocking a large number of packages.

lambda-term obus ocsigenserver don't build because they use package name lwt.react instead of lwt_react. Since they won't build until we merge in the new lwt_react, I won't ping the maintainers for now.

I think everyone pinged has already seen ocsigen/lwt#308, but linked it again for easy reference.

@aantron
Copy link
Contributor Author

aantron commented Apr 13, 2017

Ok, it looks like the remaining revdeps failures are not caused by Lwt.

@bactrian
Copy link
Collaborator

bactrian commented Apr 13, 2017

That's a very satisfying amount of green in the revdeps. Thanks for all the effort with the upper bounds. I've fixed a minor one in #8967 and reported several of the other failures to upstream maintainers. What's the next step to merge?

edit: this is @avsm logged into his bot's account by mistake

@aantron
Copy link
Contributor Author

aantron commented Apr 13, 2017

:D I love the bot's full name.

I guess this PR could be merged now, but I'd rather merge the extra packages at the same time, so that Lwt 3.0.0 doesn't become installable without them. This is slightly important, as then people using the older package names (lwt.ssl) can immediately change them to lwt_ssl – even though the number of people that are actually likely to be affected by a small gap in the packages' availability is probably zero.

I think we should decide what to do about depexts on glib. Previously, lwt_glib relied on lablgtk, which has a depext on gtk, which pulls in glib. Maybe we should create conf-glib and/or conf-gtk packages? Alternatively, I could just make lwt_glib depend on lablgtk again for the time being.

I'll then add the extra packages (into this PR?), wait for another revdeps build, and add any required constraints.

@aantron
Copy link
Contributor Author

aantron commented Apr 13, 2017

The pkg-config name of glib is glib-2.0, and this choice makes me wonder if an OPAM package should be glib or glib-2.0. The GLib people might be communicating some kind of intent with the explicit -2.0.

aantron added 2 commits April 15, 2017 21:53
Its build system makes a reference to lwt.syntax, which is available
only when package lwt detects that package camlp4 is installed.
@aantron aantron changed the title +lwt.3.0.0 - concurrency library (base package only) +lwt.3.0.0 - concurrency library (the real PR) Apr 16, 2017
@aantron
Copy link
Contributor Author

aantron commented Apr 16, 2017

I've made a conf-glib-2 package locally, and so far it's working with Homebrew. I'll test it on Alpine, Ubuntu, and maybe some other distros later.

However, I looked in the build logs, and as of right before I pushed the above two commits, lambda-term.1.6 was failing due to missing lwt.syntax. I added the missing dependency. I then added the two extra packages lwt_ssl and lwt_react. This should only affect building of 0install, so it should be pretty low-impact. I'll wait to see the build outputs for these, then add the conf- package and the lwt_glib that depends on it.

@aantron
Copy link
Contributor Author

aantron commented Apr 16, 2017

(the remaining failures looked unrelated to Lwt)

@aantron
Copy link
Contributor Author

aantron commented Apr 17, 2017

AFAICT this is ready for merge.

  • The build is now broken due to old versions of conduit, dns, tcpip, over issues that don't look related to Lwt.
  • The last revdeps build that ran showed no errors apparently related to Lwt.
  • I've since added the extra packages to this PR, but only one package depends on them: 0install on lwt_react and lwt_glib. 0install's build system makes reference to lwt.glib, which doesn't exist in Lwt 3.0.0. I added the appropriate constraints (cc @talex5), so I think we could expect a revdeps build to succeed.

We can force a revdeps build to run with the extra packages, by merging the constraints on conduit, dns, tcpip separately, but I think we've learned what we can from the CI at this point. With the 0install constraints, there are no packages that depend on the new versions of the extra packages.

I'm a little worried that the latest CI build isn't building the 0install packages whose opam files were changed, however.

@avsm
Copy link
Member

avsm commented Apr 19, 2017

Thanks! Merging this -- I'll fix up the unrelated issues you found separately.

@avsm avsm merged commit 7a0a088 into ocaml:master Apr 19, 2017
@aantron
Copy link
Contributor Author

aantron commented Apr 19, 2017

Many thanks!

@aantron
Copy link
Contributor Author

aantron commented Apr 19, 2017

Pinging @diml @vouillon @vasilisp about obus and ocsigenserver above – these need to depend on OPAM package lwt_react, and refer to Findlib package lwt_react instead of lwt.react to be compatible with Lwt. I was wrong above about not building until 3.0.0 is merged – Findlib package lwt_react requires Lwt >= 2.7.0 and any version of OPAM package lwt_react. What changed in Lwt 3.0.0 is lwt.react no longer exists.

@djs55 already submitted an appropriate PR for lambda-term (thanks!).

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.

4 participants