Skip to content

Unify binary distribution solutions #13610

@Leonidas-from-XIV

Description

@Leonidas-from-XIV

We currently have two ways of getting pre-built binaries of Dune: dune-bin (including dune-bin-install) and binary-distribution. Having two solutions is problematic for multiple reasons:

  1. Users are confused which one to use. They don't interlink much if at all, users need to be aware of multiple locations to get dune binaries.
  2. It requires more maintenance. There are two install scripts to maintain, multiple places to check if something breaks
  3. They act differently. While nightlies are generated automatically, releases are not. One of them includes completion scripts, the other doesn't. One of them attempts to deal with OPAM environment hooks, the other doesn't. Implementing the same for both is a drain on our resources and historically hasn't been done.

Desired Behavior

  1. There should be one source for both types of binaries: nightlies and releases
  2. There should be one install script that can install both
  3. The releases should be created automatically to not require extra steps in the release process

Example

The user should be able to use a similar (but unified) install command as now:

(binary-distribution)

$ curl -fsSL https://get.dune.build/install | sh

(release)

$ curl -4fsSL https://github.com/ocaml-dune/dune-bin-install/releases/download/v3/install.sh | sh -s 3.20.1 --install-root /usr --no-update-shell-config

which would download the right binary and install it.

Current progress

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions