Skip to content

Resolve "Finish installation and usage instruction on the documentation"

What does this MR do?

Resolves #55 (closed) and #60 (closed)

  • Improve installation instructions
  • Tighten the build system to much more Modern CMake
    • Detachment of build system for downstream consumers
    • Increment CMake required version to 3.13
    • Install binary executables
    • Install and test CMake config file
    • Installation divided on three components: Runtime|Library|Development
    • Force GHC usage whenever c++ filesystem cannot be found, else, optional
    • Vendor GHC with CMake instead of git submodules
    • Increase GHC version
  • Improve CI installation scripts
    • Improve CI error messages diagnosis
    • Scripts extract information from dune options file
    • Build on temporary folder
    • No need of specifying dunecontrol path
    • Scripts are callable from anywhere
    • Define all-in-one dune options file (tested on CI)
  • Improve Docker containers
    • Simplify build and usage on docker containers (One command is now enough to either build or run)
    • Reduce final size of docker image by using multistaging
  • Adds GitHub Actions for Linux|MacOS|Windows
  • Deploy Debian Packages on release (sketch for installation is also provided)
  • Provide help message when executables are not used correctly
  • As part of this MR, I also created --an almost-- ready to use macOS brew tap (Third-Party Repository). The idea is to finish and include it in the documentation after the next release.
  • Produce versioned documentation

Is there something that needs to be double checked?

??

Can this MR be accepted?

  • I've read contribution guide
  • Implemented
  • Added/Updated tests
  • Added/Updated documentation
  • Pipelines passing

Related issues

Closes #55 (closed) #60 (closed) #40 (closed)

Edited by Santiago Ospina De Los Ríos

Merge request reports