package opam-publish
Install
Dune Dependency
Authors
Maintainers
Sources
md5=faaca05485e10574959125f6ab2039ba
sha512=591c6372cb54833c2797575587503d912ba9710981d054aa48961267d5fd6dbad79581bc1fa860e3d9000ba687b4e5d7dd4aa737cf2d475bfcc574abd667ac33
Description
opam-publish automates publishing packages to package repositories: it checks that the
opam file is complete using opam lint
, verifies and adds the archive URL and its
checksum and files a GitHub pull request for merging it.
Published: 22 Apr 2025
README
opam-publish
A tool to ease contributions to opam repositories.
opam-publish
takes package definition files of your projects, and submits them to opam package repositories (ocaml/opam-repository by default).
Prerequisites
This version is for opam 2.0 or higher, and should not be used with repositories in older formats. A Github account is required. opam repository is cloned over ssh, you need to have your ssh keys registered in your Github account.
Usage
Basic case, assuming your project is on Github
The same works for initial publications, new releases, and updates.
The following should be run from the source directory of your project
- Make sure you have an
opam
file, orNAME.opam
files at the root of your project - Create a tag:
git tag -a TAG; git push origin TAG
- Run
opam publish
. This will install the tool if required.
You will be guided through the rest (creating a Github token the first time, reviewing the patch, etc.)
Additional possibilities
If your project is not on Github, you can specify the archive URL on the command-line.
If the opam files are not in the archive, or outdated, you can specify them on the command-line, or specify a directory where to look for them (e.g. opam publish URL .
).
Submitting to other repositories is possible, as long as they are on Github. See the --repo
option.
Updating already published packages using opam-publish is generally prohibited as it usually implies a change in the target archive via the git tag, which would break everyone trying to install the package. Please refer to opam-repository's documentation for more informations about how to update or fix packages.
See opam publish --help
for more options.
Dependencies (9)
-
github-unix
>= "4.3.2"
-
github
>= "4.3.2"
-
opam-state
>= "2.2.0"
-
opam-format
>= "2.2.0"
-
opam-core
>= "2.2.0"
-
ocaml
>= "4.08.0"
- lwt_ssl
-
dune
>= "1.0"
-
cmdliner
>= "1.1.0"
Dev Dependencies
None
Used by (3)
-
dune-release
< "0.2.0"
- publish
-
spectrum
< "0.2.0"
Conflicts (1)
-
ssl
= "0.5.6"