- do not use a intermediate docker image between 'build' and 'test'
- in 'build_deps', avoid downloading the cached image
- in 'prepare', use `opam bundle` to:
- embedded the sources of dependency
- reduce the embedded opam repository to the needed package
Other changes:
- reintroduced 'sudo' in the base image, it is needed by `opam depext`
and the job 'publish:doc'
- moved the docker script used by the CI in `scripts/ci/`
- Docker files and build scripts
+ add git, bash and patch to the docker base definition (Dockerfile.base)
+ build leveldb once and for all
(scripts/create_docker_image.leveldb_deps.sh)
+ add --depth 1 to all git clone calls
+ remove sudo, openssh and rsync from base images
+ add --no-cache to all apk calls
+ merge dockerfiles in the sh scripts
Installation:
`./scripts/opam-pin.sh && opam install tezos-node tezos-client`
Upgrade installed packages after a `git pull` (opam2 only):
`./scripts/opam-upgrade.sh`
Remove and cleanup every from the opam repo:
`./scripts/opam-unpin.sh`
The new version of ocplib-resto :
- uses jbuilder ;
- is functorized over `Json_encoding` rather than `Json_repr` ;
- handles query parameters ;
- handles HTTP methods (GET, POST, DELETE, PUT, PATCH) ;
- replaces `custom_service` by a more generic trailer argument ;
- replaces generic answer `(code, body)` by a more ad-hoc sum type
(allowing distinct encoding for success and error) ;
- includes a minimal HTTP-server based on Cohttp
(includings CORS and media type negotiation).
- adds a function `Directory.transparent_lookup` to lookup/call
a service handler without serializing the various parameters
(path, query, request body).
As a first consequences in Tezos, this patch allows binary
communication between the client and the node.
This patch tries to be minimal inside the tezos source code and
therefore it introduces a minimal compatibility layer in
`RPC.ml`. This code should be removed as soon as possible.
This is a rewrite of the build system with `jbuilder`, with just a
minimal toplevel Makefile for backward compatibility.
This first patch preserves the project architecture, we only gain
proper dependencies handling and always up-to-date `.merlin` files.
A latter patch may split the project in smaller "sub-package",
i.e. multiple `.opam` files.
The embedded versions of the economic protocol are now compiled with
`jbuilder` instead of `tezos-protocol-compiler`, potentially allowing
proper inlining at the cost of slightly-less-stricter
sandboxing. Nevertheless, dynamically loaded protocol are still
compiled with the `tezos-protocol-compiler` and thus strictly
sandboxed ; and a CI rule also checks the proper sandboxing of
embedded protocols.
This patch is coauthored with @hnrgrgr
And minor fix:
- introduce configuration file for OCaml and alpine versions
- add missing `libssl1.0` in docker image
- remove the split call to `install_build_deps` (not required anymore)
- rename scripts