Skip to content

Commit

Permalink
Prepare 0.10 release (#211)
Browse files Browse the repository at this point in the history
* upgrade to dune lang 2

* generate opam files using dune

* stop testing on 4.12
  • Loading branch information
anmonteiro authored Mar 17, 2023
1 parent d80e74b commit fff323e
Show file tree
Hide file tree
Showing 13 changed files with 335 additions and 174 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
ocamlVersion: [4_12, 4_13, 4_14, 5_00]
ocamlVersion: [4_13, 4_14, 5_00]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: cachix/install-nix-action@v17
- uses: cachix/install-nix-action@v20
with:
extra_nix_config: |
extra-substituters = https://anmonteiro.nix-cache.workers.dev
Expand Down
4 changes: 2 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Unreleased
-----------
0.10.0 2023-03-17
---------------

- hpack: fix a case where hpack would raise an array out of bounds exception
([#183](https://github.com/anmonteiro/ocaml-h2/pull/183))
Expand Down
135 changes: 133 additions & 2 deletions dune-project
Original file line number Diff line number Diff line change
@@ -1,4 +1,135 @@
(lang dune 1.7)
(using fmt 1.1)
(lang dune 2.7)

(name h2)

(formatting
(enabled_for ocaml))

(generate_opam_files true)

(source
(github anmonteiro/ocaml-h2))

(authors "Antonio Nuno Monteiro <[email protected]>")

(maintainers "Antonio Nuno Monteiro <[email protected]>")

(homepage "https://github.com/anmonteiro/ocaml-h2")

(bug_reports "https://github.com/anmonteiro/ocaml-h2/issues")

(license "BSD-3-clause")

(package
(name hpack)
(synopsis
"An HPACK (Header Compression for HTTP/2) implementation in OCaml")
(description
"hpack is an implementation of the HPACK: Header Compression for HTTP/2 specification (RFC7541) written in OCaml. It uses Angstrom and Faraday for parsing and serialization, respectively.")
(depends
(ocaml
(>= "4.08.0"))
(faraday
(>= "0.7.3"))
(yojson :with-test)
(hex :with-test)))

(package
(name h2)
(synopsis
"A high-performance, memory-efficient, and scalable HTTP/2 library for OCaml")
(description
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. It is based on the concepts in http/af, and therefore uses the Angstrom and Faraday libraries to implement the parsing and serialization layers of the HTTP/2 standard as a state machine that is agnostic to the underlying I/O specifics. It also preserves the same API as http/af wherever possible.")
(depends
(ocaml
(>= "4.08.0"))
(base64
(>= "3.0.0"))
(angstrom
(>= "0.14.0"))
(faraday
(>= "0.7.3"))
(bigstringaf
(>= "0.5.0"))
psq
hpack
httpaf
(alcotest :with-test)
(yojson :with-test)
(hex :with-test)))

(package
(name h2-lwt)
(synopsis "Lwt support for h2")
(description
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-lwt provides an Lwt runtime implementation for h2.")
(depends
(ocaml
(>= "4.08.0"))
(h2
(= :version))
(lwt
(>= "5.1.1"))
(gluten-lwt
(>= "0.2.1"))))

(package
(name h2-mirage)
(synopsis "Lwt support for h2")
(description
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-mirage provides an Lwt runtime implementation for h2 that targets MirageOS unikernels.")
(depends
(ocaml
(>= "4.08.0"))
(h2-lwt
(= :version))
faraday-lwt
lwt
(gluten-mirage
(>= "0.3.0"))
(mirage-flow
(>= "2.0.0"))
cstruct))

(package
(name h2-lwt-unix)
(synopsis "Lwt + UNIX support for h2")
(description
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-lwt-unix provides an Lwt runtime implementation for h2 that targets UNIX binaries.")
(depends
(ocaml
(>= "4.08.0"))
(h2-lwt
(= :version))
faraday-lwt-unix
(gluten-lwt-unix
(>= "0.2.1")))
(depopts tls-lwt lwt_ssl))

(package
(name h2-async)
(synopsis "Async support for h2")
(description
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-async provides an Async runtime implementation for h2.")
(depends
(ocaml
(>= "4.08.0"))
(h2
(= :version))
faraday-async
(gluten-async
(>= "0.2.1")))
(depopts async_ssl tls-async))

(package
(name h2-eio)
(synopsis "EIO support for h2")
(description
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-eio provides an EIO runtime implementation for h2.")
(depends
(ocaml
(>= "4.08.0"))
(h2
(= :version))
(gluten-eio
(>= "0.4.1"))))
20 changes: 10 additions & 10 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 27 additions & 18 deletions h2-async.opam
Original file line number Diff line number Diff line change
@@ -1,25 +1,34 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
maintainer: "Antonio Monteiro <[email protected]>"
authors: [ "Antonio Monteiro <[email protected]>" ]
synopsis: "Async support for h2"
description:
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-async provides an Async runtime implementation for h2."
maintainer: ["Antonio Nuno Monteiro <[email protected]>"]
authors: ["Antonio Nuno Monteiro <[email protected]>"]
license: "BSD-3-clause"
homepage: "https://github.com/anmonteiro/ocaml-h2"
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
doc: "https://anmonteiro.github.io/ocaml-h2/"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.06"}
"dune" {>= "1.7"}
"dune" {>= "2.7"}
"ocaml" {>= "4.08.0"}
"h2" {= version}
"faraday-async"
"async"
"gluten-async"
"h2" {>= version}
"gluten-async" {>= "0.2.1"}
"odoc" {with-doc}
]
depopts: ["async_ssl"]
synopsis: "Async support for h2"
description: """
h2 is an implementation of the HTTP/2 specification entirely in OCaml.
h2-async provides an Async runtime implementation for h2.
"""
depopts: ["async_ssl" "tls-async"]
build: [
["dune" "subst"] {dev}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@runtest" {with-test}
"@doc" {with-doc}
]
]
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
42 changes: 26 additions & 16 deletions h2-eio.opam
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
maintainer: "Antonio Monteiro <[email protected]>"
authors: [ "Antonio Monteiro <[email protected]>" ]
synopsis: "EIO support for h2"
description:
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-eio provides an EIO runtime implementation for h2."
maintainer: ["Antonio Nuno Monteiro <[email protected]>"]
authors: ["Antonio Nuno Monteiro <[email protected]>"]
license: "BSD-3-clause"
homepage: "https://github.com/anmonteiro/ocaml-h2"
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
doc: "https://anmonteiro.github.io/ocaml-h2/"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "5.0"}
"h2" {>= version}
"dune" {>= "1.7"}
"gluten-eio"
"dune" {>= "2.7"}
"ocaml" {>= "4.08.0"}
"h2" {= version}
"gluten-eio" {>= "0.4.1"}
"odoc" {with-doc}
]
synopsis: "EIO support for h2"
description: """
h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-eio
provides an EIO runtime implementation for h2.
"""
build: [
["dune" "subst"] {dev}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@runtest" {with-test}
"@doc" {with-doc}
]
]
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
45 changes: 25 additions & 20 deletions h2-lwt-unix.opam
Original file line number Diff line number Diff line change
@@ -1,29 +1,34 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
maintainer: "Antonio Monteiro <[email protected]>"
authors: [ "Antonio Monteiro <[email protected]>" ]
synopsis: "Lwt + UNIX support for h2"
description:
"h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-lwt-unix provides an Lwt runtime implementation for h2 that targets UNIX binaries."
maintainer: ["Antonio Nuno Monteiro <[email protected]>"]
authors: ["Antonio Nuno Monteiro <[email protected]>"]
license: "BSD-3-clause"
homepage: "https://github.com/anmonteiro/ocaml-h2"
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
doc: "https://anmonteiro.github.io/ocaml-h2/"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.06"}
"dune" {>= "2.7"}
"ocaml" {>= "4.08.0"}
"h2-lwt" {= version}
"faraday-lwt-unix"
"h2-lwt" {>= version}
"dune" {>= "1.7"}
"lwt"
"gluten-lwt-unix" {>= "0.2.1"}
"odoc" {with-doc}
]
depopts: [
"tls"
"lwt_ssl"
depopts: ["tls-lwt" "lwt_ssl"]
build: [
["dune" "subst"] {dev}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@runtest" {with-test}
"@doc" {with-doc}
]
]
synopsis: "Lwt + UNIX support for h2"
description: """
h2 is an implementation of the HTTP/2 specification entirely in OCaml.
h2-lwt-unix provides an Lwt runtime implementation for h2 that targets UNIX
binaries.
"""
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
Loading

0 comments on commit fff323e

Please sign in to comment.