Cohttp: Use cohttp inside tezos
What
PART 6 - #7349 (closed)
Closes #7349 (closed)
This MR makes octez use the local cohttp libraries instead of the external one from opam.
Why
This is part of the monorepotisation effort. We want to have cohttp into the monorepo so developers can make MRs across the library boundary and avoid the release process.
How
In a previous MR, we brought cohttp in the monorepo but only as data. So the first thing we need to do is remove cohttp from data only and include it in the build file gen. We follow the advice of build-gen to delete ungenerated opam and dune files.
Next, we define the manifest for each library exposed by Cohttp by translating its dune file into the Manifest DSL for cohttp-lwt/ and cohttp-lwt-unix/. Similar to data-encoding, the cohttp libraries will be part of octez-libs so that it can easily follow the release schedule of octez as there is no need for an independent release schedule at the moment. We include cohttp as part of octez-libs by prefixing octez-libs in front and pointing the opam field to octez-libs. Prometheus is also included in the sources of the octez product.
The octez deps lockfile had to be updated to move opam prometheus from the deps list to conflicts list.
Manually testing the MR
Opam cohttp-lwt and cohttp-lwt-unix should be removed
make build-dev-deps
make
The CI should cover it. Test releases should be done as well.