opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
This is the release of opam 2.1.1.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
--packages
option with cli 2.0, and a specific error message for cli 2.1 [#4853 @rjbou - fix #4843]set-invariant
: default repos were loaded instead of switch repos [#4866 @rjbou]Many thanks to @AltGr and @rjbou (OCamlPro), @dra27 and @kit-ty-kate (OCaml Labs), @hannesm, @avsm and everyone who's helped with issue reports, comments and feedback.
This is the release of opam 2.0.10.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
This is the release of opam 2.1.0.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
Please see blog post to discover this release's new features.
It contains some fixes since the second release candidate:
DEBIAN_FRONTEND=noninteractive
for unsafe-yes
confirmation level (partially fixes #4731)opam init --reinit
(#4748)--bypass-checks
handling with --reinit
(#4750)^
syntax to fix support for Fish 3.3.0+ (#4736)Many thanks to @AltGr and @rjbou (OCamlPro), @dra27 and @kit-ty-kate (OCaml Labs), @vzaliva and everyone who's helped with issue reports, comments and feedback.
This is the release of opam 2.0.9.
This minor release contains some fixes, please see blog post for upgrade instructions.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
OPAM_USER_PATH_RO
for adding a custom read-only directory to the sandbox (#4589, #4609)OPAMROOT
and OPAMSWITCH
now reflect the --root
and --switch
parameters in the package build (#4668)DUNE_CACHE
in the sandbox script (#4535, fixing ocaml/dune#4166)$TMPDIR
read-only, then sets the sandbox $TMPDIR
to a new separate tmpfs (#4589)PWD
read-write on remove actions (#4589)conf
(#4549)--compiler
when creating local switches (#4718)^
syntax to fix support for Fish 3.3.0+ (#4736)Many thanks to @AltGr and @rjbou (OCamlPro), @dra27 and @kit-ty-kate (OCaml Labs), @emillon (Tarides), @LasseBlaauwbroek, @smorimoto, @vzaliva and everyone who's helped with issue reports, comments and feedback.
This is the second release candidate of opam 2.1.0.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
It contains 2 fixes in addition to the original release candidate:
z3
optional solver backend (#4717)Since beta4, the release candidates further extend the CLI versioning feature and introduce support to allow tools compiled with older versions of the opam libraries to read opam roots which have been upgraded by a newer version of the opam client. Naturally, it includes many bug fixes since the last beta.
--cli
(#4503)build-doc
, build-test
, make
flags (#4581)--no
, --confirm-level
and OPAMCONFIRMLEVEL
for automatic answering of prompts (#4582)--with-0install-solver
option to the configure script to enable the 'builtin-0install' solver (#4646)--root
and --switch
are now reflected in environment variables when building packages so that calls to opam
during build access the correct root and switch (#4668)default-invariant
config field, restore the 2.0 semantics for default-compiler
(#4577).install
instead of the whole switch prefix when there are no install:
instructions (and no preinstall commands) (#4422)hidden-version
to avoid-version
(#4527)OPAM*
environment variables added since 2.0 from package builds to prevent warnings when a package calls opam (#4660)opam config
deprecated subcommands in the default cli (#4503)--deps-only
, set dependencies as root packages (#4502)opam list --silent
renamed to --check
(#4323)sys-ocaml-cc
, sys-ocaml-arch
and sys-ocaml-libc
when no system compiler installed (#4706)Not_found
(config file) in config report (#4570)switch
global variable resolving (#4684)hash
package variable resolving (#4687)--read-only
, --safe
, and --dryrun
(#4320)opam lock
consistent with opam install
, on local pin always take last opam file even if uncommitted (#4320)features
parser (#4507)opam-file-format.2.1.3+
in order to enforce opam-version: "2.1"
as first non-comment line (#4394)OPAMASSUMEDEPEXTS
, OPAMNODEPEXTS
) (#4587)no
doesn't abort installation (#4591)assume-depexts
related messages (#4662)+count(version-lag,solution)
to always choose the oldest version available, +removed
to not try to keep installed packages (#4631)state.cache
to include the OpamVersion.magic()
string. All .cache files are deleted if any cache file is written to, allowing multiple versions of the library to co-exist without constantly regenerating it (#4554)OpamVersion.is_dev_version
(#4665)opam exec
on native Windows when calling cygwin executables (#4588)Many thanks to @AltGr and @rjbou (OCamlPro), @dra27 and @kit-ty-kate (OCaml Labs), @emillon (Tarides), @dannywillems, @eth-arm, @LasseBlaauwbroek, @smorimoto and @UnixJunkie and everyone who's helped with issue reports, comments and feedback.
This is a release candidate of opam 2.1.0.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
This release candidate further extends the CLI versioning feature and introduces support to allow tools compiled with older versions of the opam libraries to read opam roots which have been upgraded by a newer version of the opam client. Naturally, it includes many bug fixes since the last beta.
--cli
(#4503)build-doc
, build-test
, make
flags (#4581)--no
, --confirm-level
and OPAMCONFIRMLEVEL
for automatic answering of prompts (#4582)--with-0install-solver
option to the configure script to enable the 'builtin-0install' solver (#4646)--root
and --switch
are now reflected in environment variables when building packages so that calls to opam
during build access the correct root and switch (#4668)default-invariant
config field, restore the 2.0 semantics for default-compiler
(#4577).install
instead of the whole switch prefix when there are no install:
instructions (and no preinstall commands) (#4422)hidden-version
to avoid-version
(#4527)OPAM*
environment variables added since 2.0 from package builds to prevent warnings when a package calls opam (#4660)opam config
deprecated subcommands in the default cli (#4503)--deps-only
, set dependencies as root packages (#4502)opam list --silent
renamed to --check
(#4323)sys-ocaml-cc
, sys-ocaml-arch
and sys-ocaml-libc
when no system compiler installed (#4706)Not_found
(config file) in config report (#4570)switch
global variable resolving (#4684)hash
package variable resolving (#4687)--read-only
, --safe
, and --dryrun
(#4320)opam lock
consistent with opam install
, on local pin always take last opam file even if uncommitted (#4320)features
parser (#4507)opam-file-format.2.1.3+
in order to enforce opam-version: "2.1"
as first non-comment line (#4394)OPAMASSUMEDEPEXTS
, OPAMNODEPEXTS
) (#4587)no
doesn't abort installation (#4591)assume-depexts
related messages (#4662)+count(version-lag,solution)
to always choose the oldest version available, +removed
to not try to keep installed packages (#4631)state.cache
to include the OpamVersion.magic()
string. All .cache files are deleted if any cache file is written to, allowing multiple versions of the library to co-exist without constantly regenerating it (#4554)OpamVersion.is_dev_version
(#4665)opam exec
on native Windows when calling cygwin executables (#4588)Many thanks to @AltGr and @rjbou (OCamlPro), @dra27 and @kit-ty-kate (OCaml Labs), @emillon (Tarides), @dannywillems, @eth-arm, @LasseBlaauwbroek, @smorimoto and @UnixJunkie and everyone who's helped with issue reports, comments and feedback.
This is the release of opam 2.0.8.
This minor release contains some fixes, please see blog post for upgrade instructions.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
CCACHE_DIR
environment variable in sandbox script. [#4087 @rjbou - fix #4079]~/.cache
& ~/.cache/dune
for bwrap call. [#4087 @rjbou - fix #4068]/tmp
[#3742 @rjbou - fix ocaml/opam-repository#13339]pre-
and post-session
hooks is now propagated to the user [#4382 @AltGr - fix #4359]arch
detection when using 32bit mode on ARM64 [#4462 @kit-ty-kate]arch
detection of i486 [#4462 @kit-ty-kate]This is a third beta release of opam 2.1.0 (there was a glitch with the number).
This beta release contains quite a few improvements and fixes upon beta3.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92 ).
A more complete overview of opam 2.1.0~beta4 is on the platform blog.
--cli
was added in the first beta, but is now used throughout the CLI (see #4385). When invoking opam
from a script or program, we recommend using --cli=2.1
. If you need to be compatible with 2.0, you can set the environment variable OPAMCLI
to 2.0
(this is done automatically by opam
when building packages).
As with changes in the Dune language, changes to opam's CLI are now immediate - for example, --unlock-base
is now unavailable without selecting the opam 2.0 CLI (you must use --update-invariant
). Like Dune, opam tries to be helpful and the errors include pointers to the new syntax.
opam install
now has a --download-only
flag (#4036), allowing opam's caches to be primedopam init
now advises the correct shell-specific command for eval $(opam env)
(#4427)post-install
hooks are now allowed to modify or remove installed files (#4388)opamfile-loc
with the location of the installed package opam file (#4402)opam update
now has --depexts
flag (#4355), allowing the system package manager to update tooos-family=ubuntu
is now treated as os-family=debian
(#4441)opam lint
now checks that strings in filtered package formulae are booleans or variables (#4439)pre-
and post-session
hooks is now propagated to the user (#4359)opam remove --autoremove <PKG>
no longer removes unrelated packages or triggers conflicts with orphaned packages (#4250 and #4332)opam switch --update-invariant
not changing the invariant when removing or changing package name (#4353)--update-invariant
(#4431) ** NO DESCRIPTION **--working-dir
now works with local switches (#4433)opam option depext-bypass-=["XXX"]
(#4428) ** NO DESCRIPTION **opam admin cache
now uses the archives cache (#4352)opam admin check --cycles
no longer explodes on repositories with huge cliques (#4392)--read-only
now causes fewer cache updates (#4467 - part of #4354)Many thanks to @AltGr and @rjbou (OCamlPRO), @emillon (Tarides), @kit-ky-kate (OCaml Labs), @alan-j-hu, @Armael, @Blaisorblade, @freevoid, @gahr and @lefessan and everyone who's helped with issue reports, comments and feedback.
This is a second beta release of opam 2.1.0.
This beta release contains a few important fixes upon 2.1.0~beta, and improved conflict error messages.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
opam exec
when not necessary [#4341 @altgr]--with-version
flag, which wasn't always honored [#4346 @altgr]This is the first beta release of opam 2.1.0.
This beta release contains many fixes and a few polished or new features upon alpha3.
Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
Possibly scripts breaking changes are prefixed with ✘. New option/command/subcommand are prefixed with ◈.
--cli
/ OPAMCLI
option added [#4316 @dra27]--yes
passed to all commands, and plugins [#4316 @dra27]pin scan
subcommand to list available pins [#4285 @rjbou]--normalise
option to print a normalised list when scanning, that can be taken by opam pin add
[#4285 @rjbou]OpamCommand.pin
refactor, including adding OpamClient.PIN.url_pins
to pin a list of package with url [#4285 #4301 @rjbou]with-version
option to set the pinned package version [#4301 @rjbou]hidden-versions
[#4312 @AltGr]Various contributors helped us to update and add code documentation: