opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
OTHER License
Bot releases are visible (Hide)
This is the release of opam 2.2.1.
Binaries and full archive are signed by the opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
opam install --deps-only
where the direct dependencies were not set as root packages [#6125 @rjbou]--write-out
to --fail
if exit code 43 is returned by curl [#6168 @dra27 - fix #6120]opam-full-<version>.tar.gz
archive [#6067 @kit-ty-kate]?full_fetch
is now true
by default instead of false
[#6146 @kit-ty-kate - fix #6145]Note: the linux binaries were built using 34fb54e9f23aed602b49958b3e545ab1a26ebf49 instead of the release tag
Published by kit-ty-kate 4 months ago
This is the release of opam 2.2.0.
This release candidate contains a couple of fixes compared to the previous 2.2.0~rc1 release.
Please see the blog post for a description of the main features compared to opam 2.1.6 and the upgrade instructions.
Binaries and full archive are signed by the opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
Changelog compared to 2.2.0~rc1:
opam-root-version
to 2.2 [#5980 @kit-ty-kate]--no-version-check
and --no-write-registry
to Cygwin setup [#6046 @dra27]--quiet-mode noinput
for the internal Cygwin installation (which is definitely a fully-specified command line) and --quiet-mode
unattended for external Cygwin installations (in case the user does need to select something, e.g. a mirror) [#6046 @dra27]OpamStateConfig.opamroot_with_provenance
: restore previous behaviour to OpamStateConfig.opamroot
for compatibility with third party code [#6047 @dra27]⚠️ opam-full-2.2.0-1.tar.gz is equivalent to opam-full-2.2.0.tar.gz but contains the missing mccs archive as noted in https://github.com/ocaml/opam/pull/6066
Published by kit-ty-kate 4 months ago
This is the first release candidate of opam 2.2.0.
This release candidate contains enhancements, updates & fixes compared to the previous 2.2.0~beta3 release. Please see blog post for main new features highlights and 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 upgrade
wanting to recompile opam files containing the x-env-path-rewrite
field [#6029 @kit-ty-kate - fix #6028]opam init -y
no longer asks questions [#6033 @dra27 - fix #6013]OpamConsole.menu
> 9 options [#6026 @kit-ty-kate]OpamFilename.of_string
[#6024 @kit-ty-kate]OpamTypesBase
: Add nullify_pos_map
and nullify_pos_value
[#6029 @kit-ty-kate]Published by kit-ty-kate 4 months ago
This is the third and final beta release of opam 2.2.0.
This beta release contains new features, enhancements, updates & fixes compared to the previous 2.2.0~beta2 release. Please see blog post for main new features highlights and 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 init --cygwin-extra-packages=CYGWIN_PKGS --cygwin-internal-install
, to specify additional packages for internal Cygwin [#5930, #5964 @moyodiallo - fix #5834]C:\opamroot\opam-xxx
when the opam root contains spaces on Windows [#5457 @rjbou @dra27]opam init
to determine Unix and Git configuration simultaneously, and to detect from Cygwin, Git and MSYS2 from all the known package managers and shells [#6000 @dra27]?full_index=1
) [#5921 @dra27]opam tree --with-*
assigning the with-*
variables to unrequested packages [#5919 @kit-ty-kate @rjbou - fix #5755]opam tree --with-*
and --no-switch
[#5919 @kit-ty-kate @rjbou - fix #5920]--git-location
points to a directory not containing git [#6000 @dra27]x-env-path-rewrite
splitting of values when reverting [#5935 @dra27 - fix #5838]=+
and =:
[#5935 @dra27 - fix #5926]Cygwin
internal operator, don't allow make.exe
to become shadowed [#5996 @dra27]MANPATH
[#5972 @dra27 - partial fix for #5923]--symlink-type
native to Cygwin setup if symlinks are available [#5830 @dra27]--no-version-check
to Cygwin setup (suppresses a message box if setup needs updating) [#5830 @dra27]--quiet-mode noinput
to stop the user interrupting the setup GUI [#5830 @dra27]--no-write-registry
to the Cygwin installer, not just on first installation [#5995 @dra27]os-distribution
is now by default calculated from cygpath
for Cygwin and MSYS2, instead of needing to be set by opam init [#6000 @dra27]--deps-only
on an already installed package [#5908 @kit-ty-kate - fix #5817]opam-root-version
to 2.2~beta
[#5904 @kit-ty-kate]OPAM_LAST_ENV
files outside the switch to be in the opam root
[#5962 @moyodiallo - fix #5823]?variable
[#5983 @dra27]sys-ocaml-*
eval variables during format upgrade from 2.0 -> 2.1 -> 2.2 [#5829 @dra27]OpamClient.init
and OpamClient.reinit
: now can have additional cygwin packages to install [#5930 @moyodiallo]OpamInitDefaults.required_packages_for_cygwin
: no longer includes git; as the need to add that is computed in OpamClient
[#6000 @dra27]OpamSolution
: exposer print_depext_msg
[#5994 @dra27]OpamSolution
: extracted install_sys_packages
from OpamSolution.install_depexts
[#5994 @dra27]OpamDownload.download_command
: separate output from stdout and stderr [#5984 @kit-ty-kate]OpamEnv.cygwin_non_shadowed_programs
: exposes the list of executables (not including git) which should always come from Cygwin [#6000 @dra27]OpamSysInteract.Cygwin.check_install
renamed to analyse_install
which now also returns whether the installation found was MSYS2 or Cygwin [#6000 @dra27]OpamSysInteract.Cygwin.install
: de-label packages
argument [#6000 @dra27]OpamFilter.fold_down_left
: correct handling of FDefined and FUndef [#5983 @dra27]OpamFilter.map_up
: correct handling of FDefined [#5983 @dra27]OpamPath
: remove OpamPath.Switch.last_env
function in favor to OpamPath.last_env
as the files are no more stored in switch directory [#5962 @moyodiallo - fix #5823]OpamCompat
: add Seq.find_map
from OCaml 4.14 [#6000 @dra27]OpamConsole.menu
now supports up to 35 menu items [#5992 @dra27]OpamConsole
: Add formatted_errmsg
[#5999 @kit-ty-kate]OpamProcess.run_background
: name the stderr output file have the .err extension when cmd_stdout is given [#5984 @kit-ty-kate]OpamStd.String
: add split_quoted
that preserves quoted separator [#5935 @dra27]OpamStd.Sys.resolve_command
: extracted the logic from OpamSystem.resolve_command
, without the default environment handling from OpamProcess. [#5991 @dra27]OpamStd.Sys.resolve_in_path
: split the logic of OpamStd.Sys.resolve_command
to allow searching for an arbitrary file in the search path [#5991 @dra27]OpamStd.Sys.{get_windows_executable_variant,get_cygwin_variant,is_cygwin_variant}
: renamed ~cygbin
to ?search_in_path
with a change in semantics so that it acts as though the directory was simply the first entry in PATH [#6000 @dra27]OpamStubs.enumRegistry
: on Windows, retrieves all the values of a given type from a registry key, with their names [#6000 @dra27]OpamStubs.getVersionInfo
: on Windows, retrives the version information block of an executable/library [#5963 @dra27]OpamStubs.get_initial_environment
: on Windows, returns the pristine environment for new shells [#5963 @dra27]OpamStubs.readRegistry
: on Windows, complements OpamStubs.writeRegistry
[#5963 @dra27]OpamSystem.copy_dir
and OpamSystem.mv
may display a warning on Windows if an invalid symlink (e.g. an LXSS Junction) is found [#5953 @dra27]OpamSystem
: add mk_unique_dir
that returns an unique directory name as mk_temp_dir
but not in temporary directory [#5457 @dra27]Published by kit-ty-kate 5 months ago
This is the release of opam 2.1.6.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
GNU patch
is not detected when a patch is applied [#5893 @kit-ty-kate]gpatch
by default instead of patch
on NetBSD and DragonFlyBSD [#5893 @kit-ty-kate]gpatch
if it exists and is detected as GNU patch when patch
is not GNU patch
[#5893 @kit-ty-kate]OpamSystem.patch
now displays a warning when GNU patch is not detected and looks for both patch and gpatch as a backup option depending on the OS [#5893 @kit-ty-kate]Pre-compiled binaries built using the release script in 1cb2f337b53c316da92de3370016a220d141497e
Published by kit-ty-kate 6 months ago
This is the second beta release of opam 2.2.0.
This beta release contains new features, enhancements, updates & fixes compared to the previous 2.2.0~beta1 release. Please see upcoming blog post for main new features highlights and upgrade instructions.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
sys-ocaml-*
eval variables on Windows faster, no more depending on Cygwin [#5829 @dra27 @rjbou]sys-ocaml-*
eval variables on Unix [#5829 @dra27]sys-ocaml-system
eval variable [#5829 @dra27]gpatch
instead of patch
on NetBSD and DragonFlyBSD [#5893 @kit-ty-kate]bash
, tar
, sort
or git
[#5832 @dra27]opam source --dev
with git repositories doesn't fetch with --depth 1
[#5888 @moyodiallo - fix #5061]GNU patch
is not detected during a repository update [#5893 @kit-ty-kate]"%{var?string-if-true:string-if-false-or-undefined}%"
syntax to support extending the variables of packages with + in their name (conf-c++
and conf-g++
already exist) using "%{?pgkname:var:}%"
[#5840 @kit-ty-kate]getconf DARWIN_USER_TEMP_DIR
) as writable when TMPDIR
is not defined on macOS [#5780 @ElectreAAS]winsymlinks:native
to the CYGWIN
environment variable when installing a package on Windows [#5793 @kit-ty-kate - fix #5782]rsync
system package to internal Cygwin packages list (enables local pinning and is used by the VCS backends [#5808 @dra27]sys-pkg-manager-cmd
as an accepted field in opamrc files [#5847 @rjbou - fix #5844]git-location
handling in init config file [#5848 @rjbou - fix #5845]FOO += ""
would occlude the value of FOO
in the environment [#5837 @dra27]OpamProcess.cygwin_create_process_env
no longer adjusts PATH [#5832 @dra27]sys-ocaml-*
eval variables during format upgrade from 2.0 -> 2.1 -> 2.2 [#5829 @dra27]doas
as an alternative to sudo
[#5820 @kit-ty-kate - fix #5792]OPAMROOT
when creating the init scripts on Unix in case OPAMROOT
contains spaces, backslashes or special characters [#5841 @kit-ty-kate - fix #5804]GNU patch
is not detected when a patch is applied [#5893 @kit-ty-kate]gpatch
by default instead of patch
on NetBSD and DragonFlyBSD [#5893 @kit-ty-kate]gpatch
if it exists and is detected as GNU patch when patch
is not GNU patch
[#5893 @kit-ty-kate]SHGetFolderPath
and use SHGetKnownFolderPath
instead [#5862 @kit-ty-kate]OpamStubs.getPathToSystem
once [#5862 @dra27]OpamClient.windows_checks
: On existing Cygwin install, permit to detect msys2 and store os-distribution=msys2
in global-variables
config file field [#5843 @rjbou]OpamClient.windows_checks
: When updating config file for msys2, resolve pacman
path and store it in sys-pkg-manager-cmd
for msys2 [#5843 @rjbou]OpamArg.apply_global_options
: load MSYS2 Cygwin binary path too [#5843 @rjbou]OpamRepositoryBackend.S.pull_url
, OpamVCS.fetch
, OpamRepository.pull_tree
: add full_fetch
optional argument to pull full history if url is a VCS
[#5888 @moyodiallo - fix #5061]OpamEnv.env_expansion
: Fix detection of out-of-date environment variables, a filter predicate was inverted [#5837 @dra27]OpamSysInteract.Cygwin.check_install
: add variant
argument to permit checking that it is an Cygwin-like install if it is set to true, keep checking that it is a strictly Cygwin install if false [#5843 @rjbou]OpamSysInteract.Cygwin.check_install
: look for cygcheck.exe
in usr/bin
also as MSYS2 doesn't have "bin" [#5843 @rjbou]OpamGlobalState.load_config
: load MSYS2 Cygwin binary path too at config file loading [#5843 @rjbou]OpamEnv
: add sys_ocaml_eval_variables
value, moved OpamInitDefaults
as it is also needed in OpamFormatUpgrade
too [#5829 @rjbou @kit-ty-kate]OpamEnv
supports an internal Cygwin
environment operation which pushes the given directory as far down the list as can be done without shadowing. This mechanism replaces the opposite which was done in OpamProcess [#5832 @dra27]OpamFile.InitConfig
: add sys-pkg-manager-cmd
field [#5847 @rjbou]OpamTypesBase
: add filter_ident_of_string_interp
that is used for parsing variables in string interpolation like filter_ident_of_string
but permits the parsing of '%{?pkg+:var:}%' syntax [#5840 @rjbou]OpamTypesBase.filter_ident_of_string_interp
: add accept
optional argument to be able to raise an error when several pluses are in the package name without using the new syntax, like %{pkg+++:var}%
OpamFilter
: add extract_variables_from_string
to retrieve string of variables, and exposes it [#5840 @rjbou]OpamTypes.env_update
now has an additional type parameter indicating whether the update is internal or writeable [#5832 @dra27]OpamStd.Sys
: add is_cygwin_variant_cygcheck
that returns true if in path cygcheck
is from a Cygwin or MSYS2 installation [#5843 @rjbou]OpamStd.Env.cyg_env
: takes the environment to cygify, usually OpamStd.Env.raw_env
[#5829 @dra27]OpamSystem.patch
now displays a warning when GNU patch is not detected and looks for both patch and gpatch as a backup option depending on the OS [#5893 @kit-ty-kate]Published by kit-ty-kate 9 months ago
This is the first beta release of opam 2.2.0.
This beta release contains new features, enhancements, updates & fixes compared to the previous 2.2.0~alpha3 release. Please see upcoming blog post for main new features highlights and upgrade instructions.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
, PR open to upload new ones).
--git-location
and --no-git-location
cli arguments for Windows [#5718 @rjbou - fix #5617]git-location
modifiable opam option used only on Windows [#5718 @rjbou - fix #5617]libstdc++
instead of requiring the DLL to be distributed alongside it or present in the environment [#5680 @kit-ty-kate - fix #5647]./configure --enable-static
to compile the opam binary statically on Linux [#5680 @kit-ty-kate - fix #5647]opam env
containing carriage return on Cygwin [#5715 @dra27 @rjbou @kit-ty-kate - fix #5684]opam tree --dev
[#5687 @rjbou - fix #5675]opam tree --no-switch
: instead of emptying the current switch from its installed packages, it load a fresh virtual switch [#5687 @rjbou - fix #5675]OpamClient
: on init
and reinit
add git lookup in windows checks [#5718 @rjbou]OpamClient.init
: add option git-location
argument for git binary location configuration [#5718 @rjbou]OpamTreeCommand.run
: remove optional argument no_switch
[@rjbou #5687]OpamFile.Config
: add git-location
field and its functions [#5718 @rjbou]OpamCoreConfig
: add git_location
field [#5718 @rjbou]OpamStd.Env.cyg_env
: add git location argument and labels cygbin
and git_location
[#5718 @rjbou]OpamSystem.apply_cygpath
: runs cygpath
over the argument [#5723 @dra27 - function itself added in #3348]Published by kit-ty-kate 11 months ago
This is the third alpha release of opam 2.2.0.
This alpha release contains new features, enhancements, updates & fixes. Please see upcoming blog post for main new features highlights and upgrade instructions.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
x-env-path-rewrite
extensions field to permit specification of rewriting rules for variables defined in setenv
and build-env
: no rewrite; separator and path format formulae [#5636 @rjbou - fix #5602 #4690 #2927]x-env-path-rewrite
is updated [#5636 @rjbou]environment
file now stores environment variable rewriting rules [#5636 @rjbou]--recurse
and --subpath
for directory arguments [#5613 @kit-ty-kate]add-extrafiles
command to add, check, and update extra-files:
field according files present in files/
directory [#5647 @rjbou]-W @1..9
[#5652 @kit-ty-kate @rjbou - fixes #5651]OPAMVERBOSE
setting, levels 0 and 1 were inverted: "no" gave level 1, and "yes" gave level 0 [#5686 @smorimoto].install
file, track intermediate directories too, in order to have them suppressed at package removal [#5691 @rjbou - fix #5688]--assume-built
, resolve variables in depends filter according switch & global environment, not only depends predefined variables [#570 @rjbou - fix #5698]OPAMCURL
and OPAMFETCH
handling [#5607 @rjbou - fix #5597]x-locked
type error message [#5636 @rjbou]<limits.h>
in musl [#5383 @dra27]OpamTreeCommand.run
: now takes an atom
instead of name
[#5613 @kit-ty-kate]OpamFile.Environment
: add parsing-printing of rewriting rules, keeping backward compatibility [#5636 @rjbou]OpamFile.OPAM
: effective_part
keeps x-env-path-rewrite
, affects also effectively_equal
[#5636 @rjbou]OpamFile.OPAM
: add handling of x-env-path-rewrite
extensions field, that specifies rewrite rules [#5636 @rjbou]OpamFilter
: add expand_interpolations_in_file_full
which allows setting the output file along with the input file [#5629 @rgrinberg]OpamFilter
: expose string_interp_regex
which allows clients to identify variable interpolations in strings [#5633 @gridbugs]OpamFormat.V
: add path_format
& separator
value parser printer [#5636 @rjbou]OpamFormat
: add formula_items
to permit definition of formulae pp not only of the type package-formula
[#5636 @rjbou]OpamPp.fallback
: add name concatenation and printing fallback too [#5636 @rjbou]OpamTypes.env_update
: add a rewrite
field, that contains environment variable rewriting rules (formula to resolved, or already resolved, or no rewriting) [#5636 @rjbou]OpamTypes.env_update
: change from tuple to a record [#5636 @rjbou]OpamTypesBase
: add env_update_resolved
and env_update_unresolved
builders [#5636 @rjbou]OpamTypesBase
: add env_update
, env_update_resolved
, and env_update_unresolved
builders [#5636 @rjbou]OpamTypesBase
: add to_string function for path_format
& separator
[#5636 @rjbou]OpamStd.Config.env_level
: fix level parsing, it was inverted (eg, "no" gives level 1, and "yes" level 0) [#5686 @smorimoto]OpamStd.Sys.chop_exe_suffix
: removes .exe
from the end of a path, if present [#5714 @dra27]OpamSystem.apply_cygpath_path_transform
: fix cygpath call, use resolved name [#5716 @rjbou]OpamSystem.get_cygpath_path_transform
: add labeled argument to specify if path is a pathlist [#5636 @rjbou]OpamSystem.mk_temp_dir
: resolve real path with OpamSystem.real_path
before returning it [#5654 @rjbou]OpamSystem.resolve_command
: in command resolution path, check that the file is not a directory and that it is a regular file [#5606 @rjbou - fix #5585 #5597 #5650 #5626]Published by rjbou about 1 year ago
This is the second alpha release of opam 2.2.0.
This alpha release contains new features, enhancements, updates & fixes. Please see upcoming blog post for main new features highlights and 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 init
install Cygwin internally automatically by default instead of asking the user to install it manually [#5545 @rjbou @dra27]--no-cygwin-setup
, --cygwin-internal-install
, --cygwin-local-install
and --cygwin-location <path>
experimental flags available only on Windows to permit non-interactive Cygwin configuration [#5545 @rjbou]OpamInitDefault
: add required_packages_for_cygwin
packages tool list [#5545 @rjbou]OpamClient.init
: now propose to install internal Cygwin install [#5545 @rjbou]OpamSolution.get_depext
: do not confirm in case of internal Cygwin install [#5545 @rjbou]OpamClient.init
: add optional cygwin_setup
argument to permit non interactive setup [#5545 @rjbou]OpamCommands.init
: add cygwin setup flags [#5545 @rjbou]OpamSysinteract.Cygwin
: add install
that performs a Cygwin install in opam internals [#5545 @rjbou @dra27]OpamSysInteract.Cygwin
: add is_internal
[#5545 @rjbou]OpamSysInteract.install
: on Cygwin, upgrade automatically packages, and select local cache [#5545 @rjbou]OpamConsole.carriage_delete
: no-op when not tty out [#5595 @rjbou]OpamSystem.make_command
: Remove the warning triggered when the command contained spaces [#5596 @rjbou - fix #5163]Published by rjbou over 1 year ago
This is the alpha release of opam 2.2.0.
This alpha release contains new features, enhancements, updates & fixes. Please see blog post for main new features highlights and upgrade instructions.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
Changelog (possibly scripts breaking changes are prefixed with ✘):
Opam 2.2 comes with native Windows compatibility. You can now use opam from your preferred Windows terminal! We rely on the Cygwin UNIX-like environment for Windows as a compatibility layer, but it is possible for packages to generate native executables.
For more details, see blog post entry.
Recursive pinning allows to have opam lookup for opam files into subdirectories. It provides 2 new options --recursive
and --subpath <path>
that permit, respectively, to lookup recursively in directories, and to focus on a given directory. They can be combined.
For more details, see blog post entry.
--recursive
and --subpath
[#4876 @rjbou] [#5219 @rjbou]opam tree
show packages and their dependencies on a tree view. It can also display a reverse-dependency tree (through opam why, which is an alias to
opam tree --rev-deps`), which can be useful to examine how dependency versions get constrained.
For more details, see blog post entry.
tree
subcommand to display a dependency tree of currently installed packages [#5171 @cannorin - fix #3775]why
subcommand to examine how the versions of currently installed packages get constrained (alias to tree --rev-deps
) [#5171 @cannorin - fix #3775]tree
subcommand now supports --json
option [#5303 @cannorin - fix #5298]There is now a way for a project maintainer to share their project developments tools: the with-dev-setup
dependency flag. It is used in the same way as with-doc
and with-test
.
For more details, see blog post entry.
--dev-setup
option to install recommended development tools from opam file (as with-test
/with-doc
), and its environment variable OPAMWITHDEVSETUP
, and for post-messages [#5016 #5160 #5214 @rjbou - fix #4959]with-dev-setup
variable for recommended tools [#5016 #5214 @rjbou]Opam now integrates a fallback to Software Heritage archive retrieval, based on SWHID. If an SWHID url is present in an opam file, the fallback can be activated.
For more details, see blog post entry.
It is now possible to leverage the full expressivity of package dependency formulas from the command-line during switch creation and package operations.
--formula
option to specify a formula to install [#4975 @AltGr]opam pin --current
to fix a package to its current state (disabling pending reinstallations or removals from the repository) [#4973 @AltGr - fix #4970]opam pin remove --all
to remove all the pinned packages from a switch [#5308 @kit-ty-kate]opam pin remove
to take a package (<pkg>.<version>
) as argument [#5325 @kit-ty-kate]opam exec --no-switch
to remove opam environment from launched command [#4957 @kit-ty-kate - fix #4951]--no-switch
option [#4850 @rjbou - fix #4858]--untracked
option to remove untracked files interactively [#4915 @rjbou - fix #4831] {2.1.3}
opam switch -
that goes to previous selected global switch [#4910 @kit-ty-kate - fix #4688]--base
into --invariant
, column name and the content is invariant formula installed dependencies [#5208 @rjbou]opam admin add-constraint <cst> --packages
to select a subset of packages to apply constraints [#5386 @rjbou - fix #3077]OPAMREPOSITORYTARRING
environment variable to enable repository tarring optimisation, it is disabled by default because it is an optimisation only on some os/configurations [#5015 @rjbou].opam
from %HOME%
or %USERPROFILE%
on Windows, only if found; otherwise use %LOCALAPPDATA%\opam
as root. [#5212 @dra27]opam init
if --root
or OPAMROOT
have been set [#5212 @dra27 - fix #4992]opam init
and opam init --reinit
when the jobs
variable has been set in the opamrc or the current config. [#5056 @rjbou] {2.1.3}
archive-mirrors
modifiable (extendable) via opam config [#5321 @hannesm @rjbou - fix #5316]OPAMCURL
and OPAMFETCH
value setting [#5111 @rjbou - fix #5108]--switch <sw>
fails instead of writing a wrong switch-config
file [#5027 @rjbou] {2.1.3}
--no-depexts
is the default in CLI 2.0 mode [#4908 @dra27] {2.1.2}
experimental
flags handling [#5099 @rjbou]--packages
option with CLI 2.0, and a specific error message for CLI 2.1 [#4853 @rjbou - fix #4843] {2.1.1}
base
field into invariant-pkg
[#5208 @rjbou]archive-mirrors
field from init config file to config [#5315 @hannesm] {2.1.5}
.changes
as a ACTION
trace log to help debug #4419 [#5144 @na4zagin3].changes
files from being updated during dry-run [#5144 @na4zagin3 - fix #5132]opam remove
on an unavailable package [#4995 @AltGr - fix #4890]-a
and an optional dependency explicitly specified [#4995 @AltGr - fix #4727]PATH
, and warn if not the case [#4932 @rjbou - fix #4923]set-invariant
: default repos were loaded instead of switch repos [#4869 @rjbou] {2.1.1}
~dev
to dev
[#4949 @kit-ty-kate]--working-dir
with non pinned packages: it was not downloading sources as they were remove from package that need sources [#5082 @rjbou - fix #5060]OpamFilename
[#4876 @rjbou]opam install ./file.opam
lock pinning [#5148 @rjbou - fix #4313]opam pin
[#5047 @rjbou - fix #5046] {2.1.3}
--required-by
and depends-on
[#5337 @rjbou]depexts
to default printer [#4898 @rjbou]url.swhid:
[#4859 @rjbou]opam show --list-files <pkg>
fail with not found when <pkg>
is not installed [#4956 @kit-ty-kate - fix #4930]OPAM_LAST_ENV
allows reliable reverting [#5417 @dra27]spdx_licenses
library to check for valid licenses. This allows to use compound expressions such as "MIT AND (GPL-2.0-only OR LGPL-2.0-only)", as well as user defined licenses e.g. "LicenseRef-my-custom-license" [#4768 @kit-ty-kate - fix #4598] [#5571 @3Rafal - fix #5570]OPAMREPOSITORYTARRING
. [#5015 @kit-ty-kate @rjbou @AltGr - fix #4586] {2.1.3}
this-switch
is given [#4899 @rjbou - fix #4889]DEBIAN_FRONTEND=noninteractive
for unsafe-yes confirmation level [#4735 @dra27 - partial fix #4731]--show
[#5236 @AltGr]dummy-<success|failure>[:<*|0|pkgslist>:*|0|pkgslist>]"
[#5453 @rjbou @dra27]::
instead of REM [#5541 @dra27]SET
for opam env [#4816 @jonahbeckford]
set
instead [#5541 @dra27]^
[#4736 @vzaliva]opam admin cache
now ignores all already present cache files. Option --check-all
restores the previous behaviour of validating all checksums.--environment
documentation [#5235 @rjbou - fix #5184]OPAM_USER_PATH_RO
(never used on macOS and no longer needed on Linux) [#4795 @kit-ty-kate]ccache
directory [#5267 @rjbou - fix #5194]/bin/bash
instead of /usr/bin/env bash
for a more consistent experience [#5451 @kit-ty-kate]x-locked
extension fields for overlay internal use, it stores if the files originate from a locked file, if so its extension [#5080 @rjbou]depext-bypass
parsing with depth 1, no needed bracket if single package [#5154 @rjbou]--best-effort
only installs root package versions that where requested [#4796 #5261 @LasseBlaauwbroek]sys-pkg-manager-cmd
field to store specific system package manager command paths [#5433 @rjbou]opam exec
[#5476 @dra27]opam exec
[#5417 @dra27]OPAM_LAST_ENV
[#5417 @dra27 - fix #3411]--depth=1
to git-fetch in the Git repo backend [#4442 @dra27]best_effort ()
to allow for multiple different settings during the same session (useful for library users) [#4805 @LasseBlaauwbroek]O_SHARE_DELETE
, which eliminates unnecessary "access denied" errors in various situations on Windows. [#5435 @dra27]EACCES
in lock function [#4948 @oandrieu - fix #4944]OpamStd.ABSTRACT
) [#4918 @rjbou]is_archive
tar & zip: if file exists check magic number, otherwise check extension [#4964 @rjbou]grep -F
instead of fgrep
, as the latter is deprecated [#5309 @MisterDA]jsonm
(and uutf
) dependency [#5098 @rjbou - fix #5085]sha
dependency [#5042 @kit-ty-kate]swhid_core
dependency [#4859 @rjbou] [#5497 @kit-ty-kate]--without-dune
to configure to force compiling vendored Dune [#4776 @dra27]--without-dune
in make cold
to avoid picking up external Dune [#4776 @dra27 - fix #3987]--with-vendored-deps
to replace make lib-ext
instruction [#4776 @dra27 - fix #4772]
-j
for Unix (Windows already does) [#4988 @dra27]opam-state
depends on opam-solver
[#5208 @rjbou]opam
package for all rules that need opamMain.exe.exe
[#5496 @Leonidas-from-XIVshell/bootstrap-ocaml.sh
[#5557 @MisterDA]For this release, we tested to track API changelog.
OpamAction
: prepare_package_source
can now take any switch state (previously required rw
) [#4850 @rjbou]OpamAction
: add ?dev_setup
filtering argument in build_package
, install_package
[#5016 #5214 @rjbou]OpamAction
: in build_package
, install_package
, and remove_package
expand build-env
variables content added to the environment [#5352 @dra27] {2.1.5}
OpamAction
: when defined, add Cygwin binary path to build environment [#5543 @rjbou]OpamArg.mkd_subdoc
: add an optional argument for extra default elements: ?extra_defaults:(validity * string * string) list
[#4910 @kit-ty-kate]OpamArg.opam_init
: retrieve Cygwin binary path from config (low level reading) to add it to OpamCoreConfig.r.cygbin
[#5543 @rjbou]OpamArgTools
: all flag definition takes now a section as a labelled argument [#5275 @rjbou]OpamArg
: all flag definition takes now a section as an optional argument, default is set to Manpage.s_options
[#5275 @rjbou]OpamArg
: externalise post
, dev
, doc_flag
, test
, and devsetup
package selection flags, to avoid redefining them [#5299 @rjbou]OpamArg
, OpamArgTools
: add experimental
optional argument to cli_from
and replace default
by option:['experimental | 'default]
for cli_between
, to handle experimental features [#5099 @rjbou]OpamAuxCommand
: add ?locked
(and handle lock file then) argument to name_and_dir_of_opam_file
, opams_of_dir
, opams_of_dir_w_target
, resolve_locals
, autopin
, and simulate_autopin
[#5080 @rjbou]OpamClient.PIN
: change ?locked:bool
argument into string
, to have lock extension name [#5080 @rjbou]OpamClient.PIN.post_pin_action
: no more updates depexts information, moved to OpamSwitchState.update_pin
[#5047 @rjbou] {2.1.3}
OpamClient.update_with_init_config
: Fix passing the dl_cache
from InitConfig
to Config
[#5315 @hannesm] {2.1.5}
OpamClient
: requested
argument moved from name_package_set
to package_set
, to precise installed packages with --best-effort
[#4796 @LasseBlaauwbroek]OpamClient
: fix update_with_init_config
, when ``jobswas set in
init_config`, it dropped rest of `config` update [#5056 @rjbou] {2.1.3}
OpamClient
: handle formula on several functions, adding a formula
labelled or optional argument (upgrade_t
, compute_upgrade_t
, upgrade
, fixup
, install_t
, install
, remove_t
, and remove
) [#4975 @AltGr]OpamConfigCommand.global_allowed_fields
: make it fully lazy [#5162 @LasseBlaauwbroek]OpamConfigCommand.global_allowed_fields
: add archive-mirrors
(dl_cache
) to allowed modifiable fields, extendable [#5321 @hannesm @rjbou]OpamConfigCommand
: set_opt_switch
, set_var_switch
, options_list_switch
, and var_list_switch
now raise configuration error exception (50) if no switch is found [#5027 @rjbou] {2.1.3}
OpamConfigCommand
: add a labelled argument no_switch
to exec
[#4957 @kit-ty-kate]OpamListCommand.apply_selector
, string_of_selector
: change column name base to invariant, and the content is invariant formula installed dependencies [#5208 @rjbou]OpamListCommand
: add ?dev_setup
filtering argument in dependency_toggles
[#5016 #5214 @rjbou]OpamListCommand
: add swhid
in info
printable fields and its handling in details_printer
OpamPinCommand.fetch_all_pins
: return the list of well fetched pins instead of fetched urls [#5080 @rjbou]OpamPinCommand
, OpamClient
, OpamAuxCommands
: use OpamStateTypes
pin record types [#5080 @rjbou]OpamSolution.apply
: take an optional argument skip
, to avoid filtering solution beforehand [#4975 @AltGr]OpamSolution
: add dry_run
to simulate the new switch state after applying a solution [#5171 @cannorin]OpamSolution
: add print_requested
to print actions reasons [#4975 @AltGr]OpamStd.ABSTRACT
: add compare
and equal
, that added those functions to OpamCLIVersion
[#4918 @rjbou]OpamSwitchCommand.install_compiler
: fill empty switch synopsis with invariant formula instead of compiler package name [#5208 @rjbou]OpamSwitchCommand
: add previous_switch
[#4910 @kit-ty-kate]OpamTreeCommand
: add module [#5171 @cannorin]OpamRepositoryConfig
: add in config record repo_tarring
field and as an argument to config functions, and a new constructor REPOSITORYTARRING
in E
environment module and its access function [#5015 @rjbou] {2.1.3}
OpamClient.filter_unpinned_locally
now display a warning of skipped packages instead of debug log [#5083 @rjbou]OpamSolution.parallel_apply
: fix sources_needed package set, now integrate requested but not locally pinned packages [#5082 @rjbou]?subpath
to OpamRepository.fetch_dev_packages
, OpamVCS.is_up_to_date
and VCS specific functions in OpamDarcs
, OpamHG
, and OpamGit
[#4876 @rjbou]OpamRepositoryConfig.E
: add curl_t
and fetch_t
to get their respective environment variables value dynamically, without lazyness. It is used in opamClient.InitDefaults
, that can be called at topelevel [#5111 @rjbou]OpamRepository.update
: Return a change state result of the repo update [#5043 @Armael]OpamVCS.VCS
: add a clean
function to the interface clearing all the uncommitted files [#4879 @rjbou] {2.1.3}
OpamVCS.pull_url
: clean repository before fetching [#4879 @rjbou] {2.1.3}
OpamDownload
: Add SWHID
submodule that implements SWH fallback (retrieve url, download, check hash, and copy in target) [#4859 @rjbou]OpamCLIVersion.of_string
: print version when failing to parse it [#5566 @MisterDA]OpamInitdefaults.recommended_tools
: don't require cc
on Windows [#5541 @dra27]OpamEnv
: add env_expansion
[#5352 @dra27] {2.1.5}
OpamEnv
: add handling of SH_pwsh
and SH_cmd
in shell lists [#5541 @dra27]OpamEnv
: fix invalid argument raised when trying to unzip empty string [#5350 @dra27] {2.1.5}
OpamEnv
: generalise splitting of environment variables [#5541 @dra27]OpamEnv
: skip environment updates and revert with empty strings [#5350 @dra27] {2.1.5}
OpamFormatUpgrade
: add repo_switch_hard_upgrade
to perform inner layers hard upgrade when needed if write lock is required [#5305 @rjbou]OpamGlobalState.load
: Retrieve Cygwin binary path from config to add it to opamCoreConfig.r.cygbin [#5543 @rjbou]OpamGlobalState
: add as_necessary_repo_switch_upgrade
that checks conditions and call OpamFormatUpgrade.repo_switch_hard_upgrade
[#5305 @rjbou]OpamPackageVar
: add ?dev_setup
filtering argument in filter_depends_formula
, all_depends
[#5016 #5214 @rjbou]OpamPinned
: add ?locked:string
(and handle lock file then) argument to files_in_source
, and name_of_opam_filename
[#5080 @rjbou]OpamPinned
: add version_opt` [#5325 @kit-ty-kate]OpamPinned
: use pin record types [#5080 @rjbou]OpamPinned
: when looking at opam files, keep (and return) information about its locked origin [#5080 @rjbou]OpamStateTypes.global_state
: add global_state_to_upgrade
field to keep incomplete upgrade information [#5305 @rjbou]OpamStateConfig
: add with-dev-setup support ; i.e. add E.withdevsetup
, add with_sev_setup
in config record [#5016 #5214 @rjbou]OpamStateTypes
: Add record types for to pin and pinned packages informations (in order to avoid n-uplet with n
growing) ; name_and_file
, name_and_file_w_url
, nameopt_and_file
, nameopt_and_file_w_url
, and pinned_opam
[#5080 @rjbou]OpamSwitchState.load
: fill empty switch synopsis with invariant formula instead of compiler package name [#5208 @rjbou]OpamSwitchState.universe
: requested
argument moved from name_package_set
to package_set
, to precise installed packages with --best-effort
[#4796 @LasseBlaauwbroek]OpamSwitchState.universe
: add a chrono for universe loading [#4975 @AltGr]OpamSwitchState.universe
: set to false unresolved variables used in constraint, and warn [#5141 @rjbou - fix #5139]OpamSwitchState.update_pin
: updates depexts state informations (sys_packages
, avalaible_packages
) [#5047 @rjbou] {2.1.3}
OpamSwitchState
, OpamRepositoryState
: at the beginning of load
function, check if an upgrade is needed with OpamGlobalState.as_necessary_repo_switch_upgrade
[#5305 @rjbou]OpamSwitchState
: add ?dev_setup
filtering argument in universe
[#5016 #5214 @rjbou]OpamSwitchState
: add compiler_packages
that returns set of installed compilers, with their dependencies including only build & depopt [#5480 @rjbou]OpamSwitchState
: move and reimplement opam-solver
dependencies
and reverse_dependencies
[#5337 @rjbou]OpamSysInteract.Cygwin
: add cygbin_opt
to retrieve Cygwin binary path from config file [#5543 @rjbou]OpamSysInteract.Cygwin
: add check_install
to check that a given path is a Cygwin installation, regarding presence of cygcheck.exe
[#5544 @rjbou @dra27]OpamSysInteract.Cygwin
: add check_setup
to check, copy or download a Cygwin setup.exe [#5544 @rjbou]OpamSysInteract.install_packages_command
: change return type to (['AsAdmin of string | 'AsUser of string] * string list) list
[#5268 @kit-ty-kate]OpamSysInteract
: add package_manager_name
[#5268 @rjbou]OpamSysInteract
: add global config argument to function, in order to be able to retrieve system package manager path for MSYS2, and in the future Cygwin, etc. [#5433 @rjbou]OpamSysPoll
, OpamSysInteract
: Add optional argument ?env:(variable_contents option Lazy.t * string) OpamVariable.Map.t
to OpamSysPoll
and OpamSysInteract
functions. It is used to get syspolling variables from the environment first. [#4892 @rjbou]OpamUpdate.download_package_source
: add SWH fallback when archive remain not found [#4859 @rjbou]OpamUpdate.pinned_package
: use locked information to automatically update from locked file if present, if ?autolock
is given to true [#5080 @rjbou]OpamUpdate
: change repository
output to update function option, to not write cache and new repo config if nothing changed in repositories
[#5146 @rjbou]OpamActionGraph.to_aligned_strings
: add explicit
optional argument to print action name in utf8 [#5045 @AltGr]OpamCudf.filter_solution
: can do not remove recursively actions with optional ~recursive:true
[#4975 @AltGr]OpamCudf.print_solution
: add optional skip
, to avoid filtering solution beforehand [#4975 @AltGr]OpamCudf
: Change type of conflict_case.Conflict_cycle
(string list list
to Cudf.package action list list
) and cycle_conflict
, string_of_explanations
, conflict_explanations_raw
types accordingly [#4039 @gasche]OpamCudf
: add conflict_cycles
[#4039 @gasche]OpamCudf
: add trim_universe
[#5024 @AltGr] {2.1.3}
OpamCudf
: add trim_universe
, opam_deprequest_package_name
, and opam_deprequest_package
[#4975 @AltGr]OpamSolver.coinstallable_subset
: add add_invariant
optional argument [#5024 @AltGr] {2.1.3}
OpamSolver.CUDF_versions_map
: no more takes a package set as argument, compute whole packages (repo + installed) and take accounet of invariant [#5024 @AltGr] {2.1.3}
OpamSolver.explicit
: when adding fetch nodes, add shared source ones. Change of sources_needed
argument type [#4893 @rjbou]OpamSolver.installable
: use installable_subset
that uses coinstallable_subset
[#5024 @kit-ty-kate] {2.1.3}
OpamSolver.load_CUDF_universe
: change staging of add_invariant
[#5024 @AltGr] {2.1.3}
OpamSolver.print_solution
: change output format [#5045 @AltGr]OpamSolver
, OpamCudf
: Several changes to handle installation from a formula [#4975 @AltGr]OpamSolver
, OpamCudf
: remove dependencies
and reverse_dependencies
[#5337 @rjbou]OpamSolver
: add removed_packages
to retrieve packages that are removed from solution [#5208 @rjbou]OpamSwitchAction.update_switch_state
: compiler_packages
now computes dependency cone of invariant formula [#5208 @rjbou]OpamSwitchState
: add invariant_root_packages
, compute_invariant_packages
, compute_compiler_packages
[#5208 @rjbou]
OpamSwitchState
: invariant_root_packages
, compute_invariant_packages
, compute_compiler_packages
no more take an universe
argument [#5503 @kit-ty-kate - fix #5502]OpamFile.Config
: order list of installed switches according their last use, update with_switch
accordingly, and add previous_switch
[#4910 @AltGr]OpamFile.Dot_install
: Exposed with_*
functions [#5169 @panglesd]OpamFile.Environment
: enable atomic writing [#5476 @dra27]OpamFile.OPAM.effective_part
and OpamFile.OPAM.effectively_equal
now take an optional ?modulo_state:bool
parameter, that if true
, eliminates the fields relying on the state of the switch (depends, available, …). This is false
by default. [#5118 @kit-ty-kate]OpamFile.OPAM.effective_part
: empty extra-source url if checksum is specified and take first one (as for url) [#5258 @kit-ty-kate]OpamFile.OPAM.effectively_equal
: return true if an extra-source url changes but not its checksum (as for url) [#5258 @kit-ty-kate]OpamFile.OPAM.to_string_with_preserved_format
: handle substring errors [#4941 @rjbou - fix #4936]OpamFile.OPAM
: Add locked
, file origin and extension, in the record with its modifiers/getter [#5080 @rjbou]OpamFile.URL
: add swhid
field in t
record, and its access functions [#4859 @rjbou]OpamFile.URL
: add with_mirrors
[#4859 @rjbou]OpamFile
: add atomic
value in IO_Arg
to enable/disable atomic file writing [#5476 @dra27]OpamFilter
: add ?custom
argument in to_string
to tweak the output [#5171 @cannorin]OpamFilter
: add ?dev_setup
filtering argument in filter_deps
[#5016 #5214 @rjbou]OpamFormula
: add generic formula_to_cnf
and formula_to_dnf
, and use them in to_cnf
and to_dnf
[#5171 @cannorin]OpamPackage.Version
: add default
returning the version number used when no version is given for a package [#4949 @kit-ty-kate]OpamPath.Switch
: add man_dirs
[#4915 @rjbou] {2.1.3}
OpamStd.ABSTRACT
: add compare
and equal
, that added those functions to OpamSysPkg
and OpamVariable
[#4918 @rjbou]OpamTypes.universe
: remove u_base
field, as it is no more needed with switch invariant [#5208 @rjbou]OpamTypes
: Change 'Fetch
action to take several packages, in order to handle shared fetching of packages [#4893 @rjbou]OpamTypes
: request.wish_install
now takes a formula instead of a conjunction [#4975 @AltGr]OpamCompat.Unix
: add realpath
for ocaml < 4.13, and use it in OpamSystem
[#5152 @rjbou]OpamCompat
: add Filename.quote_command
[#5543 @rjbou]OpamCompat
: add Int.equal
(for ocaml < 4.12)OpamCompat
: add Lazy
module and Lazy.map
function [#5176 @dra27] {2.1.3}
OpamConsole.Tree
: add valu
and children
getters [#5303 @cannorin]OpamConsole.header_msg
: remove trailing space when there is no left padding [#5363 @rjbou]OpamConsole
: add a Tree
submodule to draw a unicode/ascii-art tree [#5171 @cannorin]OpamCoreConfig.r
: remove openssl related config: use_openssl
parameter & config field, and OPAMUSEOPENSSL
environment variable [#5042 @kit-ty-kate]OpamCoreConfig
: add cygbin
, the Cygwin install binary path [#5543 @rjbou]OpamDirTrack
: Add to_summary_string
to summarise changes [#5144 @na4zagin3]OpamFilename.SubPath
: remove pretty_string
in favor to OpamUrl.to_string_w_subpath
[#5219 @rjbou]OpamFilename.clean_dir
: as the directory is recreated after removal, checks that the directory exists beforhand. It avoid creating a new empty directory uselessly [#4967 @rjbou]OpamFilename
: add with_open_out_bin
and with_open_out_bin_atomic
[#5476 @dra27]OpamFilename
: add a SubPath
submodule to handle multi-platform subpath specifications. It has an effect on a lot of functions signatures [#4876 @rjbou]OpamHash
: add is_null
OpamHash
: add sort
from strongest to weakest kindOpamHash
: add module SWHID
that create and check Software Heritage IDs hashes format [#4859 @rjbou]OpamJson
: use Jsonm
and add an of_string
function [#5142 @rjbou]OpamJson
: use Jsonm
and add an of_string
function [#5142 @rjbou]OpamParallel
, MakeGraph(_).to_json
: fix incorrect use of List.assoc [#5038 @Armael]OpamProcess.apply_cygpath
: fix empty output [#5543 @rjbou]OpamProcess.wait_one
: display command in verbose mode for finished found process [#5091 @rjbou]OpamProcess
: add default_env
to retrieve environment, if Cygwin is set, adds Cygwin binary path to environment ; and use it instead of Unix.environment
[#5543 @rjbou]OpamProcess
: expose the command
type as a private type [#5452 @Leonidas-from-XIVOpamSHA
: add sha1
support [#4859 @rjbou]OpamSHA
: use now only sha
, some function removed (shaxxx
, shaxxx_bytes
, etc.) [#5042 @kit-ty-kate]OpamSWHID
: add module to handle swhid [#4859 @rjbou]OpamStd.ABSTRACT
: add compare
and equal
, that added those functions to OpamFilename
, OpamHash
, OpamStd
, OpamStd
, OpamUrl
, and OpamVersion
[#4918 @rjbou]OpamStd.Compare
: add module to flag polymorphic comparison functions in opam codebase [#5374 @kit-ty-kate @rjbou]OpamStd.Config.E
: add value_t
to allow getting environment variable value dynamically [#5111 @rjbou]OpamStd.Config.E
: add a REMOVED
variant to allow removing completely an environment variable handling [#5112 @rjbou]OpamStd.Env.
: introduce OpamStd.Env.Name
to abstract environment variable names [#5356 @dra27]OpamStd.Env
: add cyg_env
that returns the environment with PATH containing Cygwin binary path [#5543 @rjbou]OpamStd.List
: add find_map_opt
(for ocaml < 4.10) and fold_left_map
(for ocaml < 4.11) [#5171 @cannorin]OpamStd.List
: add pick
[#4859 @rjbou]OpamStd.List
: add comparison function argument to some OpamList
functions [#5374 @kit-ty-kate @rjbou]OpamStd.Map
: add filter_map
[#5337 @rjbou]OpamStd.Option
: add equal
function [#5374 @rjbou]OpamStd.Set
: Add to_list_map
[#5308 @kit-ty-kate]OpamStd.String
: add is_hex
[#4859 @rjbou]OpamStd.Sys.get_windows_executable
: Add cygbin
argument to pass Cygwin binary path [#5543 @rjbou]OpamStd.Sys.is_Cygwin_variant
: returns a boolean [#5543 @rjbou]OpamStd.Sys
: add SH_pwsh of powershell_host
and SH_cmd
to shell
type [#4816 @jonahbeckford #5203 @dra27 #5541 @dra27]OpamStd.Sys
: add all_shells
list of all supported shells [#5217 @dra27]OpamStd.Sys
: add get_windows_executable_variant
to use instead of is_Cygwin_variant
[#4817 @jonahbeckford]OpamStd.Sys
: add is_Cygwin_cygcheck
anf get_Cygwin_variant
[#5543 @rjbou]OpamStd.Sys
: fix get_windows_executable_variant
to distinguish MSYS2 from Cygwin, esp. for rsync rather than symlinking [#5404 @jonahbeckford]OpamSystem.copy_dir
: two-pass rsync
copy for MSYS2
, to handle symlinks [#4817 @jonahbeckford]OpamSystem.read_command_output
: add an optional parameter to unmerge stdout and stderr [#4859 @rjbou]OpamSystem.real_path
: Remove the double chdir trick on OCaml >= 4.13.0 [#4961 @kit-ty-kate]OpamSystem
: avoid calling Unix.environment at top level [#4789 @hannesm] {2.1.1}
OpamURL
: add module SWHID
that contains helpers from and to internal swhid url [#4859 @rjbou]OpamURL
: add to_string_w_subpath
to display subpath inside urls (before hash) [#5219 @rjbou]Published by rjbou over 1 year ago
This is the release of opam 2.1.5.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
archive-mirrors
field from init config file to config [#5315 @hannesm]EDIT 31/05/2023: opam-full-2.1.5.tar.gz
was rebuilt, removing the mistakenly included .gît
directory, reducing archive size.
Published by kit-ty-kate almost 2 years ago
This is the release of opam 2.1.4.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
dose3 >= 6.1
and base64 >= 3.1.0
are now required [#5357 @kit-ty-kate @dra27 - fix #5354]Published by rjbou about 2 years ago
This is the release of opam 2.1.3.
Binaries and full archive are signed by by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
opam init
and opam init --reinit
when the jobs
variable has been set in the opamrc or the current config. [#5056 @rjbou]opam list --installable
queries combined with other filters [#4882 @AltGr - fix #4311]--available
, --installable
) [#4999 @kit-ty-kate]opam list --conflicts-with
when combined with other filters [#4999 @kit-ty-kate]opam show
by as much as 300% when the package to show is given explicitly or is unique [#4998 @kit-ty-kate - fix #4997 and partially #4172]opam pin
[#5047 @rjbou - fix #5046]opam var
no longer fails if no switch is set [#5027 @rjbou - fix #5025]--switch <sw>
fails instead of writing an invalid switch-config
file [#5027 @rjbou]make doc
with Dune 2.7 (unblocks opam2web
build) [#5030 @kit-ty-kate]OpamClient
: fix update_with_init_config
, when jobs
was set in init_config
, it dropped rest of config
update [#5056 @rjbou]OpamConfigCommand
: set_opt_switch
, set_var_switch
, options_list_switch
, and var_list_switch
now raise configuration error exception (50) if no switch is found [#5027 @rjbou]OpamClient.Pin.post_pin_action
: no more updates depexts information, moved to OpamSwitchState.update_pin
[#5047 @rjbou]OpamVCS.VCS
: add a clean
function to the interface clearing all the uncommited files [#4879 @rjbou]OpamVCS.pull_url
: clean repository before fetching [#4879 @rjbou]OpamSwitchState.update_pin
: updates depexts state informations (sys_packages
, avalaible_packages
) [#5047 @rjbou]OpamCompat
: add Lazy
module and Lazy.map
function [#5176 @dra27]Published by kit-ty-kate almost 3 years ago
This is the release of opam 2.1.2.
Binaries and full archive are signed by the opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92
).
Changelog:
Published by AltGr almost 3 years ago
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.
Published by AltGr almost 3 years ago
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
).
Published by AltGr about 3 years ago
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.
Published by AltGr about 3 years ago
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.
Published by AltGr over 3 years ago
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.
Published by AltGr over 3 years ago
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.