This is O(1) Labs's custom opam repository. We use this repository as incubator before publishing packages to the official opam repository.
We use dune-release to publish to this repository.
- to do this, you will first have to install dune release:
$ opam install dune-release
- then fork this repository (let's say under
your_name/opam-repository
) and clone this repository somewhere (at some pointdune-release
will ask you for that information) - add the new version (following semver) and a changelog to your
CHANGES.md
file (see example), as well as your<package>.opam
oropam
file. - optionally make sure your opam file is in sync with your dune file
$ opam install opam-dune-lint $ opam-dune-lint
- make sure your opam file is ready to be published
$ dune-release lint
- tag your release (this should pick up the version automatically from the
CHANGES.md
file)$ dune-release tag
- produce artifacts
$ dune-release distrib $ dune-release publish $ dune-release opam pkg
- 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>
- 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.