Skip to content

+lwt.2.7.0 - concurrency library#8195

Closed
aantron wants to merge 3 commits into
ocaml:masterfrom
aantron:lwt.2.7.0
Closed

+lwt.2.7.0 - concurrency library#8195
aantron wants to merge 3 commits into
ocaml:masterfrom
aantron:lwt.2.7.0

Conversation

@aantron
Copy link
Copy Markdown
Contributor

@aantron aantron commented Jan 3, 2017

See the changelog. This release prepares Lwt for some minor breaking changes around 1 April. See notice.

@camelus
Copy link
Copy Markdown
Contributor

camelus commented Jan 3, 2017

❌ opam-lint errors 755e39d
  • cowabloga.0.0.1 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.2 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.3 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.4 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.5 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.6 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.7 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.8 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • cowabloga.0.0.9 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • release.1.1.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'
  • usb.1.3.0 has errors:

    • error 25: Missing field 'authors'
    • warning 36: Missing field 'bug-reports'
    • warning 37: Missing field 'dev-repo'
  • xe.0.6.0 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • xe.0.6.2 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • xe.0.6.3 has errors:

    • error 25: Missing field 'authors'
    • error 35: Missing field 'homepage'
    • warning 36: Missing field 'bug-reports'
  • lwt.2.7.0 has some warnings:

    • warning 41: Some packages are mentionned in package scripts of features, but there is no
      dependency or depopt toward them: "lwt_glib", "lwt_react", "lwt_ssl"
  • These packages passed lint tests: cowabloga.0.1.0, cowabloga.0.2.0, cowabloga.0.2.1, dog.0.1.0, dog.0.2.0, dog.0.2.1, tlstunnel.0.1.0, tlstunnel.0.1.1, tlstunnel.0.1.2, tlstunnel.0.1.3, vpnkit.0.0.0


✅ Installability check (5949 → 5950)
  • new installable packages (1): lwt.2.7.0

@avsm
Copy link
Copy Markdown
Member

avsm commented Jan 3, 2017

notes from the revdeps build in CI:

  • cowabloga fails to build due to deprecation warnings, so needs upper bound:
# File "lib_test/site.ml", line 20, characters 2-14:
# Warning 3: deprecated: Lwt_unix.run
#  Use Lwt_main.run.
# File "lib_test/site.ml", line 1:
# Error: Some fatal warnings were triggered (1 occurrences)
# Command exited with code 2.
# Makefile:18: recipe for target 'all' failed

same problem for dog:

# File "src/main.ml", line 51, characters 2-14:
# Warning 3: deprecated: Lwt_unix.run
#  Use Lwt_main.run.
# File "src/main.ml", line 1:
# Error: Some fatal warnings were triggered (1 occurrences)

iocamljs-kernel may need an upper bound too:

# File "iocaml.ml", line 220, characters 18-31:
# Warning 3: deprecated: String.create
# Use Bytes.create instead.
# File "iocaml.ml", line 222, characters 12-19:
# Warning 3: deprecated: String.set
# Use Bytes.set instead.
# Error for package iocaml
# Fatal error: exception Fl_package_base.No_such_package("iocaml", "")
# Fatal error: exception Failure("Error: jsoo_mkcmis -o exported-unit.cmis.js iocaml /home/opam/.opam/4.04.0/lib/ocaml/compiler-libs/outcometree.cmi /home/opam/.opam/4.04.0/lib/ocaml/compiler-libs/topdirs.cmi /home/opam/.opam/4.04.0/lib/ocaml/compiler-libs/toploop.cmi")
# make: *** [min] Error 2

revdep build continues at https://ci.ocaml.io/ocaml/opam-repository/pr/8195

@aantron
Copy link
Copy Markdown
Contributor Author

aantron commented Jan 3, 2017

Will add bounds on cowabloga and dog. FTR these packages were noticed in ocsigen/lwt#107 (comment), Lwt 2.7.0 just adds an actual deprecation warning to go with the pre-existing deprecation of Lwt_unix.run. The iocamljs-kernel warning does not look related to Lwt.

@avsm
Copy link
Copy Markdown
Member

avsm commented Jan 3, 2017

The OPAM2 CI failures are due to ocaml/opam#2806

@aantron
Copy link
Copy Markdown
Contributor Author

aantron commented Jan 3, 2017

I looked through the logs, and in addition to dog and cowabloga, also found failures to build due to new deprecation warnings for release, tlstunnel, vpnkit. These packages were also noticed in ocsigen/lwt#308. I added a < "2.7.0" bound for each release of these packages that didn't already have a narrower bound.

cc @andrenth @djs55 @hannesm @avsm (hi!) @samoht

I already plan to ping the maintainers there again, in addition to maintainers of packages that still build with the warnings.

- File "lib/core/release_socket.ml", line 10, characters 2-15:
- Warning 3: deprecated: Lwt_unix.bind
-  This function will soon evaluate to a promise (-> unit Lwt.t), because the
-  bind system call can block for Unix domain sockets. See
-    https://github.com/ocsigen/lwt/issues/230
-  This will be a breaking change in Lwt 3.0.0.
-  If you don't use Unix domain sockets and use Lwt_unix.bind ... ; rather than
-  let () = Lwt_unix.bind ... in, you can ignore this warning.
-  To retain the current signature, use Lwt_unix.Versioned.bind_1
-  To use the new non-blocking version immediately, use Lwt_unix.Versioned.bind_2
-  Both alternatives require Lwt >= 2.7.0.
- File "lib/core/release_socket.ml", line 1:
- Error: Some fatal warnings were triggered (1 occurrences)
- File "tlstunnel.ml", line 120, characters 6-10:
- Warning 3: deprecated: Lwt_unix.bind
-  This function will soon evaluate to a promise (-> unit Lwt.t), because the
-  bind system call can block for Unix domain sockets. See
-    https://github.com/ocsigen/lwt/issues/230
-  This will be a breaking change in Lwt 3.0.0.
-  If you don't use Unix domain sockets and use Lwt_unix.bind ... ; rather than
-  let () = Lwt_unix.bind ... in, you can ignore this warning.
-  To retain the current signature, use Lwt_unix.Versioned.bind_1
-  To use the new non-blocking version immediately, use Lwt_unix.Versioned.bind_2
-  Both alternatives require Lwt >= 2.7.0.
- File "tlstunnel.ml", line 1:
- Error: Some fatal warnings were triggered (1 occurrences)
- File "src/hostnet/host_lwt_unix.ml", line 630, characters 12-25:
- Warning 3: deprecated: Lwt_unix.bind
-  This function will soon evaluate to a promise (-> unit Lwt.t), because the
-  bind system call can block for Unix domain sockets. See
-    https://github.com/ocsigen/lwt/issues/230
-  This will be a breaking change in Lwt 3.0.0.
-  If you don't use Unix domain sockets and use Lwt_unix.bind ... ; rather than
-  let () = Lwt_unix.bind ... in, you can ignore this warning.
-  To retain the current signature, use Lwt_unix.Versioned.bind_1
-  To use the new non-blocking version immediately, use Lwt_unix.Versioned.bind_2
-  Both alternatives require Lwt >= 2.7.0.
- File "src/hostnet/host_lwt_unix.ml", line 1:
- Error: Some fatal warnings were triggered (3 occurrences)

In addition, usb and xe have build failures due to missing dependencies on
camlp4, which causes lwt.syntax not to be built. I added the dependencies.

cc @diml @djs55


Several packages don't build due to dependency constraints involving Lwt. I noticed mirage-http-unix and mirage-www.

@aantron
Copy link
Copy Markdown
Contributor Author

aantron commented Jan 3, 2017

Ok, usb and xe now build, and the bot didn't attempt to build the five packages with new constraints (presumably this is the expected behavior).

@aantron
Copy link
Copy Markdown
Contributor Author

aantron commented Jan 4, 2017

Closing this in favor of #8196, since that PR has all the commits of this PR and more, and works just fine. Hope that's fine.

@aantron aantron closed this Jan 4, 2017
djs55 added a commit to djs55/vpnkit that referenced this pull request Jan 5, 2017
Ideally we'd like to enable -warn-error for developer builds but disable
-warn-error for tagged release builds. This patch disables -warn-error
for both cases: it's not worth too much work on the current build and
packaging system when we're likely to switch over to topkg soon.

This allows vpnkit to build with lwt.2.7.0.

Related to [ocaml/opam-repository#8195]
Related to [ocaml/opam-repository#8196]

Signed-off-by: David Scott <dave.scott@docker.com>
djs55 added a commit to djs55/vpnkit that referenced this pull request Jan 10, 2017
Ideally we would keep this as -warn-error for developer builds but disable
for tagged release builds. This patch disables -warn-error for warning 3
for both cases: it's not worth too much work on the current build and
packaging system when we're likely to switch over to topkg soon.

This allows vpnkit to build with lwt.2.7.0.

Related to [ocaml/opam-repository#8195]
Related to [ocaml/opam-repository#8196]

Signed-off-by: David Scott <dave.scott@docker.com>
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