package opam-solver
Solver library for opam 2.0
Install
Dune Dependency
opam.ocaml.org
Readme
Changelog
LGPL-2.1-only WITH OCaml-LGPL-linking-exception License
Edit opam file
Versions (43)
Authors
-
VVincent Bernardoff <vb@luminar.eu.org>
-
RRaja Boujbel <raja.boujbel@ocamlpro.com>
-
RRoberto Di Cosmo <roberto@dicosmo.org>
-
TThomas Gazagnaire <thomas@gazagnaire.org>
-
LLouis Gesbert <louis.gesbert@ocamlpro.com>
-
FFabrice Le Fessant <Fabrice.Le_fessant@inria.fr>
-
AAnil Madhavapeddy <anil@recoil.org>
-
GGuillem Rieu <guillem.rieu@ocamlpro.com>
-
RRalf Treinen <ralf.treinen@pps.jussieu.fr>
-
FFrederic Tuong <tuong@users.gforge.inria.fr>
Maintainers
Sources
2.0.6.tar.gz
md5=4412f3af8f0af354dcd8519ba8f30ee5
sha512=c3dbd315550817d15e3d5dd4b5b030b725e5d65e36450f8ac064555e4710bda90df6fab457c386c7a334689e50d240de19992565ce325bc8a18163f145f09dfd
CHANGES.html
CHANGES
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.6: * Don't remove git cache objects that may be used [#3831 @AltGr] * Don't include .gitattributes in index.tar.gz [#3873 @dra27] * Update FAQ uri [#3941 @dra27] * Lock: add warning in case of missing locked file [#3939 @rjbou] * Directory tracking: fix cached entries retrieving with precise tracking [#4038 @hannesm] * Build: * Add sanity checks [#3934 @dra27] * Build man pages using dune [#3902] #dra27] * Add patch and bunzip check for make cold [#4006 @rjbou - fix #3842] * Shell: * fish: add colon for fish manpath [#3886 @rjbou - fix #3878] * Sandbox: * Add dune cache as rw [#4019 @rjbou - fix #4012] * Do not fail if $HOME/.ccache is missing [#3957 @mseri] * opam-devel file: avoid copying extraneous files in opam-devel example [#3999 @maroneze] 2.0.5: * Bump src_ext Dune to 1.6.3, allows compilation with OCaml 4.08.0. [#3887 @dra27] * Support Dune 1.7.0 and later [#3888 @dra27 - fix #3870] * Bump the ocaml_mccs lib-ext, to include latest changes [#3896 @AltGr] * Fix cppo detection in configure [#3917 @dra27] * Read jobs variable from OpamStateConfig [#3916 @dra27] * Linting: * add check upstream option [#3758 @rjbou] * add warning for with-test in run-test field [#3765, #3860 @rjbou] * fix misleading `doc` filter warning [#3871 @rjbou] * Fix typos [#3891 @dra27, @mehdid] 2.0.4: * Add (rudimentary) error handling to `make man` * Sandboxing on MacOS: considering the possibility that TMPDIR in unset * display: Fix opam var display * pin: * update source of (version) pinned directory * fix `--ignore-pin-depends` with autopin * fix pinnings not installing/upgrading already pinned packages (introduced in 2.0.2) * opam clean: Ignore errors trying to remove directories * remove wrong mismatching extra-files warning * urls: fix hg opam 1.2 url parsing * lint: warning error 47 on descr first line * dirtrack: fix precise tracking mode * system: * lock & signals: don't interrupt at non terminal signals * shell: fix fish manpath setting * git: use git -c diff.noprefix=false diff in case it is defined in user config 2.0.3: * Fix manpage remaining $ (OPAMBESTEFFORT) * Fix OPAMROOTISOK handling * Regenerate missing environment file 2.0.2: * Update build from jbuilder to dune * Doc: * update man page * add message for deprecated options * reinsert removed ones * deprecate `no-aspcud` * Pin: * upgrade pin depends on pinning * include descr & url files on pinning 1.2 opam files * Sandbox: * handle symlinks in bwrap * allow use of internal sockets on * change one-line conditional to if statement which was incompatible with set -e * make /var readonly instead of empty and rw * Path: resolve default opam root path * System: suffix .out for read_command_output stdout files (#3644) * Locked: check consistency with opam file when reading lock file to suggest regeneration message * Show: remove pin depends messages * Cudf: Fix closure computation in the presence of cycles * List: Fix some cases of listing coinstallable packages * Format upgrade: extract archived source files of version-pinned packages * Core: add is_archive in OpamSystem and OpamFilename * Init: don't fail if empty compiler given * Lint: fix light_uninstall flag for error 52 * Update cold compiler to 4.07.1 2.0.1: * Cold boot for MacOS/CentOS/Alpine * Install checksum validation on MacOS * Archive extraction for OpenBSD now defaults to using gtar * Fix compilation of mccs on MacOS and Nix platforms * Do not use GNU-sed specific features in the release Makefile, to fix build on OpenBSD/FreeBSD * Cleaning to enable reproducible builds * Update configure scripts * git: fix git fetch by sha1 for git < 2.14 * linting: add test variable warning and empty description error * upgrade: convert pinned but not installed opam files * error reporting: more comprehensible error message for tar extraction, and upgrade of git-url compilers * opam show: upgrade given local files * list: as opam 2.0.0 list doesn't return non-zero code if list is empty, add --silent option for a silent output and returns 1 if list is empty 2.0.0 * Fixes and documentation * Add `opam admin add-hashes` helper to add more secure hashes to the repository 2.0.0~rc3 * Fixes * Added subcommand `switch link` to link a local switch to a defined one * Added option `--assume-built` to install an already built pinned package * Better Windows support * Obsolete `opam config setup` option 2.0.0~rc2 * Fixes * Much faster CUDF universe loading * Much faster `opam env` and similar commands * Added `opam admin check` for integrity checks on package repositories * Added the ability to setup scripts on `opam init` from `.opamrc` * Setup wrappers to sandbox builds by default, based on `bubblewrap` on Linux and `sandbox-exec` on MacOS * Windows support for many aspects including parallel processes, environment variables setup, color console and utf8 (using specific C stubs) * Better detection of the running shell * Added shell helpers to automatically sync the environment on every prompt * Support for selecting different backends if compiled in the `ocaml-mccs` solver lib 2.0.0~rc * Fixes * Support compiling on OCaml 4.06.0 * `opam env` and `opam exec` no longer set the `OPAMROOT` or `OPAMSWITCH` variables * Allow in-source package metadata to be gathered in an `opam/` directory 2.0.0~beta6 * Small UI fixes * Fixed a rare case of looping while processing actions 2.0.0~beta5 * Added timeout support to the solvers (default 1min) * Added `--unlock-base` to allow changing the compiler of a switch * Added the `{post}` dependency flag for packages to be installed together, but in no specific order. Use it for `base-*` packages. * Fixed issue with OCaml 4.05.0 and installed programs not found (`Unix.execvpe` behaviour changes, https://caml.inria.fr/mantis/view.php?id=7640) * Added a `pin-depends` field for easier development project dependency management and sharing * Some optimisations to repository loading * Fixed --best-effort with the built-in solver * Shorten conflict messages even more * Added `opam admin add-constraint` to amend a set of reverse dependencies in a repository * New format for `depexts:`, easier to understand and more flexible. Depexts for the host can now be inferred by opam * Optimised search criteria for the built-in solver * Added a `build-id` variable to identify package builds * Extend hooks (new variable `installed-files`, new session hooks) * `opam switch create DIR` now installs packages defined in `DIR` * Added system-related variables `arch`, `os`, `os-distribution`, `os-family`, `os-version` * Added support for using `opam.locked` files instead of `opam` ones (`--locked`) * Opam plugins are now made available across switches 2.0.0~beta4 * Building with OCaml < 4.02.3 is no longer supported * Support compilation with a built-in mccs solver (removing run-time dependency to aspcud). Integrated half-working "heuristics" dropped. * Remove jsonm and transitive uutf dependency. * Switch build systems to `jbuilder`, including `lib-ext` support * Allow repeated and or'd arguments to the `list` command * Many code and build system portability fixes (Windows, BSD) * Add `switch export --full` to include package definitions * Add `announce:` and `stamp:` fields to repositories (`repo` files) * Add a global cache of git objects (greatly speeding up multiple cloning) * Allow `opam pin URL` without a package name * Many error handling, messages and corner case fixes * Updated the versions of dependencies * Removed the unused `features:` field, and proposal for a new syntax * More informative exit codes, and documentation thereof 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) 1.2.2 * Fixed wrong locks being taken during `switch reinstall` (#2051) * Fixed `config report` that wasn't displaying the external solver (#2059) * Follow glibc standard on detecting an UTF8 locale (#2065) * Fixed issues with fish shell init scripts (#2063) * Restored printing of commands with `--verbose` and `--dry-run` * More concise printing of conflicts, with accurate version numbers * Small improvements to the causes of actions * Fixed issue causing the state cache not to be used on some OSes (OSX) (#2077) * Added numbers to lint checks, and some new checks * Restored the handling of a simple path to an `aspcud`-compatible executable in variable OPAMEXTERNALSOLVER (#2085) * Added package universe output to new PEF format for diagnostics * Prioritise newer versions even when the latest can't be installed (#2109) * Automatically install plugins on `opam plugin-name` (#2092) * Fixed a fd leak on solver calls (#2134) * Accept opam files with errors when no debug or strict options are set, for easier format updates * Add `opam list --resolve` to get dependencies as a consistent set of packages * Provide the expected checksum to download commands * Changed return code of `opam list` when no patterns are supplied and the list is empty 1.2.1 * Non-system compiler definitions without source are now allowed * Better handling of compiler "base" packages allows one to move build instructions from compiler definitions to packages * Rewritten action resolution mechanism to be based on atomic actions. Actions are not aborted anymore on first failure when there is no inter-dependency * Rewritten parallel command execution engine * Better display of actions, lots of improved messages * `opam upgrade pkg` now fails if no new version of `pkg` can be installed * fixed shell configuration for various shells * Updated Dose dependency to 3.3 * Fixed behaviour of `opam switch` and related commands when a switch is locally set in a shell (through `OPAMSWITCH`) * Better behaviour on failed `opam switch` * New pinning mode: when pinning using version-control on a local path and without a branch specified, use current file tree, but limited to version-tracked files * Faster and cleaner handling of downloads * Now compiles with --safe-string on OCaml 4.02, better compatibility handling * `opam unpin` now accepts multiple arguments * `opam pin add <pkg>.<version> <target>` is now allowed to specify the advertised version * Fixed bug leading to a bad `CAML_LD_LIBRARY_PATH` when switching from system * Better `opam lint`, reporting warnings and errors, including format errors * `opam config setup` now takes `--shell=` instead of `--sh`, `--csh`, `--fish`, `--zsh` * Provisional feature: dependency flag `dev` is accepted (but does nothing) * Provisional feature: field `features` in opam files implemented (beta), not for use in production * Better definition of the `filter` language within opam files: propagates undefined values, bool-to-string converter syntax * Provisional feature: `verbose` may be specified in package flags * OPAM git-like plugins (commands of the form opam-xxx) are now searched in the correct OPAM path * ~/.opam/config doesn't refer to OPAM's patch-version anymore, to allow downgrading * Recognise <name>.opam files and directories when pinning a package to source * Cleaned up debug and verbose messages, allow more control (`-v` can now be repeated) * Pinning URL can now be explicit in the form `VC+URL`, e.g. `git+ssh://`, `hg+https://`... * New flexible way to specify download and solver commands in `~/.opam/config` or in variables `OPAMFETCH` and `OPAMEXTERNALSOLVER` * Lots of bug-fixes 1.2.0 * Handle locally installed self-upgrade opam binary (#1257) * Added `opam list --depends-on` to show reverse dependencies (#693) * More consistent checks on user-specified packages (#1241) * Handle version constraints from the command line (`package>=version`) (#380) * Output clear and concise messages on non solvable requests (#595, #1238) * Much better internal parser. File locations in error messages (#1260, #1222) * Removed dependency on camlp4 (#917) * Fixed orphan packages handling (installed packages with no upstream) (#1198) * Solver: optimize default preferences, depending on the solver version. New --criteria option (#1208) * Better PATH modifications handling, add 'opam config env --inplace-path' (#1189, #1749) * Specify variable overrides with environment OPAMVAR_name (#1153) * Much better overall failsafe behaviour. Error reports on interruption (#1202, #1125, #1188...) * Better action processing, with downloads first (#984) * Much improved and faster interface with the Cudf solver (#1185, #1179) * Ask the user to confirm actions whenever non-trivial (#1165) * Added option --show-actions, made --dry-run simulate actions (#1142) * Now prints meaningful causes explaining the actions (#1174) * Fixed the stats displayed after update (#1161) * Added variables to query ocaml native tools and arch (#979) * Enable packagers to specify mirrors in url files (#807) * Cleaned up the command-line interface (#1250, #1170, #1472). Incompatible changes: - 'opam config exec': takes command args directly rather than as a string (use -- for command arguments) - 'opam switch import|export': now have a mandatory FILE argument. '-f' no longer accepted. - 'opam pin' now takes a subcommand 'add', 'remove', 'list' or 'edit'. - 'opam config -env': no longer accepted for 'opam config env' - '--no-aspcud' is now '--use-internal-solver'. - Removed unused `opam config -I`, `opam config {asm,byte}{comp,link}` - '-r' isn't accepted anymore for '--root' * Much extended pinning features, with the ability to use opam files from the source, pin packages that don't exist in a repository, fill a local opam file from a template, etc. * Improved the internal solver to handle much larger problems (#1358) * Use Unix.lockf for more reliable internal repository locks (#1299) * Large performance improvements (#1363) * Upgraded external dependencies to dose 3.2.2, ocamlgraph 1.8.5, cmdliner 0.9.4, cudf 0.7 * Switch export file now include pinning data. Pinned package restored through 'opam switch import' (#1393) * Meaningful messages explaining why packages aren't available (#1419, #1398) * More informative 'opam config list', more complete 'opam config var' * Added 'opam config cudf-universe' for use in external tools * opam files: added a 'dev-repo' field, and the experimental 'flags' field (#1217, #1472) * Generate an opam-admin.top to easily apply scripts on a package repository (#1454). Provide scripts to ease adding new metadata ('dev-repo', etc.) * Added 'opam upgrade --fixup' to save the day if your installed package set gets inconsistent. * Fixed some return codes * Added option to query (recursive) (reverse) dependencies and external dependencies to 'opam list * Fixed opam init for some shells * OPAM search now includes the 'syntax' and 'libs' fields in the search, as well as 'findlib' files * 'opam source' command to get the package archive or upstream source easily * Added an 'install' field in opam files, to separate from build * Added the 'build', 'test' and 'doc' dependency flags to limit the scope of some dependencies * Added Check for common dependencies at init time * Pinning to a local git directory pins as path, but advertises pinning as git will now automatically select the pin kind to 'git' (#1555) * Fixed init scripts for fish and csh (#952) * More reliable and faster usage of git branches in the git backend * Friendlier env variable handling (true/1/yes or false/0/no/"" for true and false) (#1608) * Specify what is not rather than 'already up-to-date' when some packages couldn't be upgradedd (#1645) * Override Make variables in sub-processes (#1617) * 'opam update' no longer needed after 'opam repo add' * Attempt to read files in 'permissive mode' when they claim a newer OPAM version (#1662) * Fixed ignore of SIGPIPE in sub-processes (#1681) * New shell completion scripts * Added 'opam lint' to perform checks on opam files * Use the published version of jsonm rather than include it (#1574) * Changed findlib package name from 'opam' to 'opam-lib' * Hundreds of smaller fixes and UI improvements 1.1.2 * Rewritten, more compatible build system based on Makefiles (#1362, #1424) 1.1.1 * Fix `opam-admin make <packages> -r` (#990) * Explicitly prettyprint list of lists, to fix `opam-admin depexts` (#997) * Tell the user which fields is invalid in a configuration file (#1016) * Add `OpamSolver.empty_universe` for flexible universe instantiation (#1033) * Add `OpamFormula.eval_relop` and `OpamFormula.check_relop` (#1042) * Change `OpamCompiler.compare` to match `Pervasives.compare` (#1042) * Add `OpamCompiler.eval_relop` (#1042) * Add `OpamPackage.Name.compare` (#1046) * Add types `version_constraint` and `version_formula` to `OpamFormula` (#1046) * Clearer command aliases. Made `info` an alias for `show` and added the alias `uninstall` (#944) * Fixed `opam init --root=<relative path>` (#1047) * Display OS constraints in `opam info` (#1052) * Add a new 'opam-installer' script to make `.install` files usable outside of opam (#1026) * Add a `--resolve` option to `opam-admin make` that builds just the archives you need for a specific installation (#1031) * Fixed handling of spaces in filenames in internal files (#1014) * Replace calls to `which` by a more portable call (#1061) * Fixed generation of the init scripts in some cases (#1011) * Better reports on package patch errors (#987, #988) * More accurate warnings for unknown package dependencies (#1079) * Added `opam config report` to help with bug reports (#1034) * Do not reinstall dev packages with `opam upgrade <pkg>` (#1001) * Be more careful with `opam init` to a non-empty root directory (#974) * Cleanup build-dir after successful compiler installation to save on space (#1006) * Improved OSX compatibility in the external solver tools (#1074) * Fixed messages printed on update that were plain wrong (#1030) * Improved detection of meaningful changes from upstream packages to trigger recompilation 1.1.0 [Oct 2013] * Fix update of dev packages (#962) * Add support for zip source archives (#958) * Add `OPAMCURL` environment variable to control invocation of curl (#960) * Ensure repository redirects only happen for http remotes (#955) * Turn malformed package files into warnings instead of hard errors (#957) * Improve robustness of pinned package update (#949) * Finish conversion of default repository to <https://opam.ocaml.org> (#948) * Fix regression in handling archives with no extension (treat them as tar again) (#972) * Fixed stale archives causing packages to be marked as NEW when they weren't (#945) 1.1.0RC1 [Oct 2013] * Add `make cold` target to build OPAM without a system OCaml installed (#910) * More informative error messages from `curl` (#905) * Document use of `OPAMCOLOR` for optional ANSI coloring * Add `opam-admin depexts` utility to rewrite OPAM files with external dependencies * Added `repo` files for repository meta-information * Added support for repo redirections * Added scripts for automated testing in Travis * Fixed bug in opam-admin that could keep not up-to-date archives * Added an `opam-admin depexts` script to ease handling of external dependencies * Added the `--deps-only` option to `opam install` * Fixed upgrade with corner-cases of orphan packages * Added a `note` display form * Better handling of external solver failures, and added a `--no-aspcud` option * Fixed unpinning of some installed packages * Fixed upgrade of metadata from 1.0 when there are orphan custom compilers 1.1.0-beta [Sept 2013] * Automatic backup before any operation which might alter the list of installed packages * Support for arbitrary sub-directories for metadata repositories * Lots of colors * New option `opam update -u` equivalent to `opam update && opam upgrade --yes` * New `opam-admin` tool, bundling the features of `opam-mk-repo` and `opam-repo-check` + new 'opam-admin stats' tool * New `available`: field in opam files, superseding `ocaml-version` and `os` fields * Package names specified on the command-line are now understood case-insensitively (#705) * Fixed parsing of malformed opam files (#696) * Fixed recompilation of a package when uninstalling its optional dependencies (#692) * Added conditional post-messages support, to help users when a package fails to install for a known reason (#662) * Rewrite the code which updates pin et dev packages to be quicker and more reliable * Add {opam,url,desc,files/} overlay for all packages * `opam config env` now detects the current shell and outputs a sensible default if no override is provided. * Improve `opam pin` stability and start display information about dev revisions * Add a new `man` field in `.install` files * Support hierarchical installation in `.install` files * Add a new `stublibs` field in `.install` files * OPAM works even when the current directory has been deleted * speed-up invocation of `opam config var VARIABLE` when variable is simple (eg. `prefix`, `lib`, ...) * `opam list` now display only the installed packages. Use `opam list -a` to get the previous behavior. * Inverse the depext tag selection (useful for `ocamlot`) * Add a `--sexp` option to `opam config env` to load the configuration under emacs * Purge `~/.opam/log` on each invocation of OPAM * System compiler with versions such as `version+patches` are now handled as if this was simply `version` * New `OpamVCS` functor to generate OPAM backends * More efficient `opam update` * Switch license to LGPL with linking exception * `opam search` now also searches through the tags * minor API chanages for `API.list` and `API.SWITCH.list` * Improve the syntax of filters * Add a `messages` field * Add a `--jobs` command line option and add `%{jobs}%` to be used in OPAM files * Various improvements in the solver heuristics * By default, turn-on checking of certificates for downloaded dependency archives: use `./configure --disable-certificate-check` to go back to the previous behavior * Check the md5sum of downloaded archives when compiling OPAM * Improved `opam info` command (more information, non-zero error code when no patterns match) * Display OS and OPAM version on internal errors to ease error reporting * Fix `opam reinstall` when reinstalling a package which is a dependency of installed packages (regression introduced in 0.9.5) * Export and read `OPAMSWITCH` to be able to call OPAM in different switches * `opam-client` can now be used in a toplevel * `-n` now means `--no-setup` and not `--no-checksums` anymore * Fix support for FreeBSD * Fix installation of local compilers with local paths endings with `.../ocaml/` * Fix the contents of `~/.opam/opam-init/variable.sh` after a switch 1.0.0 [Mar 2013] * Improve the lexer performance (thx to @oandrieu) * Fix various typos (thx to @chaudhuri) * Fix build issue (thx to @avsm) 0.9.6 [Mar 2013] * Fix installation of pinned packages on BSD (thx to @smondet) * Fix configuration for zsh users (thx to @AltGr) * Fix loading of `~/.profile` when using dash (eg. in Debian/Ubuntu) * Fix installation of packages with symbolic links (regression introduced in 0.9.5) 0.9.5 [Mar 2013] * If necessary, apply patches and substitute files before removing a package * Fix `opam remove <pkg> --keep-build-dir` keeps the folder if a source archive is extracted * Add build and install rules using ocamlbuild to help distro packagers * Support arbitrary level of nested subdirectories in packages repositories * Add `opam config exec "CMD ARG1 ... ARGn" --switch=SWITCH` to execute a command in a subshell * Improve the behaviour of `opam update` wrt. pinned packages * Change the default external solver criteria (only useful if you have aspcud installed on your machine) * Add support for global and user configuration for OPAM (`opam config setup`) * Stop yelling when OPAM is not up-to-date * Update or generate `~/.ocamlinit` when running `opam init` * Fix tests on *BSD (thx Arnaud Degroote) * Fix compilation for the source archive 0.9.4 [Feb 2013] * Disable auto-removal of unused dependencies. This can now be enabled on-demand using `-a` * Fix compilation and basic usage on Cygwin * Fix BSD support (use `type` instead of `which` to detect existing commands) * Add a way to tag external dependencies in OPAM files * Better error messages when trying to upgrade pinned packages * Display `depends` and `depopts` fields in `opam info` * `opam info pkg.version` shows the metadata for this given package version * Add missing `doc` fields in `.install` files * `opam list` now only shows installable packages 0.9.3 [Feb 2013] * Add system compiler constraints in OPAM files * Better error messages in case of conflicts * Cleaner API to install/uninstall packages * On upgrade, OPAM now perform all the remove action first * Use a cache for main storing OPAM metadata: this greatly speed-up OPAM invocations * after an upgrade, propose to reinstall a pinned package only if there were some changes * improvements to the solver heuristics * better error messages on cyclic dependencies 0.9.2 [Jan 2013] * Install all the API files * Fix `opam repo remove repo-name` * speed-up `opam config env` * support for `opam-foo` scripts (which can be called using `opam foo`) * 'opam update pinned-package' works * Fix 'opam-mk-repo -a' * Fix 'opam-mk-repo -i' * clean-up pinned cache dir when a pinned package fails to install 0.9.1 [Jan 2013] * Use ocaml-re 1.2.0 0.9.0 [Jan 2013] * add a new `--fake` option to simulate build and installation of packages. Use this option this care, it can easily corrupt the state of OPAM. * Better messages in case of error * OPAM proposes better solutions to the user * support for installed roots and auto-clean of unused packages * rename `--cores` to `--jobs` * better error messages for wrong argument of 'opam init' * show the root causes of actions done by OPAM * opam import and export now uses -f to specify the filename, and uses stdin and stdout if no filename is specified * Fix environment initialisation for some corner-cases * Add a way to specify how to run tests and build documentation for the packages * Display homepage, authors, doc link, license with 'opam info' * Improve `opam remove` efficiency when using `ocamlfind` command(s) only * Git pinning now works with commits/tags/branches * `opam init` works without preinstalled compiler * Support for DARCS backends * Each global command-line flag `xxx` as can be set using the `OPAMxxx` environment variable instead * Better display of compiler switch (+ read compiler descriptions) * Clearer error message when trying to pin a non-existing package * Fix issue with pinning to version number * Add a `shared` location to be used in OPAM files * Improve (but break) the command-line interface by using cmdliner 0.8.2 [Dec 2012] * Fix an issue with `opam reinstall` where packages were reinstalled in reverse order 0.8.1 [Nov 2012] * Simplify string substitution in OPAM files * Recompile the installed packages when the system compiler is upgraded * Fix various regressions in pinned and dev packages introduced in 0.8.0 0.8.0 [Nov 2012] * Improvements in the solver interface and API * The solver now use an external SAT-solver (aspcud) if found in the path * More expressive constraints in optional dependencies * Clean-up the build directory when build succeeds 0.7.7 [Oct 2012] * Add an `--alias` global command-line argument to overwrite the default alias value * Allow more concurrency between no conflicting opam commands * Upgrade to the latest version of DOSE and CUDF (solver libraries) * Add repository priorities * Create the default directories (`bin/`, `lib/` ...) when installing a new compiler 0.7.6 [Oct 2012] * major internal API refactoring * repositories are now versionned, and we try to auto-update when possible * more expressive compiler constraints in opam files 0.7.5 [Oct 2012] * dependencies can now be expressed by any formula (instead of just CNF) * It's easier to compose the value of environment variable (ie. to write `%{lwt+ssl:enable}%`) * Fix regression on init for rsync repositories 0.7.4 [Oct 2012] * improve `opam pin`: the code is more robust and it is now possible to pin a package to a git repository * add support for patches per package * add `opam switch -import file` and `opam switch -export file` 0.7.3 [Sep 2012] * Better user-message when no solution is found * Improve the minimality of installed packages 0.7.2 [Sep 2012] * Fix regression in init introcuced in 0.7.0 * Fix regression in update introduced in 0.7.0 0.7.1 [Sep 2012] * Remove forgotten debug statement 0.7.0 [Sep 2012] * report upgrade statistic on update * do no ask y/n when installing compiler's base packages * improve opam-mk-repo * fix `opam search` to be caseless * ability to filter some commands (depending on some predicates) in opam file * improvements when packages disappear upstream * check for ocaml 3.12.1 on configure * tell the user to unset some potentially dangerous variables when running opam * fix few git backend issues 0.6.0 [Sep 2012] * semantics changes in `opam switch` * solver improvements in case of install and remove * better error reporting * fix caching of package archives * fix `~/.opam/repo/index` priorities 0.5.0 [Sep 2012] * add opam search * add opam reinstall * ability to upgrade only a subset of packages * lot of bug fixes in the rsync and curl backend * better `--help` messages * better information displayed to the user 0.4.0 [Aug 2012] * better layout of repository files * (partial) possibility to specify archive checksums * if the archive is not on ocamlpro.com, download it upstream * suffix +opam to the versions of archives available on ocamlpro.com * prompt the user to evaluate `opam config -env` more often * changes in meta-data aren't picked up by the CURL backen * more modulare repository system: the 'kind' of repository is no more linked to the kind of package archives 0.3.2 [Aug 2012] * fix regression for `opam switch` introduced in 0.3 * fix deletion of optional dependencies * support for pinned packages * fix compilation for ocaml 4.00 * fix compilation for *BSD 0.3.1 [Jul 2012] * fix regression for `opam install` introduced in 0.3 0.3.0 [Jul 2012] * improve parallel compilation of packages * better recovery on compilation/installation errors * first draft of version pinnig * fix`'opam config -env` for old shells * install the latest version of packages when possible * more robust `opam update` (ie. old files are gc-ed) * add a (more or less) generic way to install and use topfind 0.2.0 [Jul 2012] * more robust switch command * more robust parallel build (not yet activated by default) * support for compiler-constraints in packages * new solver heuristics * improved performance on init with the rsync backend 0.1.0 [Jun 2012] * Initial version
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>