package opam-repomin

All checked builds pass
  1. Overview
  2. Docs
Minimize opam repository overlays into one unified repo

Install

dune-project
 Dependency

Authors

Maintainers

Sources

opam-repomin-1.0.0.tbz
sha256=d386aa90c5465b295d9d87de446b65da93bb0fa576fe925a4df48d60abc446b1
sha512=207d89cb7b9fc429ef172529f94d8a8f85a42f0107985f5e3fb23d2944f6b67722fb4dfc41e660e7db14b3135ab908ac1b29421de4b8917a939cbedc98b02489

Description

opam-repomin takes an opam repository overlay directory and a full opam-repository, uses the opam-0install solver to determine the minimum set of packages required to make the overlay standalone, and copies the relevant packages to an output directory.

Added to opam-repository:

README

opam-repomin

Minimize opam repository overlays using the 0install solver.

Overview

opam-repomin takes an opam repository overlay directory and a full opam-repository, uses the opam-0install solver to determine the minimum set of packages required to make the overlay standalone, and copies the relevant packages to an output directory.

Installation

opam install opam-repomin

Usage

opam-repomin --overlay <overlay-repo> --full <full-repo> --compiler <pkg.version> --output <output-dir>

Options

  • --overlay - Path to the opam repository overlay directory
  • --full - Path to the full opam-repository
  • --compiler - Compiler package to use (e.g., ocaml-base-compiler.5.2.0 or ocaml-variants.5.2.0+options)
  • --output - Output directory for the minimized repository
  • --dry-run - Print what would be copied without actually copying

Example

# Minimize an overlay using OCaml 5.2.0
opam-repomin \
  --overlay ./my-overlay \
  --full ~/.opam/repo/default \
  --compiler ocaml-base-compiler.5.2.0 \
  --output ./minimized-repo

How It Works

  1. Loads all packages from the overlay repository
  2. Loads the full opam-repository
  3. Uses the opam-0install solver to find the minimal set of dependencies needed to install all overlay packages with the specified compiler
  4. Copies only the required package versions from the full repository to the output directory (skipping packages already in the overlay)

License

ISC License. See LICENSE.md.

Dependencies (10)

  1. fpath >= "0.7.3"
  2. bos >= "0.2.1"
  3. logs >= "0.7.0"
  4. fmt >= "0.9.0"
  5. cmdliner >= "1.2.0"
  6. opam-state >= "2.2"
  7. opam-format >= "2.2"
  8. opam-0install >= "0.5"
  9. ocaml >= "5.2.0"
  10. dune >= "3.18"

Dev Dependencies (2)

  1. odoc with-doc
  2. alcotest with-test

Optional Dependencies

None

Used by

None

Conflicts

None

Build status

Results of building opam-repomin with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
1.0.0 (this version) n/a n/a good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure