Skip to content

Latest commit

 

History

History
47 lines (39 loc) · 2.14 KB

README.md

File metadata and controls

47 lines (39 loc) · 2.14 KB

O(1) Labs Opam Repository

This is O(1) Labs's custom opam repository. We use this repository as incubator before publishing packages to the official opam repository.

Publishing to this repository

We use dune-release to publish to this repository.

  1. to do this, you will first have to install dune release:
    $ opam install dune-release
  2. then fork this repository (let's say under your_name/opam-repository) and clone this repository somewhere (at some point dune-release will ask you for that information)
  3. add the new version (following semver) and a changelog to your CHANGES.md file (see example), as well as your <package>.opam or opam file.
  4. optionally make sure your opam file is in sync with your dune file
    $ opam install opam-dune-lint
    $ opam-dune-lint
  5. make sure your opam file is ready to be published
    $ dune-release lint
  6. tag your release (this should pick up the version automatically from the CHANGES.md file)
    $ dune-release tag
  7. produce artifacts
    $ dune-release distrib
    $ dune-release publish
    $ dune-release opam pkg
  8. create a PR to your fork of this repository, where <USER> is your Github username, <REMOTE> is your fork of this repository (most likely <USER>/opam-repository), and <LOCAL> is the local path to a clone of your fork.
    $ dune-release opam submit --opam-repo=o1-labs/opam-repository --user <USER> --remote-repo <REMOTE> --local-repo <LOCAL>
  9. once the PR has been created, merge it in your own fork, then create a PR manually between your fork and this repository.

The dune-release flow is summarized in their nice diagram below.

dune release flow

Known issues