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.0~beta5

Published by AltGr almost 7 years ago

This new beta brings many usability improvements and fixes. Most notably:

  • A new, clearer and more expressive format for depexts:. Opam can now directly extract them for the current system (opam-depext is still required to talk to the host package manager, although hooks are even possible to make that automatic)
  • Optimised use of the built-in solver, glpk is now also built in, hence not required to compile opam
  • Support for "locked" opam files and reproduceable build environments with the new pin-depends: field
  • A fix for a bug that appeared with OCaml 4.05.0, where installed executables where not found (requiring extra eval $(opam env))
  • Installed opam plugins can now be used even if the switch they were installed from is not currently selected

There is much more, please see the changelog for details.

NOTE: due to format changes, be careful when using the official 2.0 repository (at https://opam.ocaml.org/2.0): once it is switched to the new format, older betas will complain (depexts issues or post flags). Until then, this release will already work fine except for some possible quirks with depexts.

opam - 2.0.0~beta4

Published by AltGr about 7 years ago

This beta brings many small fixes, some polish to the CLI, and most importantly a built-in solver, so it isn't needed to care about having aspcud installed anymore.

More detailed log:

  • 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
opam - 2.0.0~beta3

Published by AltGr over 7 years ago

This release brings a few speed and stability improvements, replaces the opam build command with opam install <dir> (see this announcement for details), makes the interface for handling packages' test and doc dependencies and instruction clearer, and extends the CLI in a few areas.

opam - 2.0.0~beta2

Published by AltGr over 7 years ago

opam - 2.0.0~beta

Published by AltGr over 7 years ago

opam - 2.0~alpha5 (2nd preview)

Published by AltGr almost 8 years ago

opam - opam 2.0 preview release

Published by AltGr about 8 years ago

opam - 1.2.2

Published by AltGr over 9 years ago

This bug-fix release fixes some small issues 1.2.1 had, and brings a couple improvements:

Fixes:

  • The state-cache was broken on OSX, which could cause longer startup times
  • opam config report didn't report the external solver correctly
  • --dry-run --verbose didn't give the expected output
  • Providing a simple path to an aspcud executable as external solver without expliciting the arguments works again
  • Fixed a fd leak on solver calls
  • opam list now returns 0 when no packages match but no pattern was supplied

Improvements:

  • Conflict messages now report the original version constraints without translation, they are more concise in some cases
  • Some new opam lint checks, opam lint now numbers its warnings and may provide script-friendly output
  • Feature to automatically install plugins, e.g. opam depext will prompt to install depext if available and not already installed
  • Priority to newer versions even when the latest can't be installed (with a recent solver only. Before, all non-latest versions were equivalent to the solver)
  • Added opam list --resolve to list a consistent installation scenario
  • Be cool by default on errors in opam files, for easier format updates without shouting at end-users

As usual, see the more detailed changelog for details.

opam - 1.2.2~rc

Published by AltGr over 9 years ago

This bug-fix release fixes some small issues 1.2.1 had, and brings a couple improvements:

Fixes:

  • The state-cache was broken on OSX, which could cause longer startup times
  • opam config report didn't report the external solver correctly
  • --dry-run --verbose didn't give the expected output
  • Providing a simple path to an aspcud executable as external solver without expliciting the arguments works again

Improvements:

  • Conflict messages now report the original version constraints without translation, they are more concise in some cases
  • Some new opam lint checks, opam lint now numbers its warnings and may provide script-friendly output
  • Feature to automatically install plugins, e.g. opam depext will prompt to install depext if available and not already installed
  • Priority to newer versions even when the latest can't be installed (with a recent solver only. Before, all non-latest versions were equivalent to the solver)

As usual, see the (slightly) more detailed changelog for details.

opam - 1.2.1 Final release

Published by AltGr over 9 years ago

This patch-version over 1.2.0 brings lots of fixes and a rewritten action and parallel processing engine. Although visible mostly in the messages displayed, this will bring a big improvement on reliability and predictability. It should also be faster.

Note that older versions disabled parallelism at init by default. If you want to benefit from it, you may want to change the jobs field in ~/.opam/config.

NOTE: there is no change between 1.2.1~rc2 and this final relase.

Summary of the changes

Fixes and new features

  • Non-system compiler definitions without source are now allowed
  • Stronger handling of compiler "base" packages, they can't be removed anymore
  • Rewritten action resolution mechanism to be based on atomic actions.
    Actions are not aborted anymore on first failure when there is no
    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
  • Better definition of the filter language within opam files, it now propagates undefined values
  • 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
  • Pinning URL can now be explicit in the form VC+URL, e.g. git+ssh://,
    hg+https://...
  • Cleaned up debug and verbose messages, allow more control (-v can now be
    repeated)
  • New flexible way to specify download and solver commands in ~/.opam/config
    or in variables OPAMFETCH and OPAMEXTERNALSOLVER
  • Lots of bug-fixes

Experimental features

Those are not intended to be used on the official opam-repository yet.

  • Dependency flag dev is accepted (but does nothing)
  • New field features: in opam files (see features proposal and the section in the new manual)
  • bool-to-string converter syntax in filters ("%{bool-var?str-if-true:str-if-false-or-undefined}%"), generalises variables like pkg:enable
  • New package flag verbose allowed in opam files
  • New field libexec: in .install files

Closed issues

https://github.com/ocaml/opam/issues?q=closed%3A%3E2014-10-16+closed%3A%3C2015-03-05

opam - 1.2.1~rc2

Published by AltGr over 9 years ago

Fixes an opam update bug from 1.2.1-rc

opam - 1.2.1~rc

Published by AltGr over 9 years ago

Release candidate for 1.2.1

This fixes a few bugs of the last beta, and adds a little more flexibility in some parts of the interface (specifying version-control URLs, choosing solver and download commands)

As before, if you're updating from 1.2.0 (or below), you may want to update the jobs parameter in ~/.opam/config to benefit from the new parallelism engine (it used to be disabled at opam init by default)

opam - 1.2.1~beta3

Published by AltGr over 9 years ago

Fixes a critical bug on opam init that the beta2 had

opam - 1.2.1~beta2

Published by AltGr over 9 years ago

This second beta for 1.2.1 fixes a few issues of beta1 and adds some preliminary features that will ease further evolution in next versions:

  • ~/.opam/config no longer mentions OPAM's patch version, so don't worry about testing the beta and getting back to 1.2.0 anymore.
  • Such features include: field libexec: in .install files, field features:, flag verbose and dependency flag dev in opam files, string converter syntax in "filters" in opam files
  • Overall OPAM should better support further improvements on these files' formats
  • Better message formatting

If you're updating from 1.2.0, you may want to update the jobs parameter in ~/.opam/config to benefit from the new parallelism engine (it used to be disabled at opam init by default)

opam - 1.2.1~beta

Published by AltGr over 9 years ago

This patch-version over 1.2.0 brings lots of fixes and a rewritten action and parallel processing engine. Although visible mostly in the messages displayed, this will bring a big improvement on reliability and predictability. It should also be faster.

Note that older versions disabled parallelism at init by default. If you want to benefit from it, you may want to change the jobs field in ~/.opam/config.

There is no format change in this version. However, it will mark ~/.opam/config as 1.2.1, after which OPAM 1.2.0 may complain. You can safely revert the field to 1.2.0 in that case, if you need to switch back.

Summary of the changes

  • Non-system compiler definitions without source are now allowed
  • Stronger handling of compiler "base" packages, they can't be removed anymore
  • Rewritten action resolution mechanism to be based on atomic actions.
    Actions are not aborted anymore on first failure when there is no
    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, set by default on local VC repos: 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
  • Lots of bug-fixes

Closed issues

https://github.com/ocaml/opam/issues?q=closed%3A%3E2014-10-16+

opam - 1.2.0 Release

Published by AltGr almost 10 years ago

This version introduces many new features and lots of improvement, mostly related to UI and stability, and a new, integrated development workflow.

See the full changelog at https://raw.githubusercontent.com/ocaml/opam/1.2.0/CHANGES

Important note

There are small changes in the repository format, your .opam/ will be automatically updated on first run.
Back it up if you may need to roll back to an older OPAM version.

opam - Fourth Release Candidate for 1.2.0

Published by AltGr about 10 years ago

This RC has been promoted to 1.2.0.

opam - Third Release Candidate for 1.2.0

Published by AltGr about 10 years ago

This version introduces many new features and lots of improvement, mostly related to UI and stability, and a new, integrated development workflow.

Important note

There are small changes in the repository format, your .opam/ will be automatically updated on first run. Be careful to backup if you intend to try out the new version and switch back

opam - Second Release Candidate for 1.2.0

Published by AltGr about 10 years ago

This version introduces many new features and lots of improvement, mostly related to UI and stability, and a new, integrated development workflow.

Important note

There are small changes in the repository format, your .opam/ will be automatically updated on first run. Be careful to backup if you intend to try out the new version and switch back

opam - First Release Candidate for 1.2.0

Published by AltGr about 10 years ago

This version introduces many new features and lots of improvement, mostly related to UI and stability, and a new, integrated development workflow.

Important note

There are small changes in the repository format, your .opam/ will be automatically updated on first run. Be careful to backup if you intend to try out the new version and switch back