Log message:
Updated package to latest version, 2.0.0beta3 (this sadly needs to be done
now as several packages rely on this version for building).
Changes include:
Changes prefixed with "(*)" are potentially breaking to scripts or existing
repositories (changes that are automatically handled by the format upgrade tools
are not marked).
2.0.0~beta3
* (*) Renamed `--soft-request` to `--best-effort`
* Fixed and improved speed of the package file tracking mechanism
* Added `--ignore-constraints-on` to temporarily bypass version constraints on
some dependencies
* Fields `build-test:`, `build-doc:` are now deprecated, in favor of specifying
conditions on the `with-test` and `with-doc` variables within the `build:`
field, and of the new `run-test:` field
* (*) The command-line options have been renamed accordingly to `--with-test`
and `--with-doc`
* Removed the `opam build` command
* Allow directories in place of package specifications for the `install`,
`remove`, `upgrade`, `reinstall` and `show` commands. `opam` files can also be
specified for `install` and `show`
* On local switch creation, check for package definitions and choose a
compatible compiler if possible
* Add `opam install|remove --destdir` to copy the package's installed files
somewhere else
* Allow `opam init --config=URL`
2.0~beta2
* Fixes (mainly to `opam build`)
* Faster coinstallability check
2.0~beta
* New, by-hash package archive caching system
* Simpler HTTP repository update
* Allow specification of multiple checksums per file
* Add `opam reinstall --pending`, to handle reinstallations of changed packages
* Support for defining trust anchors and repository validation hooks (for use
with Conex)
* (*) Added `opam install --working-dir`, removed "mixed mode" for \
pinned packages
* Added `opam install --soft-request`, a non-failing "do what can be done"
install mode
* Simplified, better conflict messages
* Added `opam list --coinstallable-with PKG`
* Added command `opam clean`
* Added `opam upgrade --all PKGS`, to do a full upgrade while guaranteeing
`PKGS` are kept installed
* Allow `&` in conflict version constraints, e.g. `conflicts: \
"foo" {>= "3" & <
"4"}`
* Added an `opam admin` command, with various, better organised repository admin
commands, and remove the `opam-admin` tool
* Added an `opam build` command, to handle `opam` files found in the current
directory
* Internally upgrade repositories in 1.2 format automatically to 2.0 (on `init`,
`update` or `repo add`)
2.0~alpha5
* Merge stdout and stderr of child processes by default
* Fixed regression on solver call times
* Added a few shorter command aliases: `opam var` `opam exec`, `opam env` for
the corresponding `opam config` commands
* (*) Simplified `opam repo` to only use `add` and `remove` in normal use,
always meaning the current switch (only) if not specified otherwise
* (*) Restrict package names and versions to a reasonable character set
* Added support for SHA256 and SHA512 checksums
* Separated the opam format lexer/parser/printers into a separate
`opam-file-format` library
* Reporting on package definition file errors only when the file will be used,
and on by default (rather than all-off by default, and optionally all-on)
* `opam lint` now accept multiple input files
* `opam pin` interface yet improved, allow pinning all at once when a source
directory contains multiple packages. `opam unpin <dir>` now allowed to \
cancel
`opam pin <dir>`
* Updated version of the dose lib dependency
* (*) All patch files used in package definitions are now assumed to apply with
`-p1`.
2.0~alpha4
* Added pre and post hooks for package command sections; allowed per-switch
configuration
* Re-packaged the libraries and opam into 7 individual packages
* Convert opam 1.2 files on the fly when pinning
* `opam list` can now match patterns on versions
* Allow switches to be created below arbitrary directories using `opam switch
create <dir>`. Automatically select a switch found in `$PWD`
* Add `install --reuse-build-dir` to be used together with `--keep-build-dir`
and allow incremental recompilations
* Add `install --inplace-build` to build locally pinned packages directly in
their source directory
2.0~alpha3
* (*) Refactored 'opam switch' command, creation of new switches no longer implicit
* (*) Allow per-switch selection of repositories
* Better update of the environment variables across switches or opam roots
* Add `opam install --restore` to recover packages that got removed due to
errors or interruptions
* Added `synopsis:` and `description:` fields to integrate package descriptions
in a single package definition file
* Removed the clever hack to skip downloads when uninstalling packages with
`ocamlfind remove`; this now needs to be explicit through the
`light-uninstall` flag.
* Provide `opam admin upgrade-format` to migrate package repositories to the new
format, and create the proper OCaml compiler package wrappers
* Allow initialisation parameters from a .opamrc file, possibly completely
overriding OCaml and opam.ocaml.org repository defaults
2.0~alpha2
* Extended the `opam lint` command-line options (package descriptions from opam
metadata, warnings selection)
* Allow to create a new switch with `opam switch import`
* (*) Rewritten, much more flexible `opam list` command, with composable filters and
output selection
* Delay the removals of packages as much as possible, avoiding most cases of
mass uninstalled packages after a build failure
* Use a specific `opam` user-agent for downloads
* Remove globalisation of compiler package variables and support for
`available:` constraints depending on those. Rewrite the repository
accordingly to use explicit dependencies towards the compiler version.
2.0~alpha
* Changed license to LGPL 2.1 with linking exception, like OCaml (#2573)
* Track files installed by packages for cleaner removal and listing, add `opam
search --owns-file` (#502, #1215) *this requires packages to properly separate
build and install*, or unrelated files could get removed on package uninstall.
* Allow command wrappers around package build/install/remove commands to be
defined in `~/.opam/config`; include sample Linux wrappers to restrict process
permissions (e.g. ensure `build:` doesn't install)
* (*) Reworked `opam show`, with more fields and the ability to select raw fields
from the opam file (#2122)
* Dropped ability to compile opam with OCaml earlier than 4.01.0
* Version constraints in `depopts:` allowed again, but with consistent semantics
* Allow mixing filters within dependency constraints
* More flexible `opam pin` command interface
* New internal file-lock handling, less obtrusive and safer
* New `switch export` format, now including local (pinned) package definitions
* No longer uses insecure arguments of curl/wget (#55, #2006, #2460)
* Installed package source and metadata are now handled per-switch, which is
more reliable
* `opam pin edit` now allows changing version and even URL; better editor
handling
* Discarded built-in variables based on polling OCaml (they are now defined by
the compiler package at installation)
* Discarded compiler files, `opam switch` now based on packages with the
`compiler` flag set
* Extended package configuration files
* Allow initialised opam without switch, initialised switch without compiler.
Better handling of compiler install failure
* (*) Large API rework, switch and repository state now handled separately, used in
functional style and avoiding many loads
* Git submodules are now automatically fetched by the git backend
* (*) Package definition files now prioritize `&` higher than `|`, like is most
common
* (*) `opam list -a` now lists all available packages, even if they can't be
installed (missing depends...), which is much faster (#2370)
* Added ability to reprint files with reduced diffs (#2363)
* Url and description can now be included within a single package definition
`opam` file (#2328)
* Internal switch state now all below `<switch-dir>/.opam-switch/`, state in a
single `switch-state` file (#2340)
* Add a `setenv:` field to package definitions, allowing to export environment
variables (#2337, #2361)
* Built-in support for alternative solver `mccs` (#2333)
* `opam upgrade pkg` now prompts to install `pkg` if absent (#2327)
* (*) Assume plugin package and exec names start with "opam-" (#2316, \
#2317)
* Reworked, cleaner and bidirectional file manipulation library (kind of lenses)
(#2325)
* Allow packages to specify extra remote overlay files within their definition
files
* Heuristic to detect bad solutions and print a hint when no solver is available
* (*) Proper URL handling with version-control + transport handling (e.g.
`git+https://`)
* Allow unescaped strings enclosed between `"""` markers in \
package definition
files
* Don't rely on '.zip' extension for downloaded archive handling (#2289)
* `opam config` extended with `set`, `unset`, `expand` subcommands, allows
variables in `exec` argument (#2268)
* `conflict:` field is now handled as a disjunction in all regards (#2267)
* Better handling of concurrent removal/build/install actions (#2161, #2266,
#2370)
* Allow fields `x-fieldname` in package definition files, for use by external
tools (#2265)
* Extended, more useful JSON output (including full package failure logs)
(#2236)
* Use the switch paths that are defined in the switch configuration file (#2185)
* Allow package definition files to reference the package's own variables
through "%{_:varname}%" (#2184)
* Initialise number of jobs from host's number of processors (#2180)
|