-
Notifications
You must be signed in to change notification settings - Fork 368
/
CHANGES
444 lines (410 loc) · 22.1 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
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)
1.2.1
* Non-system compiler definitions without source are now allowed
* Better handling of compiler "base" packages allows 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)
* 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 improvments 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 wich 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
* improvments when packages disapear 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