See full changelog
- Add a
--null
argument to suppress the output. This is used to write linters - Use the new generic ppx driver support of jbuilder
Read the latest releases and updates from the OCaml ecosystem.
--null
argument to suppress the output. This is used to
write lintersPexp_new
expressions (#76, @smondet)Pexp_send _
expressions (#72, @smondet)[]
We are pleased to announce a first release candidate for the long-awaited opam 2.0.0.
A lot of polishing has been done since the last beta, including tweaks to the built-in solver, allowing in-source package definitions to be gathered in an opam/
directory, and much more.
With all of the 2.0.0 features getting pretty solid, we are now focusing on bringing all the guides up-to-dateยน, updating the tools and infrastructure, making sure there are no usability issues with the new workflows, and being future-proof so that further updates break as little as possible.
You are invited to read the beta5 announcement for details on the 2.0.0 features. Installation instructions haven't changed:
From binaries: run
sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)
or download manually from the Github "Releases" page to your PATH.
From source, using opam:
opam update; opam install opam-devel
(then copy the opam binary to your PATH as explained)
From source, manually: see the instructions in the README.
Thanks a lot for testing out the RC and reporting any issues you may find. See what we need tested for more detail.
ยน You can at the moment rely on the manpages, the Manual, and of course the API, but other pages might be outdated.
[
and <
or >
in variant typesAfter a few more months brewing, we are pleased to announce a new beta release of opam. With this new milestone, opam is reaching feature-freeze, with an expected 2.0.0 by the beginning of next year.
This version brings many new features, stability fixes, and big improvements to the local development workflows.
The features presented in past announcements: local switches, in-source package definition handling, extended dependencies are of course all present. But now, all the glue to make them interact nicely together is here to provide new smooth workflows. For example, the following command, if run from the source tree of a given project, creates a local switch where it will restore a precise installation, including explicit versions of all packages and pinnings:
opam switch create ./ --locked
this leverages the presence of opam.locked
or <name>.opam.locked
files,
which are valid package definitions that contain additional details of the build
environment, and can be generated with the
opam-lock
plugin (the lock
command may
be merged into opam once finalised).
But this new beta also provides a large amount of quality of life improvements,
and other features. A big one, for example, is the integration of a built-in
solver (derived from mccs
and
glpk
). This means that the opam
binary
works out-of-the box, without requiring the external
aspcud
solver, and on all
platforms. It is also faster.
Another big change is that detection of architecture and OS details is now done
in opam, and can be used to select the external dependencies with the new format
of the depexts:
field, but also to affect dependencies or build flags.
There is much more to it. Please see the changelog, and the updated manual.
Our warm thanks for trying the new beta and reporting any issues you may hit.
The easiest is to use our pre-compiled binaries. This script will also make backups if you migrate from 1.x, and has an option to revert back:
sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)
This uses the binaries from https://github.com/ocaml/opam/releases/tag/2.0.0-beta5
Another option is to compile from source, using an existing opam installation. Simply run:
opam update; opam install opam-devel
and follow the instructions (you will need to copy the compiled binary to your PATH).
Compiling by hand from the
inclusive source archive,
or from the git repo. Use
./configure && make lib-ext && make
if you have OCaml >= 4.02.3 already
available; make cold
otherwise.
If the build fails after updating a git repo from a previous version, try
git clean -fdx src/
to remove any stale artefacts.
Note that the repository format is different from that of opam 1.2. Opam 2 will be automatically redirected from the opam-repository to an automatically rewritten 2.0 mirror, and is otherwise able to do the conversion on the fly (both for package definitions when pinning, and for whole repositories). You may not yet contribute packages in 2.0 format to opam-repository, though.
We are interested in all opinions and reports, but here are a few areas where your feedback would be specially useful to us:
--working-dir
option.opam install DIR
).
Give us feedback on the workflow. Use opam lock
and share development
environments.opam admin upgrade --mirror
on them, and use the generated mirror.--json
output)..mld
files) (#61).[@@deprecated]
attributes as the @deprecated
tag (#57).kind-identifer
syntax (part of #61).Add support for 4.06. Use Leo White's short-path for 4.05. Various bug fixes (in locate, in emacs serialization).
Oops, we went looking but didn't find the changelog for this release ๐
Contributed by @hhugo:
Migrate_parsetree
module.The major change Windows support is contributed by David Allsopp.
Other changes are a bunch of fixes:
Oops, we went looking but didn't find the changelog for this release ๐
Bug fix after 3.0.1:
Oops, we went looking but didn't find the changelog for this release ๐
Bug fix release after 3.0.0 major release.
Oops, we went looking but didn't find the changelog for this release ๐
The major change is a new protocol that moves process management inside Merlin codebase, saving a lot of pain in Emacs and Vim. There are not much new user facing features.
Windows support is not yet available.
In editor configuration is now done with merlin-flags, merlin-extensions and merlin-use in Emacs and :MerlinFlags, :MerlinExtensions and :MerlinPackages in Vim. In previous versions, enabled extensions, flags and packages were retained while now only the last command is remembered.
"M-x merlin-use a", "M-x merlin-use b" should be replaced by "M-x merlin-use a,b". ":MerlinUse a", ":MerlinUse b" should be replaced by ":MerlinUse a b".
The old protocol is still supported, so existing editor modes should not be affected (tested with Atom, Visual Studio and Sublime-text).
Other main changes:
Thanks to the many contributors (Jochen Bartl, tddsg, Ximin Luo, Jason Staten, Leo White, Leandro Ostera, Jacob Bass, Xavier Guรฉrin, Yotam Barnoy, Jacques Pascal Deplaix, David Allsopp, ...).
Oops, we went looking but didn't find the changelog for this release ๐
Minor release.
html-deps
subcommand behavior: it now expects to be given a
directory, not a single odoc file.utop.el
(#210, Louis Gesbert)-implicit-bindings
option to automatically bind expressions to names
_0
, _1
and so on. For example, 3 + 4;;
becomes let _0 = 3 + 4;;
(#161, #193, Fabian Hemmer)#mod_use
(#181, Leonid Rozenberg)#help
in #utop_help
(#190, Fabian Hemmer)#utop_stash
and #utop_save
to save the session to a file
(#169, #199, Christopher Mcalpine and Fabian Hemmer)UTop_main.interact
Minor release.