opam

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.

OTHER License

Stars
1.2K
Committers
159

Bot releases are visible (Hide)

opam - 2.0.8

Published by AltGr over 3 years ago

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).

Changelog:

Fish

  • Add colon for fish MANPATH fix. [#4084 @rjbou - fix #4078]

Sandbox

  • No error when linked directory doesn't exist (e.g. XDG defined) [#4278 @kit-ty-kate]
  • Add quotes to avoid space unwanted behaviors [#4278 @kit-ty-kate]
  • Handle CCACHE_DIR environment variable in sandbox script. [#4087 @rjbou - fix #4079]
  • Follow links of ~/.cache & ~/.cache/dune for bwrap call. [#4087 @rjbou - fix #4068]
  • Don't overwrite user's sandbow script modification. [#4020 #4092 @rjbou]
  • On MacOS sandbox script, always read write mount /tmp [#3742 @rjbou - fix ocaml/opam-repository#13339]

Install

  • The stdout of pre- and post-session hooks is now propagated to the user [#4382 @AltGr - fix #4359]
  • Run switch pre/post sessions hooks [#4476 @rjbou - fix #4472]

Build

  • Use version var in opam file instead of equal current version number in opamlib dependencies [#4178 @rjbou]
  • Opam file build using dune [#4178 @rjbou #4229 @kit-ty-kate - fix #4173]
  • Update opam file to 2.0 [#4371 @AltGr]

Internal

  • Fix arch detection when using 32bit mode on ARM64 [#4462 @kit-ty-kate]
  • Fix arch detection of i486 [#4462 @kit-ty-kate]
opam - 2.1.0~beta4

Published by AltGr almost 4 years ago

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 ).

Overview

A more complete overview of opam 2.1.0~beta4 is on the platform blog.

CLI Versioning

--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.

Other new features

  • opam now exits with code 31 if all failures were during fetch operations (#4214)
  • opam install now has a --download-only flag (#4036), allowing opam's caches to be primed
  • opam 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)
  • New package variable 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 too
  • depext support NetBSD and DragonFlyBSD added (#4396)
  • The format-preserving opam file printer has been overhauled (#3993, #4298 and #4302)
  • pins are now fetched in parallel (#4315)
  • os-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)

Bug fixes

  • Sandboxing and init script fixes (#4368 and #4482)
  • stdout of pre- and post-session hooks is now propagated to the user (#4359)
  • Switch-specific hooks now work (#4472)
  • Various fixes to architecture detection (#4462)
  • Don't advertise upgrades to hidden versions (#4432)
  • Don't recompile when modifying the package flags (#4477)
  • 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)
  • Fixed updates of the invariant with --update-invariant (#4431) ** NO DESCRIPTION **
  • Various pinning fixes (#4255, #4365, #4348 and #4399)
  • --working-dir now works with local switches (#4433)
  • Handling of filename-encoded pkgname in opam files now works (#4401)
  • Display of package variables when there's no config file now no longer loads switch state and works (#4428)
  • Allow short names and full name paths for ports-based systems for depext; affects OpenBSD, FreeBSD and Gentoo (#4396)
  • Fixed 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)
  • Solver fixes (#4362, #4393 and #4357)
  • Fixed permission denied fallback calling openssl (#4449 - part of #4448)
  • --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.

opam - 2.1.0~beta2

Published by AltGr about 4 years ago

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 ).

Changelog

Global CLI

  • Reduce startup time with better use of more caches, etc. [#4341 @altgr]
  • Do not load the full state on opam exec when not necessary [#4341 @altgr]

Init

  • Fix the sandboxing check introduced in beta1 [#4342 @altgr]

Pin

  • Fix the --with-version flag, which wasn't always honored [#4346 @altgr]

External dependencies

  • Upgrade bootstrap OCaml compiler from 4.09.1 to 4.11.1 [#4242 @avsm @dra27 @MisterDA @rjbou]

Test

  • Update and expand Travis and AppVeyor test matrices [#4242 @MisterDA]

Solver

  • More concise explanation of package conflicts [#4349 @altgr]

Internal

  • Switch AppVeyor Cygwin from snapshot back to main repository [#4338 @dra27]
opam - 2.1.0~beta

Published by AltGr about 4 years ago

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 ).

Changelog

Possibly scripts breaking changes are prefixed with ✘.
New option/command/subcommand are prefixed with ◈.

Global CLI

  • --cli / OPAMCLI option added [#4316 @dra27]
  • --yes passed to all commands, and plugins [#4316 @dra27]

Init

  • On init, check availability of sandbox and propose to disable [#4284 @rjbou - fix #4089]

Config Upgrade

  • config upgrade: on the fly upgrade if no write lock required [#4313 @rjbou]

Pin

  • ◈ Add pin scan subcommand to list available pins [#4285 @rjbou]
  • ◈ Add --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]
  • ◈ Add with-version option to set the pinned package version [#4301 @rjbou]
  • `OpamPinCommand.source_pin', for new package confirmation, don't check that no opam file is given as argument [#4301 @rjbou]

Switch

  • Support -n as an alias of --no-action (to match opam-pin) [#4324 @dra27]

List

  • form no longer advertised as valid for --columns [#4322 @dra27]

Lock

  • Support -d as alias of --direct-only (to match plugin) [#4319 @dra27]

VCS

  • Add error message in case git repo is empty [#4303 @rjbou - fix #3905]

Admin

  • form no longer advertised as valid for --columns in list [#4322 @dra27]

Solver

  • Don't penalise packages with more recent hidden-versions [#4312 @AltGr]

Client

  • Provide all functions in the client library [#4329 @AltGr]

Internal

  • Process: don't display status line if not verbose, and status line disabled [#4285 @rjbou]
  • Optimise package name comparison [#4328 @AltGr - fix #4245]

Documentation

Various contributors helped us to update and add code documentation:

  • [#4334 @smorimoto]
  • [#4317 @dra27]
opam - 2.1.0~alpha3

Published by AltGr about 4 years ago

opam - 2.1.0~alpha2

Published by AltGr about 4 years ago

This is the second alpha release of opam 2.1.0.

This alpha release contains many fixes and a few polished or new features upon alpha1.

Binaries and full archive are signed by AltGr.

Changelog

Possibly script-breaking changes are prefixed with ✘
New options are prefixed with ◈

Init

  • Remove m4 from the list of recommended tools [#4184 @kit-ty-kate]
  • Fix config solver field ignored [#4243 @rjbou - fix #4241]

Upgrade

  • Fix atoms formula restriction with --all [#4221 @rjbou - fix #4218]

Archives fetch

  • Copy instead of calling rsync when archives are in a local cache [#4270 @kit-ty-kate]

Install

  • Add _build to rsync exclusion list [#4230 @rjbou - fix #4195]
  • Recursive opam file lookup: ignore _build [#4230 @rjbou]
  • Assume-built fix & rewriting [#4211 @rjbou]

Remove

  • Fix autoremove env var handling [#4219 @rjbou - fix #4217]

Switch

  • Fix Not_found with opam switch create . --deps [#4151 @AltGr]
  • Package Var: resolve self name variable for orphan packages [#4228 @rjbou - fix #4224]
  • ✘ Reject (shell) character on switch names [#4237 @rjbou - fix #4231]
  • Fix OPAMSWITCH empty string setting, consider as unset [#4237 @rjbou]
  • Add missing depext to unavailable reasons [#4194 @rjbou - fix #4176]
    • Fix not found error [#4279 @rjbou]
  • ✘ Bump config file version to 2.1 (new depext fields) [#4280 @rjbou - fix #4266]

Pin

  • Add depext handling on new pinned packages [#4194 @rjbou - fix #4189]
  • Don't keep unpinned package version if it exists in repo [#4073 @rjbou - fix #3630]
  • Fix path resolving when pinning with file:// [#4209 @rjbou - fix #4208]
  • ✘ Disable recursive & subpath pinning (only present experimentally in opam 2.1.0~alpha) [#4252 @rjbou]

List

  • Add --no-depexts option to disable depexts packages unavailability [#4194 @rjbou - fix #4205]
  • Warn if packages are not listed because of depexts unavailability [#4194 @rjbou - fix #4205]

Show

  • ✘ Display error message for all not found packages [#4179 @rjbou - fix #4164]
  • ✘ Keep package order given via cli [#4179 @rjbou - fix #4163]
  • --sort apply to with all options, not only --just-file [#4179 @rjbou]

Var

  • Add scope display on Not found message [#4192 @rjbou]
  • No scope needed for variable display [#4192 @rjbou - fix #4183]
  • Fix package variable resolution [#4192 @rjbou - fix #4182]

Option

  • Fix messages advertising a command in an obsolete format [#4194 @rjbou]
  • Add switch depext-bypass as modifiable field [#4194 @rjbou - fix #4177]

Lint

  • E65: check that url local paths are absolute [#4209 @rjbou]

External dependencies handling, aka depext

  • Fix arch query [#4200 @rjbou]
  • Add message when adding a package to depext-bypass [#4194 @rjbou]
  • Fix performance issue of depext under Docker/debian [#4165 @AltGr]
  • Refactor package status [#4152 #4200 @rjbou]
  • Add environment variables handling [#4200 @rjbou]
  • Add Macport support [#4152 @rjbou]
  • Homebrew: add no auto update env var for install, accept pkgname and pkgname@version on query [#4200 @rjbou]
  • Tag packages with missing depexts in Cudf [#4235 @AltGr]
  • Force LC_ALL=C for query commands [#4200 @rjbou]
  • Put back opam-depext-2.0's behaviour with regards to asking users' consent before installing system packages [#4168 @kit-ty-kate @rjbou]
  • Add OPAMDEPEXTYES env variable to pass --yes options to system package manager [#4168 @kit-ty-kate @rjbou]
  • Fix install command dryrun [#4200 @rjbou]
  • ◈ Add --depext-only to install only external dependencies, regardless of config depext status [#4238 @rjbou]
  • Move confirmation message after opam packages install [#4238 @rjbou]
  • Error if --depext-only is given with --assume-depexts or --no-depexts [#4238 @rjbou]
  • Handle debian virtual packages [#4269 @AltGr @rjbou - fix #4251]

Sandbox

  • No error when linked directory doesn't exist (e.g. XDG defined) [#4278 @kit-ty-kate]
  • Add quotes to avoid space unwanted behaviors [#4278 @kit-ty-kate]

Repository management

  • Fix temp files repository cleaning [#4197 @rjbou]

Build

  • Opam file build using dune, removal of opam-%.install makefile target [#4178 @rjbou #4229 @kit-ty-kate - fix #4173]
  • Use version var in opam file instead of equal current version number in opamlib dependencies [#4178 @rjbou]
  • src ext: fix extlib url [#4248 @rjbou]
  • Bump to 2.1.0~alpha2 version [#4253 @rjbou]

Infrastructure

  • Use OCaml 4.09.1 for the make cold target [#4257 @dra27]

Admin

  • Fix admin cache synchronisation message [#4193 @rjbou - fix #4167]

Opam installer

  • For paths, remove use of empty switch in favor of a context-less module [#4237 @rjbou]

Opam file

  • Fix mismatching extra files detection [#4198 @rjbou]

Solver

  • Fix Cudf generation for compat with external solvers [#4261 @AltGr]
  • Check for a solution before calling the solver [#4263 @AltGr]
  • Add the package flag hidden-version to discourage selection by the solver [#4281 @AltGr]
  • Tweak the default criteria to handle missing-depexts and hidden-version flags [#4281 @AltGr]

Internal

  • Disable chrono when timestamps are disables [#4206 @rjbou]
  • Expose some functionality in the OpamAction, OpamPath and OpamSwitchState modules for use without a switch value [#4147 @timberston]
    • Path: introduce a functor to permit replicating switch layout in different contexts
  • Std: Add map_reduce to Set and Map [#4263 @AltGr]
  • Fix regression in command resolution from #4072 [#4265 @dra27]

Test

  • Add show cram test [#4206 @rjbou]
  • Add envrionnement variable handling on cram test [#4206 @rjbou]

Documentation

Various contributors helped us to update and add code documentation:

  • [#4264 @dra27]
  • [#4273 @robz]
  • [#4197 #4236 #4252 @rjbou]
opam - 2.1.0~alpha

Published by AltGr over 4 years ago

This is the alpha release of opam 2.1.0.

This alpha release contains many new features, please see blog post for some highlights and upgrade instructions.

Binaries and full archive are signed by @AltGr.

Changelog (possibly scripts breaking changes are prefixed with ✘):

New features

Recursive pin

Opam now handles lookup for opam files on subdirectories with recursive, subpath based, and subpath recursive pin: --recursive and --subpath PATH options. On recursive mode, opam goes through subdirectories to find opam files & pin them to their subdirectories. On subpath based mode, opam goes to the given subdirectory to find opam file & pin it to this subdirectory.

  • Recursive & subpath based pin [#3499 @rjbou @hngrgr - fix #3174 #3477] {2.1.0-alpha}

Switch Invariant

Define switch base packages as a switch invariant, a generic dependency formula instead of an immutable specific package/version.

  • Define switch invariants rather than "base packages" [#3894 @AltGr] {2.1.0-alpha}

  • Don't warn on switch creation with 'ocaml' as invariant [#4108 @AltGr] {2.1.0-alpha}

  • Better error handling on switch creation [#4121 @AltGr] {2.1.0-alpha}

Lock

opam-lock was during a long time an opam plugin, and it is now integrated into opam. Option --locked permits to lock an opam package, according the current switch. It produces a locked file (by default <pkgname>.opam.locked, can be specified with --lock-suffix) that contains the original opam file with its depends: field all package are set to their exact version available in the current switch.

  • Integrate lock plugin [#3746 @rjbou - fix #3734 #3769 #3694] {2.1.0-alpha}

  • Check consistency with opam file when reading lock file to suggest regeneration message [#3680 @rjbou - fix #3654] {2.0.2}

Options configuration

Replace switch and global variables settings opam config set options, by opam var and opam option to generalize them to all modifiable options and variables:

  • opam var|option: list modifiable options and their values

  • opam var|option foo: display foo value, available for all

  • opam var|option foo(=|-=|+=)bar: update foo value

  • opam var|option foo=: remove/revert foo value

By default, acts on switch scope. It can be specified with --global or --switch sw.

It deprecates opam config (set|unset|set-global-unset-global) commands.

  • Add configuration modifications as opam config subcommands [#3992 @rjbou] {2.1.0-alpha}

  • opam var and opam option outside of opam config [#4116 @rjbou - fix #4119] {2.1.0-alpha}

  • Enable option var optim switch load [#4138 @rjbou] {2.1.0-alpha}

Depext

opam-depext is also a long time opam plugin, used to show / install external dependencies of opam packages. It is now fully integrated in the opam workflow:

  • check of installed package dependencies

  • on install, check that required dependencies are present, show / propose to install if not

Global configuration option depext, depext-verify, depext-cannot-install, depext-run-installs, and depext-bypasspermit to configure depext use and interactions. CLI options--assume-depextsand--no-depexts` can also be used for a single command.

  • Integrate depext plugin [#3975 @rjbou @AltGr - fix #3790 #1519 #2426 #3692] {2.1.0-alpha}

  • Enable command/output display only from verbose level 3 [#4141 @rjbou] {2.1.0-alpha}

New options

Install

  • opam install --check <pkg> checks that <pkg> dependencies are already installed in the switch. It reports missing ones and exits with 1, 0 otherwise. It is used on a check only purpose, additionally to --deps-only. [#3854 @rjbou - fix #3823] {2.1.0-alpha}

  • --ignore-conflicts to use with --deps-only in case it is needed to install dependencies without taking conflicts into account. [#3853 @rjbou - fix #3846] {2.1.0-alpha}

Show

  • opam show --just-file <file> shows information of a given file, without loading the switch state. It can be combined with other options, as field filter --field. It deprecates --file option. [#3729 @rjbou - fix #3721] {2.1.0-alpha}

  • opam show --all-versions <pkg> displays information of all versions of the given package. It can be used in combination of field filter. [#3867 @rjbou - fix #2980] {2.1.0-alpha}

  • opam show --sort <pkg> display on stdout a sorted opam file: all fields are alphabetically sorted. [#3866 @rjbou - fix ocaml/opam2web#173] {2.1.0-alpha}

  • Better error handling. [#4118 @rjbou - fix #3875] {2.1.0-alpha}

Lint

  • opam lint --check-upstream enables lint checks on archive urls. This option lead to download archives to check their checksum. [#3758 @rjbou] {2.0.5}

List

  • --silent to not write in the output, exit with return code 0 if the list is not empty, 1 otherwise. [#3533 @rjbou - fix #3525] {2.0.1}

Env

  • opam env --check permit to indicates if an opam environment is synchronized: returns 0 if up-to-date, 1 otherwise. [#4074 @rjbou - fix #3725] {2.1.0-alpha}

Switch export

  • --freeze option record VCS commit hash when a VCS url is specified. [#4055 @hannesm] {2.1.0-alpha}

  • With --full option, include extra-files in switch export, on import create an overlay directory with the file contents. [#4040 @hannesm] {2.1.0-alpha}

Enhancements, updates, and fixes

Repository Management

  • Optimize repository loading: we store the repository contents as .tar.gz files in ~/.opam/repo instead. Rather than resorting to a complex in-memory structure, we just untar them to /tmp when they need to be read, and re-tar them after modification (opam update, or format upgrade only). Then we let the OS disk cache do the job: in normal operation, the tree never needs to be flushed to disk, and loading the .tar.gz is orders of magnitude faster than loading the individual files. [#3752 @AltGr - fix l#3721] {2.1.0-alpha}

Fixes

  • Remove mismatching extra-files: sort list before comparing them. [#3744 @rjbou] {2.0.4}

  • Handle failure or interruption of tar during opam update. [#3861 @AltGr] {2.1.0-alpha}

  • Fallback in case repository archive doesn't exist. [#4008 @rjbou] {2.1.0-alpha}

  • In case repository archive is corrupted, delete it and ask to launch an update. [#4075 @rjbou - fix #4053] {2.1.0-alpha}

  • When adding a repository, an error is displayed in case of mismatching urls, now both urls are displayed. [#4086 @rjbou - fix #4085] {2.1.0-alpha}

Update

  • Handle url backend change to VCS of a package from repository. [#4007 @rjbou - fix #3991] {2.1.0-alpha}

Switch & install

  • Allow local compiler switch creation. [#3720 @rjbou - fix #3713] {2.1.0-alpha}

  • Fix multiple compiler candidate. [#3884 @rjbou - fix #3874] {2.1.0-alpha}

  • Make reinstall handling stricter. [#3907 @AltGr] {2.1.0-alpha}

List

  • Fix opam list --external [#3558 @rjbou - fix #3557 ocaml/opam-repository#12677] {2.0.1}

  • ✘ With --resolve restrain test dependencies to direct one instead of listing all test dependencies of queried package(s) [#3923 @rjbou - fix ocaml/opam-depext#121] {2.1.0-alpha}

Show

  • opam show with local opam file returns local file information. Fixes also the non 1.2 conversion to 2.0 format of local files with opam show --raw. [#3536 @rjbou - fix #3423] {2.0.1}

  • Fields are no longer required to end with a colon. [#3931 @rjbou] {2.1.0-alpha}

  • ✘ With --normalise disable terminal width wrapping. [#3868 @rjbou - fix #3751] {2.1.0-alpha}

  • String fields printed with quotes, as lists. [#3368 @rjbou - fix #3365] {2.0.1}

  • Remove pin depends messages. [#3679 @rjbou] {2.0.2}

Pinning

  • Update source of (version) pinned directory [#3726 @rjbou - fix #3651] {2.0.4}

  • Pin edit: fix editing an opam file without a name field. [#3535 @rjbou] {2.0.1}

  • Upgrade pin depends on pinning. [#3684 @rjbou - fix #3508] {2.0.2}

  • Update pin-depends confirmation message to add a skip option. [#3852 @rjbou - fix #3840] {2.1.0-alpha}

  • To avoid lint warning 57 (description error) on 1.2 opam file pinning, add auxiliary files (descr, url) before linting. [#3687 @rjbou] {2.0.2}

  • Fix --ignore-pin-depends with autopin. [#3736 @AltGr] {2.0.4}

  • Fix pin not installing/upgrading already pinned package. [#3800 @AltGr] {2.0.4}

Working directory

  • Add OPAMDROPWORKINGDIR environment variable for C. [#3792 @rjbou - fix #3727] {2.1.0-alpha}

  • Don't restrain copy to versioned file. [#3759 @rjbou] {2.1.0-alpha}

  • Don't fetch sources when working-dir is set. [#4046 @rjbou] {2.1.0-alpha}

  • Update in place source copy:

    • review sync_dirty on VCS:
      • use VCS to synchronize, then rsync & remove others files
      • exclude _build, _opam & VCS directories
    • when --inplace-build is given, it does a dirty synchronization of the
      sources, in order to keep tracking package stats (clean, local or dirty). [#3948 @rjbou] {2.1.0-alpha}
  • Fix working-dir messages on update command. [#3824 @rjbou] {2.1.0-alpha}

  • Working-dir fixes. [#3982 @rjbou] {2.1.0-alpha}

Download & url management

Download

  • Don't execute validation hook if update is empty. [#3490 @hannesm] {2.0.1}

  • Don't check hash with --no-checksum on pull_upstream. [#3658 @rjbou - fix #3652] {2.0.2}

  • Update download errors handling during actions processing. [#3811 @AltGr] {2.1.0-alpha}

  • Update ftp command, to pass url last. [#3910 @hannesm] {2.1.0-alpha}

  • Terminate (with double dashes) list of command-line download option. [#3913 @cfcs] {2.1.0-alpha}

VCS

  • Git: fallback, fetch all repository remotes to get SHA1 with git < 2.1. [#3561 @rjbou - fix #3523 #3548] {2.0.1}

  • Fix hg opam1.2 url parsing. [#3754 @rjbou] {2.0.4}

  • Repository: remove 'file://' prefix for darcs. [#3761 @rjbou] {2.1.0-alpha}

  • Use git -c diff.noprefix=false diff. [#3788/#3628 @Blaisorblade - fix #3627] {2.0.4}

  • Don't remove git cache objects that may be used. [#3831 @AltGr - fix #3828] {2.0.6}

  • Don't include .gitattributes in index.tar.g. [#3873 @dra27] {2.0.6}

  • Opam{Git,Hg}: Fix diffs in presence of binary file. [#3879 @kit-ty-kate] {2.1.0-alpha}

  • Set core.autocrlf and core.eol for Git remotes. This change ensures that Git always disables text file line-ending normalization when cloning changes from a Git remote. [#3882 @dra27] {2.1.0-alpha}

  • Add a git clean on reset_tree to keep source dir clean. [#3948 @rjbou] {2.1.0-alpha}

Lint

New lint checks

  • Error 57: A description or a synopsis must be present and non empty. [#3581 @rjbou - fix ocaml/opam-repository#12729] {2.0.1}

  • Warning 58: Advise to use with-test and with-doc variables if test and doc are present. [#3591 @rjbou - fix #3580 ocaml/opam-repository#12729] {2.0.1}

  • Warning 59: No url checksum given (if check-upstream enabled). [#3758 @rjbou] {2.0.5}

  • Error 60: Unavailable archive or checksum mismatching (if check-upstream enabled). [#3758 @rjbou] {2.0.5}

  • Error 61: Out-of-scope with-test variable in run-test: field. [#3763 @rjbou - fix AltGr/Camelus/issues/27] {2.0.5}

  • Warning 62: Add a lint check for SPDX license. [#3976 @AltGr] {2.1.0-alpha}

Updates

  • Add result in json output. [#3848 @rjbou - fix #3046] {2.1.0-alpha}

  • Add lint codes in manpage. [#3903 @rjbou] {2.1.0-alpha}

Fixes

  • Warning 47: Update warning message. [#3753 @rjbou - fix #3738] {2.0.4}

  • Error 52: Fix light_uninstall flag. [#3631 @rjbou - fix #3625] {2.0.2}

  • Warning 58: Restrain warning to filters. [#3871 @rjbou - fix ocaml/opam-repository#14280 (comment)] {2.0.5}

  • Warning 61: Restrain to run-test:. [#3860 @rjbou] {2.0.5}

Initialization

opam init

  • Don't fail if empty compiler given. [#3633 @rjbou - fix #3614] {2.0.2}

  • Retrieve root is ok from global options instead of initialization. [#3704 @rjbou - fix #3695] {2.0.3}

  • Default configuration file: add getconf to required tools. [#3813 @rjbou] {2.1.0-alpha}

  • Clarify message in opam init --yes. [#3893 @dra27] {2.1.0-alpha}

  • Shell setup: don't advice an infinite sourcing loop. [#3832 @rjbou] {2.1.0-alpha}

  • Default configuration file: Add compilation target globals, sys-ocaml-arch, sys-ocaml-cc, and sys-ocaml-libc`. [#3900 @dra27] {2.1.0-alpha}

  • Ensure that environment is initialized lazily, not before init functions are called [#4111 @gasche] {2.1.0-alpha}

  • Fix OPAMLOGS handling, and logdir opam_init argument [#4117 @rjbou - fix #4076] {2.1.0-alpha}

opam config / variable configuration

  • Harmonization of opam config list and opam config var <var>: resolve variable first with switch state (loading it only for package defined variables), otherwise, global state. [#3723 @rjbou - fix #3717] {2.0.4}

  • Include base packages configuration variables in opam config report. [#3798 @dra27] {2.1.0-alpha}

  • Determine jobs number at launch (OpamStateConfig) [#4004 @rjbou - fix #3986] {2.1.0-alpha}

  • Read jobs variable from OpamStateConfig [#3881 @dra27] {2.0.5}

  • opam exec: display command not found message [#4133 @rjbou - fix #4131] {2.0.7}

Portability

Windows

  • Fully test native Windows in the testsuite. [#3260 @dra27] {2.1.0-alpha}

  • Allow native Windows to use Cygwin tool. [#3348 @dra27] {2.1.0-alpha}

  • Deal with Windows path conventions (backslashes, .exe, etc.) [#3350 @dra27] {2.1.0-alpha}

  • Correct display of dir separator on Windows. [#3893 @dra27] {2.1.0-alpha}

  • Tested wrong variable in OPAMW_HasGlyp. [#3898 @dra27] {2.1.0-alpha}

  • Escape Windows paths on manpages [#4129 @AltGr @rjbou - fix #4100] {2.0.7}

BSD

  • Add gtar as OpenBSD required tool, as tar does not support the J flag. [#3538 @adamsteen] {2.0.1}

  • Default use fetch on FreeBSD, ftp on OpenBSD. [#3904 @hannesm] {2.1.0-alpha}

MacOS

  • Hash: fallback to internal library in case of openssl error. [#3543 @rjbou - fix ocaml/opam-repository#12613] {2.0.1}

Shell files

Sandbox

  • Respect user's TMPDIR when invoking bwrap. [#3487 @3noch] {2.0.1}

  • Adding way to mount unusual path in bwrap sandbox: introduction of OPAM_USER_PATH_RO environment variable. [#3540 @ErwanGa] {2.0.1}

  • Make /var read-only instead of empty and rw. [#3605 @bobot - fix #3604] {2.0.2}

  • Handle symlinks in bwrap. [#3661 @mroch - fix #3660] {2.0.2}

  • Change one-line conditional to if statement which was incompatible with set -e. [#3645 @rjbou - fix #3607] {2.0.2}

  • Do not fail if $HOME/.ccache is missing. [#3957 @mseri - fix discuss thread] {2.0.6}

  • Add dune cache as rw. [#4019 @rjbou - fix #4012] {2.0.6}

  • Don't overwrite user's modification. [#4020 #4092 @rjbou] {2.1.0-alpha}

  • Handle CCACHE_DIR environment variable in case ccache call fail. [#4087 @rjbou - fix #4079] {2.1.0-alpha}

  • Follow links of ~/.cache & ~/.cache/dune for bwrap call. [#4087 @rjbou - fix #4086] {2.1.0-alpha}

MacOS specific

  • Considering the possibility that TMPDIR is unset. [#3597 @herbelin - fix
    #3576] {2.0.4}

  • Release use of unix sockets on MacOS. [#3663 @silene - fix #3659] {2.0.2}

  • Always read write mount /tmp [#3742 @rjbou - fix ocaml/opam-repository#13339] {2.1.0-alpha}

Environment file

  • Regenerate missing environment file. [#3691 @rjbou - fix #3690 #3594] {2.0.3}

  • Right handling for empty switch. [#3899 @dra27] {2.1.0-alpha}

fish

  • Unconditionally display MANPATH when fish version is 2.7 or late. [#3728 @gregory-nisbet] {2.0.4}

  • Add colon for fish MANPATH. [#3886 @rjbou - fix #3878] {2.0.6} [#4084 @rjbou - fix #4078] {2.1.0-alpha}

zsh

  • Update zsh check interactive terminal (ohmyzsh fix) [#4095 @OCamlPro-mattiasdrp #4128 @AltGr] {2.1.0-alpha}

opam admin

  • Handle non http backend on repository upgrade: compute hash only for http or distant rsync backend [#3596 @rjbou - fix #3590] {2.0.1}

  • Add package selection to add-hashes [#3787 @rjbou - fix #3767] {2.1.0-alpha}

  • Download files (patches, etc.) using a safe filename. [#3900 @dra27] {2.1.0-alpha}

  • With --add-constraints, add constraint on depopts. [#4002 @rjbou - fix #3994] {2.1.0-alpha}

  • Fix opam-admin.to. [#3885 @dra27] {doc}

Internal enhancements

Opam file

  • Add format-version field to all files. [#3478 #3906 @AltGr] {2.1.0-alpha}

  • Clarify pin depend parse error. [#3762 @rjbou] {2.1.0-alpha}

  • Opam file extensions (x- fields) enhancement. [#4049 @hannesm] {2.1.0-alpha}

Inner Actions

Solver

  • Fix closure computation in the presence of cycle. [#3670 @AltGr - fix #3662 #3666] {2.0.2}

  • Fix some cases of listing coinstallable package. [#3689 @AltGr] {2.0.2}

  • Add support for Z3 as a solver backend. [#3845 @AltGr] {2.1.0-alpha}

Scheduler

  • Interleave download actions with build/install actions. [#3777 @Armael] {2.1.0-alpha} [#4083 @rjbou - fix #4080] {2.1.0-alpha}

  • Generalization of the job scheduler: provide separate job pools for different subsets of the tasks. [#3778 @AltGr] {2.1.0-alpha}

  • Refactor the return types of OpamSolution.{apply,resolve_and_apply} [#3781 @Armael] {2.1.0-alpha}

  • Use the scheduler pools to respect the download-jobs parameter. [#3791 @AltGr] {2.1.0-alpha}

Internals

Upgrade 1.2 → 2.0

  • Upgrade to opam 2.0 format overlay opam files of pinned package. [#3528 @rjbou - fix #3513] {2.0.1}

  • Add Compiler file translation function. [#3530 @rjbou - fix ocaml/opam-repository#12523] {2.0.1}

  • Extract archived source files of version-pinned packages. [#3610 @rjbou - fix #3600] {2.0.2}

  • Add function to upgrade opam file, including its auxiliary files: descr, url, files/. [#3624 @rjbou] {2.0.2}

  • Set the right format-version field on upgrade. [#4014 @rjbou] {2.1.0-alpha}

UI

  • Streamline the output from download action. [#3794 @AltGr] {2.1.0-alpha}

  • Use a character that displays better on terminals for download action. [#3802 @AltGr] {2.1.0-alpha}

  • Change symbol for download action. [#3862 @AltGr] {2.1.0-alpha}

  • Include the version number in "compilation failed" message. [#4052 @Armael] {2.1.0-alpha}

Directory Tracking

  • Fix precise tracking mode:: missing to_hex conversion. [#3796 @rjbou] {2.0.4}

  • Check both size and mtime for cached entries. [#4038 @hannesm] {2.0.6}

  • Propagate --force to directory tracking revert function. [#4094 @rjbou - fix #4091] {2.1.0-alpha}

  • Add OpamDirTack.string_of_changes [#4107 @rjbou @hannesm] {2.1.0-alpha}

States

  • Introduce drop to replace ignore (unlock ..) for more lock-type-safety. [#3783 @gasche] {2.1.0-alpha} [#3812 @rjbou] {2.1.0-alpha}

  • Change OpamStateTypes.switch_state.conf_files from package_map to name_map [#3799 @dra27] {2.1.0-alpha}

  • Fix handling of availability outside of switches. [#3864 @AltGr] {2.1.0-alpha}

Formulas

  • Sorting formulas function. [#3945 @rjbou] {2.1.0-alpha}

  • Sort formula: fix compare_formula & add compare [#3960 @rjbou] {2.1.0-alpha}

System

  • Patch rewrite test. [#3456 @dra27] {2.1.0-alpha}

  • Tar extract fail error message: if a tar extract fails, it checks the presence of underlying commands (bzip2, xz, lzma, gzip) to display the error message in verbose mode. [#3502 @rjbou - fix #3497] {2.0.1}

  • Remove link only if it exists. [#3519 @rjbou - fix ocaml/opam-depext#104] {2.0.1}

  • Catch signal to select ones that are really cancelling a blocking state (e.g. waiting for a lock to be released). [#3541 @rjbou] {2.0.4}

  • Set .out suffix for read_command_output stdout file. [#3644 @rjbou] {2.0.2}

  • Default opam root is resolved at creation, in order to have the correct linked path. [#3681 @rjbou - fix #3622] {2.0.2}

  • opam clean: ignore errors trying to remove directories. [#3732 @kit-ty-kate] {2.0.4}

  • Command errors display: differentiate command not found & permission denied. [#3865 @rjbou] {2.1.0-alpha}

  • Factorize option functions in OpamProcess [#4016 @nobrakal] {2.1.0-alpha}

  • Use ocaml code for looking up commands in PATH [#4072 @Armael] {2.1.0-alpha}

  • Copy files using OCaml code instead of calling to cp or install [#4064 @Armael] {2.1.0-alpha}

Variables

  • Sort & clean pkg:depend. [#4060 @rjbou - fix #4057] {2.1.0-alpha}

Misc

  • Reinsert and deprecate alias-of & no-autoinstall option. [#3685 @rjbou - fix #3390] {2.0.2}

  • Add of_json functions & crowbar. [#3776 @gasche] {2.1.0-alpha}

  • JSON (de)serialization for OpamParallel graph. [#3786 @gasche] {2.1.0-alpha}

  • Url: catch failure & specific exception. [#3946 @rjbou] {2.1.0-alpha}

  • Update: don't update installed dev package that is not pinned. [#3947 @rjbou] {2.1.0-alpha}

  • Use OpamArg helpers for option. [#4059 @rjbou] {2.1.0-alpha}

Build

  • Updates for OCaml 4.07. [#3474 @dra27] {2.0.2}

  • Remove GNUism from bootstrap-ocaml.sh. [#3481 @dra27 - fix #3480] {2.0.1}

  • Steps towards sudo-enabled make install. [#3522 @dra27] {2.1.0-alpha}

  • Avoid sed -i, a GNU sed extension: use mv instead [#3603 @hannesm] {2.0.1}

  • Port build system to Dune (1.2) [#3618 @dra27] {2.1.0-alpha}

  • Update shell/msvs-detect to 0.4.0. [#3869 @dra27] {2.1.0-alpha}

  • Build man pages with dune. [#3937 @AltGr @dra27] {2.0.6}

  • Sort out repository script mode. [#3963 @dra27] {2.1.0-alpha}

  • Preliminary support for Dune 2.0. [#3965 @dra27] {2.1.0-alpha}

  • make cold: fail if patch or bunzip2 missing. [#4006 @rjbou - fix #3842] {2.0.6}

  • Fix opam installer opam file. [#4058 @rjbou] {2.0.7}

  • Fix various warnings [#4132 @rjbou @AltGr - fix #4100] {2.0.7}

  • Update mccs.1.1+11 [#4109 #4146 @MisterDA] {2.1.0-alpha}

Configure

  • Add patch & bunzip2 check. [#3531 @rjbou - fix #3520] {2.0.1}

  • Not having wget or curl is now only a hard-error if src_ext/archives doesn't contain the archives (i.e. if make -C src_ext cache-archives has not been run) which means that this should no longer be a requirement for building with the "full" tarball. [#3572 @dra27 - fix #3551] {2.0.1}

  • C++ test for MCCS is now moved to the correct place and the message as to whether the solver will be build should work correctly with --disable-checks. Note that not having a C++ compiler is not considered an error if --disable-checks is specified because configure is permitted to believe that the MCCS library exists even if it couldn't detect it. [#3572 @dra27] {2.0.1}

  • Fix developer mode option. [#3646 @rjbou] {2.1.0-alpha}

  • Fix cppo detection. [#3915 @rjbou] {2.0.5}

  • Ensure configure generates consistently. [#3935 @dra27] {2.1.0-alpha}

Documentation

Various contributors helped us to update and add code documentation:

  • [#3542 @0xflotus] {2.1.0-alpha}

  • [#3571 @hannesm] {2.1.0-alpha}

  • [#3731 @MisterDA] {2.0.4}

  • [#3780 @gasche] {2.1.0-alpha doc}

  • [#3944 @tchajed] {2.1.0-alpha}

  • [#3955 @nbraud] {2.1.0-alpha}

  • [#3999 @maroneze] {2.0.6}

  • [#4106 @vp2177] {2.1.0-alpha}

  • [#3863 @dra27] {2.1.0-alpha}

  • [#3809 #3891 @dra27] {2.0.5}

  • [#3554 @rjbou - fix #3540 #2255 #3612 #3606] {2.1.0-alpha}

  • [#3656 @rjbou - fix #3634 #3653 #3639] {2.0.2}

  • [#3685 @rjbou - fix #3390] {2.0.2}

  • [#3703 @rjbou - fix #3700] {2.0.3}

  • [#4058 @rjbou] {2.1.0-alpha}

  • [#4114 @rjbou @AltGr] {2.1.0-alpha}

opam - 2.0.7

Published by AltGr over 4 years ago

This is the release of opam 2.0.7.

This minor release contains small fixes, please see blog post for upgrade instructions.

Binaries and full archive are signed by @AltGr.
As an addendum to this release, the macOS/arm64 binary was built by @avsm (but not yet signed).

Changelog:

  • Properly escape Windows paths on manpages [#4129 @AltGr @rjbou]
  • Fix opam installer opam file [#4058 @rjbou]
  • Fix various warnings [#4132 @rjbou @AltGr - fix #4100]
  • Fix dune 2.5.0 promote-install-files duplication [#4132 @rjbou ]
  • opam exec: display command not found message [#4133 @rjbou - fix #4131]
opam - 2.0.6

Published by rjbou almost 5 years ago

This is the release of opam 2.0.6.

This minor release contains mainly fixes, please see the changelog for details, and blog post for upgrade instructions.

Binaries and full archive are signed by @AltGr.

opam - 2.0.5

Published by rjbou over 5 years ago

This is the release of opam 2.0.5.

This minor release contains mainly fixes, please see the changelog for details, and blog post for upgrade instructions.

Binaries and full archive are signed by @AltGr.

opam - 2.0.4

Published by rjbou over 5 years ago

This is the release of opam 2.0.4.

This minor release contains mainly fixes, please see the changelog for details, and blog post for upgrade instructions.

Binaries and full archive are signed by @AltGr.

opam - 2.0.3

Published by rjbou over 5 years ago

This is the release of opam 2.0.3.

This minor release contains mainly fixes, please see the changelog for details, and blog post for upgrade instructions.

opam - 2.0.2

Published by AltGr almost 6 years ago

This is the release of opam 2.0.2.

This minor release contains mainly fixes, plese see the changelog for details, and blog post for upgrade instructions.

Binaries and full archive are signed by @AltGr.

opam - 2.0.1

Published by AltGr about 6 years ago

This is the release of opam 2.0.1.

This minor release contains mainly fixes.

Binaries and full archive are signed by @AltGr.

opam - 2.0.0

Published by rjbou about 6 years ago

This is the release of opam 2.0.0.

See the Upgrade Guide for an overview of changes.

opam - 2.0.0~rc4 FINAL

Published by AltGr about 6 years ago

This is the final release of opam 2.0.0.

Since there is a repository format change involved from our last stable release 1.2.0, we are leaving a few weeks for things to settle before officially switching the official package repository to 2.0.0 format. This release remains tagged as rc4 in the meantime.

You are encouraged to switch as soon as you see fit:

  • there is already a 2.0.0 branch in the official repository, that is automatically used by opam 2, and automatically updated.
  • opam 2.0.0 can read 1.2.0 repositories and package definition files transparently.
  • on the other hand, once the switch is made, new packages will appear only on opam 2.0.0. Backports to the 1.2.0 repository will be limited.

See the Upgrade Guide to get started with opam 2.0 and see what is new.

opam - One more release candidate for opam 2.0.0

Published by AltGr over 6 years ago

  • A bunch of fixes over rc2
  • A new opam switch link SWITCH [DIR] command to bind a directory to a switch
  • A new opam install --assume-built option to install through opam packages that have been built by hand
opam - 2.0.0~rc2

Published by AltGr over 6 years ago

This new release candidate for opam 2.0.0 fixes many small issues with the previous one, is much faster in many areas, and brings sandboxing of package commands (enabled by default) on macOS and Linux.

opam init now also provides the option to setup a hook in your shell such that the environment is synchronised at every prompt, avoiding the need for ever running eval $(opam env). This is particularly useful when working with local switches.

opam - 2.0.0~rc

Published by AltGr over 6 years ago

Release candidate for 2.0.0

opam - 2.0.0~beta6

Published by AltGr almost 7 years ago

Small fixes over beta5