OPAM 1.0.0 released
I am very happy to announce the first official release of OPAM!
Many of you already know and use OPAM so I won't be long. Please read beta-release-of-opam for a longer description.
1.0.0 fixes many bugs and add few new features to the previously announced beta-release.
The most visible new feature, which should be useful for beginners with
OCaml and OPAM, is an auto-configuration tool. This tool easily enables all
the features of OPAM (auto-completion, fix the loading of scripts for the
toplevel, opam-switch-eval alias, etc). This tool runs interactively on each
opam init
invocation. If you don't like OPAM to change your configuration
files, use opam init --no-setup
. If you trust the tool blindly, use
opam init --auto-setup
. You can later review the setup by doing
opam config setup --list
and call the tool again using opam config setup
(and you can of course manually edit your ~/.profile (or ~/.zshrc for zsh
users), ~/.ocamlinit and ~/.opam/opam-init/*).
Please report:
- Bug reports and feature requests for the OPAM tool:
https://github.com/OCamlPro/opam/issues
- Packaging issues or requests for a new packages:
https://github.com/OCamlPro/opam-repository/issues
- General queries to:
https://lists.ocaml.org/listinfo/platform
- More specific queries about the internals of OPAM to:
https://lists.ocaml.org/listinfo/opam-devel
Install
Packages for Debian and OSX (at least homebrew) should follow shortly and I'm looking for volunteers to create and maintain rpm packages. The binary installer is up-to-date for Linux and Darwin 64-bit architectures, the 32-bit version for Linux should arrive shortly.
If you want to build from sources, the full archive (including dependencies) is available here:
https://github.com/ocaml/opam/releases/tag/2.1.0
Upgrade
If you are upgrading from 0.9.* you won't have anything special to do apart
installing the new binary. You can then update your package metadata by
running opam update
. If you want to use the auto-setup feature, remove the
"eval opam config env
line you have previously added in your ~/.profile
and run opam config setup --all
.
So everything should be fine. But you never know ... so if something goes horribly wrong in the upgrade process (of if your are upgrading from an old version of OPAM) you can still trash your ~/.opam, manually remove what OPAM added in your ~/.profile (~/.zshrc for zsh users) and ~/.ocamlinit, and start again from scratch.
Random stats
Great success on github. Thanks everybody for the great contributions!
https://github.com/OCamlPro/opam
: +2000 commits, 26 contributors
https://github.com/OCamlPro/opam-repository
: +1700 commits, 75 contributors, 370+ packages
on http://opam.ocamlpro.com/
+400 unique visitor per week, 15k 'opam update' per week
+1300 unique visitor per month, 55k 'opam update' per month
3815 unique visitor since the alpha release
Changelog
The full change-log since the beta release in January:
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 runningopam 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 ofwhich
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
anddepopts
fields inopam 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 usingopam 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
About OCamlPro:
OCamlPro is a R&D lab founded in 2011, with the mission to help industrial users benefit from experts with a state-of-the-art knowledge of programming languages theory and practice.
- We provide audit, support, custom developer tools and training for both the most modern languages, such as Rust, Wasm and OCaml, and for legacy languages, such as COBOL or even home-made domain-specific languages;
- We design, create and implement software with great added-value for our clients. High complexity is not a problem for our PhD-level experts. For example, we helped the French Income Tax Administration re-adapt and improve their internally kept M language, we designed a DSL to model and express revenue streams in the Cinema Industry, codename Niagara, and we also developed the prototype of the Tezos proof-of-stake blockchain from 2014 to 2018.
- We have a long history of creating open-source projects, such as the Opam package manager, the LearnOCaml web platform, and contributing to other ones, such as the Flambda optimizing compiler, or the GnuCOBOL compiler.
- We are also experts of Formal Methods, developing tools such as our SMT Solver Alt-Ergo (check our Alt-Ergo Users' Club) and using them to prove safety or security properties of programs.
Please reach out, we'll be delighted to discuss your challenges: contact@ocamlpro.com or book a quick discussion.
Most Recent Articles
2024
- opam 2.3.0 release!
- Optimisation de Geneweb, 1er logiciel français de Généalogie depuis près de 30 ans
- Alt-Ergo 2.6 is Out!
- Flambda2 Ep. 3: Speculative Inlining
- opam 2.2.0 release!
- Flambda2 Ep. 2: Loopifying Tail-Recursive Functions
- Fixing and Optimizing the GnuCOBOL Preprocessor
- OCaml Backtraces on Uncaught Exceptions
- Opam 102: Pinning Packages
- Flambda2 Ep. 1: Foundational Design Decisions
- Behind the Scenes of the OCaml Optimising Compiler Flambda2: Introduction and Roadmap
- Lean 4: When Sound Programs become a Choice
- Opam 101: The First Steps
2023
- Maturing Learn-OCaml to version 1.0: Gateway to the OCaml World
- The latest release of Alt-Ergo version 2.5.1 is out, with improved SMT-LIB and bitvector support!
- 2022 at OCamlPro
- Autofonce, GNU Autotests Revisited
- Sub-single-instruction Peano to machine integer conversion
- Statically guaranteeing security properties on Java bytecode: Paper presentation at VMCAI 23
- Release of ocplib-simplex, version 0.5