-
Notifications
You must be signed in to change notification settings - Fork 359
/
CHANGES
2570 lines (2487 loc) · 139 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
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes prefixed with "(*)" are potentially breaking to scripts or existing
repositories (changes that are automatically handled by the format upgrade tools
are not marked). Those prefixed with "(+)" are new command/option (since
2.1.0~alpha2).
2.2.0~beta3:
* (+) New option `opam init --cygwin-extra-packages=CYGWIN_PKGS
--cygwin-internal-install`, to specify additional packages for internal Cygwin
[#5930, #5964 @moyodiallo - fix #5834]
* Overhaul Windows `opam init` to determine Unix and Git configuration
simultaneously, and to detect from Cygwin, Git and MSYS2 from all the known
package managers and shells [#6000 @dra27]
* Redirect the opam root to `C:\opamroot\opam-xxx` when the opam root contains
spaces on Windows [#5457 @rjbou @dra27]
* Out-of-the-box UTF-8 paged `--help` on Windows [#5970 @kit-ty-kate]
* Sereval fixes were done related to environment reverting:
* Fix reverting of environment variables, principally on Windows
[#5935 @dra27 fix #5838]
* Fix splitting environment variables [#5935 @dra27]
* When opam creates an empty variable then appends/prepends a value, ensure
no additional separator is added [#5935 @dra27 - fix #5925]
* Fix `x-env-path-rewrite` splitting of values when reverting
[#5935 @dra27 - fix #5838]
* Rework the logic of := and =: so that an empty entry is correctly preserved
on multiple updates [#5935 @dra27 - fix #5926]
* Fix incorrect reverting of `=+` and `=:` [#5935 @dra27 - fix #5926]
* Fix a performance regression when calling `opam install --deps-only` on an
already installed package [#5908 @kit-ty-kate - fix #5817]
* Fixed some issues that could appear when upgrading from previous versions of
opam:
* Handle init OCaml `sys-ocaml-*` eval variables during format upgrade from
2.0 -> 2.1 -> 2.2 [#5829 @dra27]
* Reset the "jobs" config variable when upgrading from opam 2.1 to 2.2,
instead of 2.0 to 2.1 [#5904 @kit-ty-kate - fix #5816]
* Fixes various issues with opam tree and opam why:
* Fix `opam tree --with-*` assigning the `with-*` variables to unrequested
packages [#5919 @kit-ty-kate @rjbou - fix #5755]
* Fix combinations of `opam tree --with-*` and `--no-switch`
[#5919 @kit-ty-kate @rjbou - fix #5920]
* Allow to parse opam 2.1 switch import files containing extra-files
[#5943 @kit-ty-kate - fix #5941]
* Fix download URLs containing invalid characters on Windows
(e.g. the ? character in `?full_index=1`) [#5921 @dra27]
* Fix extraction of tarballs on Windows which contain symlinks both when those
symlinks can't be created or if they point to files which don't exist
[#5953 @dra27]
* Stop hiding the Windows specific arguments of opam init on non-Windows
platforms [#6003 @rjbou @kit-ty-kate @dra27]
* Various fixes for Windows:
* Harden the CRLF stripping when using cygcheck [#5993 @dra27]
* Fix curl failures - the progress meter can become interleaved with the
status code on Windows [#5984 @dra27 @kit-ty-kate @rjbou]
* Improve the Git-for-Windows menu shown during opam init
[#5963 @dra27 - fix #5835]
* For the `Cygwin` internal operator, don't allow `make.exe` to become
shadowed [#5996 @dra27]
* Fix incorrect quoting rule for `MANPATH` [#5972 @dra27]
* Do not special case the rewriting rule for the PKG_CONFIG_PATH environment
variable [#6002 @kit-ty-kate - fix #5923]
* Pass --symlink-type native to Cygwin setup if symlinks are available
[#5830 @dra27]
* Pass --no-version-check to Cygwin setup (suppresses a message box if setup
needs updating) [#5830 @dra27]
* Pass --quiet-mode noinput to stop the user interrupting the setup GUI
[#5830 @dra27]
* Always pass --no-write-registry to the Cygwin installer, not just on first
installation [#5995 @dra27]
* Fail if `--git-location` points to a directory not containing git
[#6000 @dra27]
* os-distribution is now by default calculated from cygpath for Cygwin and
MSYS2, instead of needing to be set by opam init [#6000 @dra27]
* Cygwin setup is now always downloaded and updated both for internal and
external Cygwin installations [#6000 @dra27]
* Display extractions in the status bar [#5977 @dra27]
* Display a note when reloading a repository [#5977 @kit-ty-kate]
* Various other fixes:
* Fix rounding error when displaying the timestamp in debug mode
[#5912 @kit-ty-kate - fix #5910]
* Relaxed warning 41 in opam lint to not trigger on uses of package variables
which are guarded by a package:installed filter [#5927 @dra27]
* Move last-env `OPAM_LAST_ENV` files outside the switch to be in `$OPAMROOT`
[#5962 @moyodiallo - fix #5823]
* Fix a typo in the variable description returned by "opam var" [#5961 @jmid]
* (*) Display lock hold/release messages on stderr instead of stdout
[#5999 @kit-ty-kate - fix #5990]
* Stop triggering "Undefined filter variable variable" debug warning for
`?variable` [#5983 @dra27]
* Remove unused/untested Makefile targets lib-pkg [#5494 @kit-ty-kate]
* Upgrade vendored packages (cmdliner 1.3.0, ocaml 4.14.2)
[#5970 #5976 @kit-ty-kate]
* Upgrade the opam-root-version to 2.2~beta [#5904 @kit-ty-kate]
* Improve and extend the tests
[#5919 #5919 #5904 #5925 #5935 #5926 #5935 #5927 @rjbou @dra27]
* Improve the benchmarks [#5909 @kit-ty-kate]
* Improve the test infrastructure [#5935 #5938 #5998 @dra27]
* API changes:
* `OpamClient.init` and `OpamClient.reinit`: now can have additional cygwin
packages to install [#5930 @moyodiallo]
* `OpamClientConfig.opam_init`: add `original_root_dir` argument that
contains the original root directory before redirection [#5457 @rjbou]
* `OpamClientConfig.opam_init`: add `root_from` argument that contains the
origin of used root[#5457 @dra27]
* `OpamInitDefaults.required_packages_for_cygwin`: no longer includes git; as
the need to add that is computed in `OpamClient` [#6000 @dra27]
* `OpamSolution`: expose `print_depext_msg` [#5994 @dra27]
* `OpamSolution`: extract `install_sys_packages` from
`OpamSolution.install_depexts` [#5994 @dra27]
* `OpamDownload.download_command`: separate output from stdout and stderr
[#5984 @kit-ty-kate]
* `OpamEnv.cygwin_non_shadowed_programs`: exposes the list of executables
(not including git) which should always come from Cygwin [#6000 @dra27]
* `OpamStateConfig.r`, `OpamStateConfig.init`: add `original_root_dir` field
to config record and argument that contains the original root directory
before redirection [#5457 @rjbou]
* `OpamStateConfig.r`, `OpamStateConfig.init`: add `root_from` field to
config record and argument that contains the origin of used root
[#5457 @dra27]
* `OpamSysInteract.Cygwin.check_install` renamed to `analyse_install` which
now also returns whether the installation found was MSYS2 or Cygwin
[#6000 @dra27]
* `OpamSysInteract.Cygwin.install`: de-label `packages` argument
[#6000 @dra27]
* `OpamFilter.fold_down_left`: correct handling of `FDefined` and `FUndef`
[#5983 @dra27]
* `OpamFilter.map_up`: correct handling of `FDefined` [#5983 @dra27]
* `OpamPath`: add `redirected` the file name of redirected opam root
[#5457 @rjbou]
* `OpamPath`: remove `OpamPath.Switch.last_env` function in favor to
`OpamPath.last_env` as the files are no more stored in switch directory
[#5962 @moyodiallo - fix #5823]
* `OpamCompat`: add `Seq.find_map` from OCaml 4.14 [#6000 @dra27]
* `OpamConsole.menu` now supports up to 35 menu items [#5992 @dra27]
* `OpamConsole`: Add `formatted_errmsg` [#5999 @kit-ty-kate]
* `OpamConsole.Symbols`: add `collision` symbol [#5457 @dra27]
* `OpamProcess.run_background`: name the stderr output file have the .err
extension when cmd_stdout is given [#5984 @kit-ty-kate]
* `OpamStd.String`: add `split_quoted` that preserves quoted separator
[#5935 @dra27]
* `OpamStd.Sys.resolve_command`: extracted the logic from
`OpamSystem.resolve_command`, without the default environment handling from
OpamProcess. [#5991 @dra27]
* `OpamStd.Sys.resolve_in_path`: split the logic of
`OpamStd.Sys.resolve_command` to allow searching for an arbitrary file in the
search path [#5991 @dra27]
* `OpamStd.Sys.{get_windows_executable_variant,get_cygwin_variant,
is_cygwin_variant}`: renamed `~cygbin` to `?search_in_path` with a change in
semantics so that it acts as though the directory was simply the first entry
in PATH [#6000 @dra27]
* `OpamStubs.enumRegistry`: on Windows, retrieves all the values of a given
type from a registry key, with their names [#6000 @dra27]
* `OpamStubs.getVersionInfo`: on Windows, retrieves the version information
block of an executable/library [#5963 @dra27]
* `OpamStubs.get_initial_environment`: on Windows, returns the pristine
environment for new shells [#5963 @dra27]
* `OpamStubs.readRegistry`: on Windows, complements `OpamStubs.writeRegistry`
[#5963 @dra27]
* `OpamSystem.copy_dir` and `OpamSystem.mv` may display a warning on Windows
if an invalid symlink (e.g. an LXSS Junction) is found [#5953 @dra27]
* `OpamSystem`: add `mk_unique_dir` that returns an unique directory name
as `mk_temp_dir` but not in temporary directory [#5457 @dra27]
2.2.0~beta2:
* Changes necessary to be able to open the PR adding support for Windows in
opam-repository:
* Add a init OCaml `sys-ocaml-system` eval variable [#5829 @dra27]
* Add warning 69: Warn for new syntax when package name in variable in string
interpolation contains several '+' [#5840 @rjbou]
* Hijack the `%{?val_if_true:val_if_false}%` syntax to support extending the
variables of packages with + in their name [#5840 @kit-ty-kate]
* Handle init OCaml `sys-ocaml-*` eval variables during format upgrade from
2.0 -> 2.1 -> 2.2 [#5829 @dra27]
* Add `winsymlinks:native` to the Cygwin environment variable when installing
a package on Windows [#5793 @kit-ty-kate - fix #5782]
* Internal Cygwin installation's bin directory is placed as far down PATH as
is necessary not to shadow `bash`, `tar`, `sort` or `git` [#5832 @dra27]
* Changes necessary for a smooth application of the plan to change
opam-repository devided in
https://github.com/ocaml/opam-repository/issues/23789
* Warn if `GNU patch` is not detected when a patch is applied
[#5893 @kit-ty-kate]
* Use `gpatch` by default instead of `patch` on NetBSD and DragonFlyBSD
[#5893 @kit-ty-kate]
* Use `gpatch` if it exists and is detected as GNU patch when `patch` is not
`GNU patch` [#5893 @kit-ty-kate]
* Improve the opam init experience on Windows:
* Recommend enabling Developer Mode on Windows [#5831 @dra27]
* Fix MSYS2 support [#5843 @rjbou - fix #5683]
* Add `sys-pkg-manager-cmd` as an accepted field in opamrc files
[#5847 @rjbou - fix #5844]
* Fix `git-location` handling in init config file [#5848 @rjbou - fix #5845]
* Make the computation of the init default `sys-ocaml-*` eval variables on
Windows faster, no more depending on Cygwin [#5829 @dra27 @rjbou]
* Mark the internal cygwin installation as recommended [#5903 @kit-ty-kate]
* Quote all the paths to `OPAMROOT` when creating the init scripts on Unix in
case OPAMROOT contains spaces, backslashes or special characters
[#5841 @kit-ty-kate - fix #5804]
* Improve the internal Cygwin installation during init on Windows:
* Disable ACL in Cygwin internal install to avoid permission mismatch errors
[#5796 @kit-ty-kate - fix #5781]
* Add rsync package to internal Cygwin packages list (enables local pinning
and is used by the VCS backends [#5808 @dra27]
* Various improvements to the shell integration:
* Test if file exists before sourcing in fish + powershell
[#5864 @ElectreAAS]
* Properly test if "we're in interactive mode" instead of "in a tty" in fish
script [#5866 @ElectreAAS]
* Unixify Windows paths in init shells scripts (sh, bash, zsh, fish & tsh)
[#5797 @rjbou]
* Various improvements to opam init:
* Simplify computation of OCaml init default `sys-ocaml-*` eval variables on
Unix [#5829 @dra27]
* Check for gpatch instead of patch on NetBSD and DragonFlyBSD
[#5893 @kit-ty-kate]
* Various improvements on Windows:
* Ensure that the system critical error dialog is disabled when opam starts
[#5828 @dra27]
* Fix loading git location at init [#5843 @rjbou]
* Remove use of deprecated function `SHGetFolderPath` and use
`SHGetKnownFolderPath` instead [#5862 @kit-ty-kate]
* Improve performance by only calling `OpamStubs.getPathToSystem` once
[#5862 @dra27]
* Various improvements to the environment handling:
* Fix shell detection on Windows when opam is called via Cygwin's
`/usr/bin/env `even though cmd/powershell is used [#5797 @kit-ty-kate]
* Fix incorrect deduplication of environment variables on update. Effect was
that `FOO += ""` would occlude the value of `FOO` in the environment
[#5837 @dra27]
* Fix regression from #5356 on the detection of out-of-date environment
variables. As part of a refactoring, a filter predicate got inverted
[#5837 @dra27]
* Disable Software Heritage fallbacks by default [#5899 @kit-ty-kate]
* Make sure `opam source --dev` with git sources, clones the whole repository
instead of using `--depth=1` [#5888 @moyodiallo - fix #5061]
* Add support for Wolfi OS, treat it like Apline family as it uses apk too
[#5878 @xnox]
* Add support for doas as an alternative to sudo to the installer
[#5820 @kit-ty-kate - fix #5792]
* Do not check for cppo in the configure script (not used directly anymore
since #5498) [#5794 @kit-ty-kate]
* Upgrade vendored packages (cmdliner 1.2.0, dune 3.14.2, re 1.11.0, ocamlgraph
2.1.0, opam-file-format 2.1.6) [#5797 #5869 #5880 #5869 @kit-ty-kate @dra27]
* Allow to compile opam when the environment contains unicode characters on
Windows [#5880 @kit-ty-kate - fix #5861]
* Sandbox: Mark the user temporary directory (as returned by `getconf
DARWIN_USER_TEMP_DIR`) as writable when TMPDIR is not defined on macOS
[#5780 @ElectreAAS]
* Improve the documentation [#5812 #5818 #5849 #5850 #5885 #5905 #5840 @sorawee
@AldanTanneo @Khady @kit-ty-kate]
* Improve and extend the tests [#5864 #5829 #5840 #5888 @moyodiallo
@kit-ty-kate @rjbou]
* Improve the benchmarks [#5900 @kit-ty-kate]
* Improve the test infrastructure [#5851 #5869 #5788 @dra27 @rjbou]
* API changes:
* `OpamClient.windows_checks`: On existing cygwin install, permit to detect
MSYS2 and store `os-distribution=msys2` in `global-variables` config file
field [#5843 @rjbou]
* `OpamClient.windows_checks`: When updating config file for MSYS2, resolve
`pacman` path and store it in `sys-pkg-manager-cmd` for MSYS2 [#5843 @rjbou]
* `OpamArg.apply_global_options`: load MSYS2 Cygwin binary path too
[#5843 @rjbou]
* `OpamRepositoryBackend.S.pull_url`, `OpamVCS.fetch`,
`OpamRepository.pull_tree`: add `full_fetch` optional argument to pull full
history if url is a `VCS` [#5888 @moyodiallo - fix #5061]
* `OpamEnv.env_expansion`: Fix detection of out-of-date environment
variables, a filter predicate was inverted [#5837 @dra27]
* `OpamSysInteract.Cygwin.check_install`: add `variant` argument to permit
checking that it is an Cygwin-like install if it is set to true, keep
checking that it is a strictly Cygwin install if false [#5843 @rjbou]
* `OpamSysInteract.Cygwin.check_install`: look for `cygcheck.exe` in
`usr/bin` also as MSYS2 doesn't have "bin" [#5843 @rjbou]
* `OpamGlobalState.load_config`: load MSYS2 Cygwin binary path too at config
file loading [#5843 @rjbou]
* `OpamEnv`: add `sys_ocaml_eval_variables` value, moved `OpamInitDefaults`
as it is also needed in `OpamFormatUpgrade` too [#5829 @rjbou @kit-ty-kate]
* `OpamEnv` supports an internal `Cygwin` environment operation which pushes
the given directory as far down the list as can be done without shadowing.
This mechanism replaces the opposite which was done in OpamProcess
[#5832 @dra27]
* `OpamFile.InitConfig`: add `sys-pkg-manager-cmd` field [#5847 @rjbou]
* `OpamTypesBase`: add `filter_ident_of_string_interp` that is used for
parsing variables in string interpolation like `filter_ident_of_string` but
permits the parsing of '%{?pkg+:var:}%' syntax [#5840 @rjbou]
* `OpamTypesBase.filter_ident_of_string_interp`: add `accept` optional
argument to be able to raise an error when several pluses are in the package
name without using the new syntax, like `%{pkg+++:var}%`
* `OpamFilter`: add `extract_variables_from_string` to retrieve string of
variables, and exposes it [#5840 @rjbou]
* `OpamTypes.env_update` now has an additional type parameter indicating
whether the update is internal or writeable [#5832 @dra27]
* `OpamStd.Sys`: add `is_cygwin_variant_cygcheck` that returns true if in
path `cygcheck` is from a Cygwin or MSYS2 installation [#5843 @rjbou]
* `OpamStd.Env.cyg_env`: takes the environment to cygify, usually
`OpamStd.Env.raw_env` [#5829 @dra27]
* `OpamSystem.patch` now displays a warning when GNU patch is not detected
and looks for both patch and gpatch as a backup option depending on the OS
[#5893 @kit-ty-kate]
* `OpamProcess.cygwin_create_process_env` no longer adjusts PATH
[#5832 @dra27]
2.2.0~beta1:
* Check and advertise to use Git for Windows [#5718 @rjbou - fix #5617]
* (+) Add the `--git-location` and `--no-git-location` cli arguments
* (+) Add a new `git-location` modifiable opam option on Windows
* When compiling opam on Windows with MinGW, the resulting opam binary now
contains libstdc++ instead of requiring the DLL to be distributed alongside
it or present in the environment [#5680 @kit-ty-kate - fixes #5647]
* Add `./configure --enable-static` to compile the opam binary statically
on Linux
* Fix `opam env` containing carriage return on Cygwin
[#5715 @dra27 @rjbou @kit-ty-kate - fix #5684]
* Remove stray comments from pwsh and cmd env
* Fix debug logs showing up regardless of verbosity on
macOS 12.7.1 / 13.6.3 / 14.2 and FreeBSD [#5769 @kit-ty-kate]
* Upgrade to, and require mccs >= 1.1+17
* Fix `opam tree --dev` [#5687 @rjbou - fix #5675]
* Fix `opam tree --no-switch`. Instead of emptying the current switch from its
installed packages, it load a fresh virtual switch [#5687 @rjbou - fix #5675]
* Display a more precise message when Ctrl-C'ing during an opam switch creation
("Switch left partially installed") [#5713 @rjbou - fix #5710]
* Improve and fix the release scripts (already used for 2.2.0~alpha3)
* Workaround incorrect `NGROUPS_MAX` in `<limits.h>` in musl for release
builds [#5383 @dra27]
* Fix check for adding `-lsha_stubs` only on `master` on OpenBSD
[#5733 @punchagan]
* Improve the documentation [#5775 lukstafi]
* Improve and extend the tests [#5687 #5742 @rjbou]
* Improve the test infrastructure [#5723 @dra27]
* API changes:
* `OpamCoreConfig`: add `git_location` field [#5718 @rjbou ]
* `OpamStd.Env.cyg_env`: add git location argument and labels
`cygbin` and `git_location` [#5718 @rjbou]
* `OpamSystem.apply_cygpath`: runs `cygpath` over the argument
[#5723 @dra27 - function itself added in #3348]
* `OpamFile.Config`: add git-location field and its functions
[#5718 @rjbou]
* `OpamClient`: on `init` and `reinit` add git lookup in windows
checks [#5718 @rjbou]
* `OpamClient.init`: add option `git-location` argument for git
binary location configuration [#5718 @rjbou]
* `OpamTreeCommand.run`: remove optional argument `no_switch`
[@rjbou #5687]
2.2.0~alpha3:
* Add `x-env-path-rewrite` extensions field to specify the rewriting rules for
environment variables defined in `setenv` and `build-env`, useful for
platforms like Windows [#5636 @rjbou - fix #5602 #4690 #2927]
* The `environment` file now stores environment variable rewriting rules
[#5636 @rjbou]
* Reinstall a package if its `x-env-path-rewrite` is updated [#5636 @rjbou]
* (*) Sandbox: Make /tmp writable again to restore POSIX compliancy
[#5634 #5662 @kit-ty-kate - fixes #5462]
* (+) opam tree: Allow packages with a specific version, directories or local
opam files, as input [#5613 @kit-ty-kate]
* (+) opam tree: Add handling of `--recurse` and `--subpath` for directory
arguments [#5613 @kit-ty-kate]
* (+) opam admin: Add `add-extrafiles` command to add, check, and update
`extra-files:` field according files present in `files/` directory
[#5647 @rjbou]
* (+) Allow to mark a set of warnings as errors using a new syntax -W @1..9
[#5652 @kit-ty-kate @rjbou - fixes #5651]
* Create ppc64le and s390x binaries during releases [#5420 @kit-ty-kate]
* Fix incorrect error message when alternate C compiler is missing on Windows
[#5667 @dra27 - partial fix #5661]
* Fix `x-locked` error message [#5636 @rjbou]
* opam lint: Improve the debug log when checking extra-files [#5640 @rjbou]
* [BUG] Fix sporadic crash and segfault in shell detection (seen in native
containers) [#5714 @dra27]
* [BUG] Fix extra-files handling when linting packages from repositories
[#5639 @rjbou]
* [BUG] On install driven by `.install` file, track intermediate directories
too, in order to have them suppressed at package removal
[#5691 @rjbou - fix #5688]
* [BUG] With `--assume-built`, resolve variables in depends filter according
switch & global environment, not only depends predefined variables
[#5700 @rjbou - fix #5698]
* [BUG] Handle undefined variables defaults to false in dependencies formula
resolution for assume built [#5701 rjbou]
* [BUG] Fix `OPAMCURL` and `OPAMFETCH` handling [#5607 @rjbou - fix #5597]
* [BUG] Fix the `OPAMVERBOSE` setting, levels 0 and 1 were inverted: "no" gave
level 1, and "yes" gave level 0 [#5686 @smorimoto]
* [BUG] Fix "make cold" on Windows when gcc is available
[#5635 @kit-ty-kate - fixes #5600]
* Improve the documentation [#5636 #5706 #5708 @MisterDA @kit-ty-kate @rjbou]
* Improve and extend the tests [#5560 #5600 #5607 #5636 #5639 #5647 #5672 #5686
#5691 #5700 #5701 @kit-ty-kate @rjbou]
* Improve the test infrastructure [#5560 #5606 #5607 #5607 #5654 #5657 @rjbou]
* API changes:
* `OpamSystem.mk_temp_dir`: resolve real path with `OpamSystem.real_path`
before returning it [#5654 @rjbou]
* `OpamSystem.resolve_command`: in command resolution path, check that the
file is not a directory and that it is a regular file
[#5606 @rjbou - fix #5585 #5597 #5650 #5626]
* `OpamStd.Config.env_level`: fix level parsing, it was inverted (eg, "no"
gives level 1, and "yes" level 0) [#5686 @smorimoto]
* `OpamStd.Sys.chop_exe_suffix`: removes `.exe` from the end of a path, if
present [#5714 @dra27]
* `OpamSystem.get_cygpath_path_transform`: add labeled argument to specify
if path is a pathlist [#5636 @rjbou]
* `OpamSystem.apply_cygpath_path_transform`: fix cygpath call, use resolved
name [#5716 @rjbou]
* `OpamTreeCommand.run`: now takes an `atom` instead of `name`
[#5613 @kit-ty-kate]
* `OpamFilter`: add `expand_interpolations_in_file_full` which allows setting
the output file along with the input file [#5629 @rgrinberg]
* `OpamFilter`: expose `string_interp_regex` which allows clients to identify
variable interpolations in strings [#5633 @gridbugs]
* `OpamTypes.env_update`: change from tuple to a record [#5636 @rjbou]
* `OpamTypesBase`: add `env_update`, `env_update_resolved`, and
`env_update_unresolved` builders [#5636 @rjbou]
* `OpamTypes.env_update`: add a `rewrite` field, that contains environment
variable rewriting rules (formula to resolved, or already resolved, or no
rewriting) [#5636 @rjbou]
* `OpamPp.fallback`: add name concatenation and printing fallback too
[#5636 @rjbou]
* `OpamFormat`: add `formula_items` to permit definition of formulae pp not
only of the type `package-formula` [#5636 @rjbou]
* `OpamTypesBase`: add to_string function for `path_format` & `separator`
[#5636 @rjbou]
* `OpamFormat.V`: add `path_format` & `separator` value parser printer
[#5636 @rjbou]
* `OpamFile.OPAM`: add handling of `x-env-path-rewrite` extensions field,
that specifies rewrite rules [#5636 @rjbou]
* `OpamFile.Environment`: add parsing-printing of rewriting rules, keeping
backward compatibility [#5636 @rjbou]
* `OpamFile.OPAM`: `effective_part` keeps `x-env-path-rewrite`, affects also
`effectively_equal` [#5636 @rjbou]
* `OpamTypesBase`: add `env_update_resolved` and `env_update_unresolved`
builders [#5636 @rjbou]
* `OpamPp.fallback`: add name concatenation and printing fallback too
[#5636 @rjbou]
* `OpamFormat`: add `formula_items` to permit definition of formulae pp not
only of the type `package-formula` [#5636 @rjbou]
* `OpamTypesBase`: add to_string function for `path_format` & `separator`
[#5636 @rjbou]
* `OpamFormat.V`: add `path_format` & `separator` value parser printer
[#5636 @rjbou]
* `OpamFile.OPAM`: add handling of `x-env-path-rewrite` extensions field,
that specifies rewrite rules [#5636 @rjbou]
* `OpamFile.Environment`: add parsing-printing of rewriting rules, keeping
backward compatibility [#5636 @rjbou]
* `OpamFile.OPAM`: `effective_part` keeps `x-env-path-rewrite`, affects also
`effectively_equal` [#5636 @rjbou]
2.2.0~alpha2:
* Permit internal Cygwin install on Windows [#5545 @rjbou @dra27]
* Add `--no-cygwin-setup`, `--cygwin-internal-install`,
`--cygwin-local-install` and `--cygwin-location <path>` experimental flags
available only on Windows to permit non-interactive Cygwin configuration
[#5545 @rjbou]
* opam var/option: Error with more accurate message in case of package/self
variable wrongly given as argument [#4903 @rjbou - fix #4489]
* [BUG] opam var/option: Handle package variable syntax in parse update
regexp [#4903 @rjbou - fix #4489]
* Lint: E29: The conflicts field's filter does not support package variables
[#5535 @kit-ty-kate]
* opam admin: On linting, clean output when stdout is not tty [#5594 @rjbou]
* Run autoupdate to silence autogen warnings [#5555 @MisterDA]
* Update bootstrap to use FlexDLL 0.43 from ocaml/flexdll [#5579 @MisterDA]
* configure: Ensure a complementary (32bit on 64bit platforms and 64bit on
32bit platforms) C compiler is installed on Windows [#5522 @kit-ty-kate]
* Bump versions, fix authors [#5603 #5609 #5611 @rjbou]
* Improve and extended tests: [#5385 #5535 @rjbou]
* Improve test engine: [#5481 @dra27]
* Improve Github actions: [#5555 #5588 #5598 @rjbou]
2.2.0~alpha:
* Depexts support Cygwin on Windows [#5542 @rjbou] [#5544 @rjbou]
[#5541 @dra27]
* Support MSYS2 on Windows for depexts [#5348 @jonahbeckford #5433 @rjbou]
* Generate init and variables for Windows [#5541 @dra27]
* When defined, add Cygwin binary path to build environment [#5543 @rjbou]
* On Windows, ask for pre-existent Cygwin installation, check it, and configure
opam with it [#5544 @dra27 @rjbou]
* Reactivate subpath and recursive pinning `--recursive` and `--subpath`
[#4876 @rjbou] [#5219 @rjbou]
* (+) Add `tree` subcommand to display a dependency tree of currently installed
packages [#5171 @cannorin - fix #3775] [#5303 @cannorin - fix #5298]
* (+) Add `why` subcommand to examine how the versions of currently installed
packages get constrained (alias to `tree --rev-deps`)
[#5171 @cannorin - fix #3775]
* (+) Add `--formula` option to specify a formula to install [#4975 @AltGr]
* (+) Add `--dev-setup` option to install recommended development tools from
opam file (as `with-test`/`with-doc`), and its environment variable
`OPAMWITHDEVSETUP`, and for post-messages
[#5016 #5160 #5214 @rjbou - fix #4959]
* Opamfile: Add `with-dev-setup` variable for recommended tools
[#5016 #5214 @rjbou]
* Factorise source-archive fetching. If several packages relies on the same
archive, it is downloaded once then copied to several source directories
[#4893 @rjbou - fix #3741]
* Add Software heritage fallback when downloading archive source, triggered
when all urls and cache fails, with confirmation [#4859 @rjbou @zapashcanon]
* Opamfile: Add swhid url handling in url field [#4859 @rjbou @zapashcanon]
* (+) New option `opam pin --current` to fix a package in its current state
(avoiding pending reinstallations or removals from the repository)
[#4973 @AltGr - fix #4970]
* (+) Add `opam pin remove --all` to remove all the pinned packages from a
switch [#5308 @kit-ty-kate]
* Allow `opam pin remove` to take a package (`<pkg>.<version>`) as argument
[#5325 @kit-ty-kate]
* (+) Add `opam exec --no-switch` [#4957 @kit-ty-kate - fix #4951]
* (+) Add `--no-switch` option [#4850 @rjbou - fix #4858]
* (+) Add `--untracked` option to remove interactively untracked files
[#4915 @rjbou - fix #4831]
* (+) Add support for `opam switch -` that goes to previous non-local switch
[#4910 @kit-ty-kate - fix #4688]
* (+) Add `opam admin add-constraint <cst> --packages` to select a subset of
packages to apply constraints [#5386 @rjbou - fix #3077]
* (+) Add `OPAMREPOSITORYTARRING` environment variable to enable repository
tarring optimisation, it is disabled by default because it is an optimisation
only on some os/configurations [#5015 @rjbou]
* Run the sandbox check in the temporary directory [#4787 @dra27 - fix #4783]
* Use `.opam` from `%HOME%` or `%USERPROFILE%` on Windows, only if found;
otherwise use `%LOCALAPPDATA%\opam` as root. [#5212 @dra27]
* Display actual location of OPAMROOT in `opam init` if `--root` or `OPAMROOT`
have been set [#5212 @dra27 - fix #4992]
* Surround and add a comment describing the role of the lines added to the
~/.profile or equivalent [#5456 @kit-ty-kate]
* Use menu for init setup [#5057 @AltGr; #5217 @dra27]
* (*) init menu: change default from no to yes for shell update
[#5456 #5540 @rjbou @kit-ty-kate]
* [BUG] Fix `opam init` and `opam init --reinit` when the `jobs` variable has
been set in the opamrc or the current config. [#5056 @rjbou]
* Handle empty environment variable updates - missed cherry-pick from 2.0
[#4840 @dra27]
* When a field is defined in switch and global scope, try to determine the
scope also by checking switch selection [#5027 @rjbou]
* Resolve and use global config and environment variable before polling system
informations (os, os-family, etc.) [#4892 @rjbou - fix #4883]
* Catch an package not found error and print skipping message
[#5280 @rjbou - fix #5279]
* Option: Make `archive-mirrors` modifiable (extendable) via opam config
[#5321 @hannesm @rjbou - fix #5316]
* Open the release files when determining the distribution
[#5568 @Leonidas-from-XIV]
* [BUG] Fix `OPAMCURL` and `OPAMFETCH` value setting [#5111 @rjbou - fix #5108]
* [BUG] Option: Don't error when displaying if switch is not set
[#5027 @rjbou - fix #5025]
* [BUG] Try to set a variable with option `--switch <sw>` fails instead of
writing a wrong `switch-config` file [#5027 @rjbou]
* [BUG] Fix typo in error message for opam var [#4786 @kit-ty-kate - fix #4785]
* Config report: Add invariant and compiler packages fields
[#5480 @rjbou - fix #5478]
* [BUG] Config report: Don't fail if no switch is set [#5198 @rjbou]
* Add CLI 2.2 handling [#4853 @rjbou]
* `--no-depexts` is the default in CLI 2.0 mode [#4908 @dra27]
* CLI: Error report display: print action name [#5045 @AltGr]
* CLI: Add `experimental` flags handling [#5099 @rjbou]
* Put back support for switch creation with packages argument and `--packages`
option with CLI 2.0, and a specific error message for CLI 2.1
[#4853 @rjbou - fix #4843]
* Fix default CLI handling for simple flags [#5099 @rjbou]
* Check whether the repository might need updating more often
[#4935 @kit-ty-kate]
* (*) It is no longer possible to process actions on packages that depend on a
package that was removed upstream [#4969 @AltGr]
* (*) PEF output: change `base` field into `invariant-pkg` [#5208 @rjbou]
* [BUG] Fix all empty conflict explanations [#4982 #5263 @kit-ty-kate]
partially}_
* [BUG] Fix passing `archive-mirrors` field from init config file to config
[#5315 @hannesm]
* [BUG] Fix json double printing [#5143 @rjbou]
* Reimplement deps-only [#4975 @AltGr] [#5136 @AltGr]
[#5236 @AltGr - fix #5177] [#5236 @AltGr - fix #5185]
* Log a summary of recorded `.changes` as a `ACTION` trace log to help debug
#4419 [#5144 @na4zagin3]
* Use the default criteria during reinstall/upgrade when requesting at least
one non-installed package [#5228 @kit-ty-kate]
* [BUG] Prevent `.changes` files from being updated during dry-run
[#5144 @na4zagin3 - fix #5132]
* Make the status of pinned packages more explicit during installation
[#4987 @kit-ty-kate - fix #4925]
* Show the reason for installing packages when using opam reinstall
[#5229 @kit-ty-kate]
* Refresh the actions list output, now sorted by action/package rather than
dependency [#5045 @kit-ty-kate @AltGr - fix #5041]
* Put back the actions summary as part of confirmation question [#5045 @AltGr]
* Add subpath on actions listing urls [#4876 @rjbou]
* [BUG] Fix display of pinned packages in action list [#5079 @rjbou]
* Fix message when running `opam remove` on an unavailable package
[#4995 @AltGr - fix #4890]
* Fix removal of root packages with `-a` and an optional dependency explicitly
specified [#4995 @AltGr - fix #4727]
* On switch loading, check for executable external files if they are in `PATH`,
and warn if not the case [#4932 @rjbou - fix #4923]
* When inferring a 2.1+ switch invariant from 2.0 base packages, don't filter
out pinned packages as that causes very wide invariants for pinned compiler
packages [#5176 @dra27 - fix #4501]
* When setting invariant, really install invariant formula if not installed in
switch [#5188 @rjbou]
* When setting invariant, update switch state to compute invariant packages
[#5208 @rjbou]
* On switch import, check that installed pinned packages changed, reinstall if
so [#5181 @rjbou - fix #5173]
* Update compiler / base packages handling: always updated, the field contains
installed packages resolving invariant formula [#5208 @rjbou]
[#5503 @kit-ty-kate - fix #5502]
* Fill empty switch synopsis with invariant formula instead of compiler package
name [#5208 @rjbou]
* [BUG] Ensure setenv can use package variables defined during the build
[#4841 @dra27]
* [BUG] Fix `set-invariant`: default repos were loaded instead of switch repos
[#4866 @rjbou]
* [BUG] Enforce extra-source to have a checksum when using "opam switch export
--freeze" [#5418 @kit-ty-kate]
* Switch the default pin version when undefined from `~dev` to `dev`
[#4949 @kit-ty-kate]
* pin scan: show subpaths [#4876 @rjbou]
* [BUG] Fix using `--working-dir` with non pinned packages: it was not
downloading sources as they were remove from package that need sources
[#5082 @rjbou - fix #5060]
* [BUG] Fix windows path for subpath, by introducing their own type in
`OpamFilename` [#4876 @rjbou]
* [BUG] Fix recpin of locked pins when there is no change in lock file
[#5079 @rjbou - fix #4313]
* [BUG] Fix `opam install ./file.opam` lock pinning [#5148 @rjbou - fix #4313]
* [BUG] Fix origin opam file retrieval when opam originate from locked file
[#5079 @rjbou - fix #4936]
* [BUG] When reinstalling a package that has a dirty source, if uncommitted
changes are the same than the ones stored in opam's cache, opam consider that
it is up to date and nothing is updated [#4879 @rjbou]
* [BUG] Handle external dependencies when updating switch state pin status (all
pins), instead as a post pin action (only when called with `opam pin`
[#5047 @rjbou - fix #5046]
* Some optimisations to 'opam list --installable' queries combined with other
filters [#4882 @AltGr - fix #4311]
* Improve performance of some opam list combination (e.g. --available
--installable) [#4999 @kit-ty-kate]
* Improve performance of opam list --conflicts-with when combined with other
filters [#4999 @kit-ty-kate]
* Improve performance for recursive `--required-by` and `depends-on`
[#5337 @rjbou]
* Colorise as unavailable (magenta) packages that are specified in the
invariant formula and that do not verify it (previous was non installed
compiler package) [#5208 @rjbou]
* (*) Change `--base` into `--invariant`, column name and the content is
invariant formula installed dependencies [#5208 @rjbou]
* [BUG] Fix coinstallability filter corner case [#5024 @AltGr]
* Show: Add `depexts` to default printer [#4898 @rjbou]
* Show: Add printer for `url.swhid:` [#4859 @rjbou]
* Make `opam show --list-files <pkg>` fail with not found when `<pkg>` is not
installed [#4956 @kit-ty-kate - fix #4930]
* Improve performance of opam show by 300% when the package to show is given
explicitly or unique [#4998 @kit-ty-kate - fix #4997 and partially #4172]
* Download source even if no switch is set
[#4850 @rjbou @zapashcanon - fix #4809]
* Source: [BUG] Fix directory display in dev mode [#5102 @rjbou]
* [BUG] if a package is pinned from a locked file, it is automatically
updated/upgraded accordingly a lock file (same extension) [#5080 @rjbou]
* More clear message for pinned package update that have local changes, with no
working dir given, or no arguments specified [#5300 @rjbou - fix #5294]
* Lint: Warning 68: add warning for missing license field
[#4766 @kit-ty-kate - partial fix #4598]
* Lint: Warning 47: remove the mention of the opam 1.2 descr file in the
warning message [#5069 @rjbou - fix #4989]
* Lint: Warning 56: detection removed, since `OPAM_LAST_ENV` allows reliable
reverting [#5417 @dra27]
* Lint: Error 57: (capital on synopsis) not trigger Warning 47 (empty descr)
[#5070 @rjbou]
* Lint: Error 57: Enforce synopsis to always be there, restoring behaviour from
opam 2.1 [#5442 @kit-ty-kate]
* Lint: Update repository package filename display [#5068 @rjbou]
* Lint: Warning 62: use the spdx_licenses library to check for valid licenses.
This allows to use compound expressions such as "MIT AND (GPL-2.0-only OR
LGPL-2.0-only)", as well as user defined licenses e.g.
"LicenseRef-my-custom-license" [#4768 @kit-ty-kate - fixes #4598]
[#5571 @3Rafal - fix #5570]
* [BUG] Lint: Fix linting packages from repository with tarred repositories,
the file in temporary repository was no more available when lint is done
[#5068 @rjbou]
* Lint: Error 67: check checksums only for VCS urls [#4960 @rjbou]
* [SECURITY] Fix opam installing packages without checking their checksum when
the local cache is corrupted in some cases [#5538 @kit-ty-kate]
* When several checksums are specified, instead of adding in the cache only the
archive by first checksum, name by best one and link others to this archive
[#4696 rjbou]
* Set the priority of user-set archive-mirrors higher than the repositories'.
This allows opam-repository to use the default opam.ocaml.org cache and be
more resilient to changed/force-pushed or unavailable archives.
[#4830 @kit-ty-kate - fixes #4411]
* Repository tarring "optimisation" no more needed, removed in favor of a plain
directory. It still can be used with environment variable
`OPAMREPOSITORYTARRING`. [#5015 @kit-ty-kate @rjbou @AltGr - fix #4586]
[#5109 @rjbou]
* Avoid reloading repository contents when the repo has no changes
[#5043 @Armael]
* Avoid rewriting repository cache is nothing changed [#5146 @rjbou]
* On setting url fetch failure (sync or file error), revert url change and
rollback to old one [#4967 @rjbou - fix #4780 #4779]
* Update opam repository man doc regarding removal of the last repository in a
switch [#4435 - fixes #4381]
* Don't display global message when `opam repo`'s `--this-switch` is given
[#4899 @rjbou - fix #4889]
* Remove url section from lock file, it is ignored on pinning [#5465 @rjbou]
* Fix lock generation of multiple interdependent packages [#4993 @AltGr]
* Depext: Run command as admin only when needed [#5268 @kit-ty-kate]
* Depext: Don't run depext computation when there is no depexts [#5548 @rjbou]
* [BUG] Depext: when checking again, more accurate check of missing packages
(available and not found) [#5157 @rjbou]
* Depext: Better recognize depexts on Gentoo, NetBSD, OpenBSD [#5065 @mndrix]
* Depext: Set `DEBIAN_FRONTEND=noninteractive` for unsafe-yes confirmation
level [#4735 @dra27 - partial fix #4731] [2.1.0~rc2 #4739]
* Depext: Homebrew: Add support for casks and full-names [#4801 @kit-ty-kate]
* Depext: Disable the detection of available packages on RHEL-based
distributions. This fixes an issue on RHEL-based distributions where yum list
used to detect available and installed packages would wait for user input
without showing any output and/or fail in some cases
[#4791 @kit-ty-kate - fixes #4790]
* Depext: Fallback on dnf if yum does not exist on RHEL-based systems
[#4825 @kit-ty-kate]
* Depext: Archlinux: handle virtual package detection
[#4831 @rjbou - partial fix #4759]
* Depext: Stop zypper from upgrading packages on updates on OpenSUSE
[#4978 @kit-ty-kate]
* [BUG] Depext: Fix depext alpine tagged repositories handling [#4763 @rjbou]
[2.1.0~rc2 #4758]
* Depext: Improve the error message when neither MacPorts or Homebrew could be
detected on macOS [#5240 @kit-ty-kate]
* Depext: Print depexts together with action list on `--show` [#5236 @AltGr]
* Depext: Don't display system package manager helper if packages are not found
[#5157 @rjbou]
* Depext: Increase verbose logging of command to 4 [#5151 @rjbou]
* Depext: Refactored depext-related questions, with a flat menu instead of
nested y/n questions [#5053 @AltGr - fix #5026] [#5155 @rjbou] [#5295 @AltGr]
[#5499 @AltGr]
* Depext: Introduce dummy-success & dummy-failure os-family to make testing
depexts behaviour easier [#5268 @kit-ty-kate] [#5453 @rjbou @dra27]
* dash: recognize dash as a POSIX shell for opam env [#4816 @jonahbeckford]
* pwsh,powershell: use $env: for opam env [#4816 @jonahbeckford] [#5541 @dra27]
[#5541 @dra27]
* command prompt: use `set` for opam env [#4816 @jonahbeckford] [#5541 @dra27]
* [BUG] fish: fix deprecated redirection syntax `^` [#4736 @vzaliva]
* (*) `opam admin cache` now ignores all already present cache files. Option
`--check-all` restores the previous behaviour of validating all checksums.
* [BUG] Admin: Fix repo-upgrade internal error [#4965 @AltGr]
* [BUG] Admin: Fix `--environment` documentation [#5235 @rjbou - fix #5184]
* [BUG] Admin: Fix opam admin add-constraint failing with Not_found in some
situations [#5336 @kit-ty-kate - fix #5334]
* Sandbox: Sync the behaviour of the macOS sandbox script with Linux's: /tmp is
now ready-only [#4719 @kit-ty-kate]
* Sandbox: Always mount every directories under / on Linux [#4795 @kit-ty-kate]
* Sandbox: Get rid of `OPAM_USER_PATH_RO` (never used on macOS and no longer
needed on Linux) [#4795 @kit-ty-kate]
* Sandbox: Resolve symlink for `ccache` directory [#5267 @rjbou - fix #5194]
* Sandbox: Enforce the macOS sandbox script to use `/bin/bash` instead of
`/usr/bin/env bash` for a more consistent experience [#5451 @kit-ty-kate]
* Sandbox: Print error message if command doesn't exist
[#4971 @kit-ty-kate - fix #4112]
* Opamfile: Add `x-locked` extension fields for overlay internal use, it stores
if the files originate from a locked file, if so its extension [#5080 @rjbou]
* Opamfile: Set `depext-bypass` parsing with depth 1, no needed bracket if
single package [#5154 @rjbou]
* [BUG] Opamfile: Fix substring errors in `to_string_with_preserved_format
[#4941 @rjbou - fix #4936]
* [BUG] Opamfile: Variables are now expanded in build-env (as for setenv)
[#5352 @dra27]
* Solver: Add builtin support for the 'deprecated' flag. Any packages flagged
with deprecated would be avoided by the solver unless there is no other
choice (e.g. some user wants to install package a which depends on b which is
deprecated) If it is installed, show up a note after installation notifying
the user that the package is deprecated. [#4523 @kit-ty-kate]
* Solver: Make sure that `--best-effort` only installs root package versions
that where requested [#4796 #5261 @LasseBlaauwbroek]
* Solver: Ask users to report errors when no explanations are given to them
[#4981 @kit-ty-kate]
* Solver: Fix and improve the Z3 solver backend [#4880 @AltGr]
* Solver: Refactored, fixed, improved and optimised the z3 solver backend
[#4878 @AltGr]
* Solver: Add an explanation for "no longer available" packages [#4969 @AltGr]
* Solver: Orphan packages are now handled at the solver level instead of a
pre-processing phase, better ensuring consistency [#4969 @AltGr #5182 @rjbou]
* Solver: Make the 0install solver non-optional [#4909 @kit-ty-kate]
* Solver: Optimised reverse dependencies calculation [#5005 @AltGr]
* Solver: Enable CUDF preprocessing for (co)insallability calculation,
resulting in a x20 speedup [#5024 @AltGr]
* Solver: Log the time dose3's check_request takes [#5407 @kit-ty-kate]
* [BUG] Solver: On CUDF strong and weak dependencies computation, some weak
dependencies were wrongly kept, from #4627 [#5338 @rjbou @AltGr]
* [BUG] Solver: Fix "opam list -s --coinstallable-with pkg.1 pkg.2" listing
pkg.2 as coinstallable with pkg.1 [#5414 @kit-ty-kate]
* Repository state: stop scanning directory once opam file is found
[#4847 @rgrinberg]
* Fix reverting environment additions to PATH-like variables when several dirs
added at once [#4861 @dra27]
* Actually allow multiple state caches to co-exist [#4934 @dra27 - fix #4554]
* Don’t rebuild packages when updating dependencies or availability, unless the
current state needs to be changed [#5118 @kit-ty-kate - fix #4647]
* Rebuild packages when removing or adding the "plugin" flag
[#5118 @kit-ty-kate]
* Do not rebuild packages when an extra-source's url changes but not its
checksum [#5258 @kit-ty-kate]
* Correctly handle empty environment variable additions [#5350 @dra27]
* Skip empty environment variable additions [#5350 @dra27]
* State config: Add `sys-pkg-manager-cmd` field to store specific system
package manager command paths [#5433 @rjbou]
* State config: Regenerate the environment file when a local switch is moved
[#5476 @dra27 - fix #3411]
* State config: Regenerate the environment file in `opam exec` [#5476 @dra27]
* State config: Regenerate the environment file when a local switch is moved
[#5417 @dra27 - fix #3411]
* State config: Regenerate the environment file in `opam exec` [#5417 @dra27]
* State config: Store the exact environment in `OPAM_LAST_ENV`
[#5417 @dra27 - fix #3411]
* VCS: git, hg: Use the full SHA1 revision instead of just the 8 first
characters [#5342 @reynir]
* VCS: git: differentiate non initialised repo and branch not found errors
[#5326 @rjbou - fix #5324]
* VCS: Pass `--depth=1` to git-fetch in the Git repo backend [#4442 @dra27]
* VCS: git: disable colored output [#4884 @rjbou]
* VCS: Use 4.08's unnamed functor arguments to silence warning 67
[#4775 @dra27]
* VCS: Check if a source is up to date with subpath [#4876 @rjbou]
* Format upgrade: Reorganise intermediate roots that need an upgrade handling
(for 2.1, prone to generalisation) [#4926 @rjbou]
* Format upgrade: Reset the "jobs" config variable when upgrading from opam 2.0
[#5284 @kit-ty-kate #5305 @rjbou]
* Format upgrade: Fix root format upgrade when only an inner file format is
upgraded : new mechanism does the usual on-the-fly upgrade and keeps the
information of needed inner upgrade or no, to perform them when a write lock
is required [#5305 @rjbou]
* Windows: Support MSYS2: treat MSYS2 and Cygwin as equivalent
[#4813 @jonahbeckford]
* Windows: Process control: close stdin by default for Windows subprocesses and
on all platforms for the download command [#4615 @dra27]
* Windows: OpamCudf: provide machine-readable information on conflicts caused
by cycles [#4039 @gasche]
* Windows: Remove memoization from `best_effort ()` to allow for multiple
different settings during the same session (useful for library users)
[#4805 @LasseBlaauwbroek]
* Windows: Permissions: chmod+unlink before copy [#4827 @jonahbeckford @dra27]
* Windows: Support MSYS2: two-phase rsync on MSYS2 to allow MSYS2's behavior of
copying rather than symlinking [#4817 @jonahbeckford]
* Windows: Environment: translate PATH from Windows to Unix during opam env.
[#4844 @jonahbeckford]
* Windows: Correct invocation of Cygwin binaries when Cygwin bin directory is
first in PATH [#5293 @dra27]
* Windows: Always open files with `O_SHARE_DELETE`, which eliminates
unnecessary "access denied" errors in various situations on Windows.
[#5435 @dra27]
* Windows: Use OCaml code to copy/move/remove directories instead of unix
commands [#4823 @kit-ty-kate - fix #1073]
* Windows: Update Windows-on-Windows detection for ARM [#5541 @dra27]
* Windows: Overhaul parent process detection [#5541 @dra27]
* Windows: Tweak UTF-8 support for Windows Terminal [#5541 @dra27]
* Windows: Handle Windows specific environment variables [#5541 @dra27]
* [BUG] Windows: handle converted variables correctly when no_undef_expand is
true [#4811 @timbertson]
* [BUG] Windows: check Unix.has_symlink before using Unix.symlink
[#4962 @jonahbeckford]
* [BUG] Windows: Catch `EACCES` in lock function [#4948 @oandrieu - fix #4944]
* [BUG] Windows: Fix case insensitive variable handling [#5356 @dra27]
* Add license and lowerbounds to opam files [#4714 @kit-ty-kate]
* Bump version to 2.2.0~alpha~dev [#4725 @dra27]
* Upgrade root version to 2.2~alpha [#4926 @rjbou]
* Add specific comparison function on several module (that includes
`OpamStd.ABSTRACT`) [#4918 @rjbou]
* Homogeneise `is_archive` tar & zip: if file exists check magic number,
otherwise check extension [#4964 @rjbou]
* Add some debug log to OpamCudf.extract_explanations to help debug #4373
[#4981 @kit-ty-kate]
* Make SHA computation faster by using ocaml-sha [#5042 @kit-ty-kate]
* Overhaul Windows C stubs and update for Unicode [#5190 @dra27]
* Unify constructors for powershell hosts [#5203 @dra27]
* Use `grep -F` instead of `fgrep`, as the latter is deprecated
[#5309 @MisterDA]
* Ensure the cwd is restored when launching a process fails [#5441 @dra27]
* Move the .ocamlinit script out of the root directory [#5526 @kit-ty-kate]
* Do not show --yes and --no as special global options when using cmdliner >=
1.1 [#5269 @kit-ty-kate]
* Make the plugin lookup faster when mistyping a subcommand
[#5297 @kit-ty-kate]
* [BUG] Remove windows double printing on commands and their output
[#4940 @rjbou]
* [BUG] Fix display of command when parallelised [#5091 @rjbou]
* [BUG] Display correct exception backtrace on uncaught exception on Windows
[#5216 @dra27]
* [BUG] Fix behaviour on closed stdout/stderr [#4901 @AltGr - fix #4216]
* [BUG] Fix spaces in root and switch dirs [#5203 @jonahbeckford]
* [BUG] Fix linting on opam-crowbar.opam [#5507 @kit-ty-kate]
* [BUG] Fix lazy compilation of regular expression in
OpamFormula.atom_of_string [#5211 @dra27]
* Bump the minimum requirement to build any of the opam libraries to OCaml >=
4.08 [#5466 @kit-ty-kate]
* src-ext: Add `jsonm` (and `uutf`) dependency [#5098 @rjbou - fix #5085]
[#5467 @kit-ty-kate]
* src-ext: Add `sha` dependency [#5042 @kit-ty-kate] [#5424 @kit-ty-kate]
* src-ext: Add `swhid_core` dependency [#4859 @rjbou] [#5497 @kit-ty-kate]
* src-ext: Bump vendored base64 to 3.5.1 to fix compilation on OCaml >= 5.0 in
vendored mode [#5464 @deech]
* src-ext: Bump src_exts and fix build compat with Dune 2.9.0 [#4752 @dra27]
* src-ext: Upgrade to dose3 >= 6.1 and vendor dose3 7.0.0 [#4760 @kit-ty-kate]
* src-ext: Change minimum required Dune to 2.0 [#4770 @dra27]
* src-ext: Change minimum required OCaml to 4.08.0 for everything except
opam-core, opam-format and opam-installer [#4770 #4775 @dra27]
* src-ext: Update bootstrap ocaml to 4.12.1 to integrate mingw fix
[#4927 @rjbou]
* src-ext: Update cold compiler to 4.13 [#5017 @dra27]
* src-ext: Bump opam-file-format to 2.1.4 [#5117 @kit-ty-kate - fix #5116]
* src-ext: Bump CUDF to 0.10 [#5195 @kit-ty-kate]
* src-ext: Upgrade to cmdliner >= 1.1 [#5269 @kit-ty-kate]
* src-ext: Update the bootstrap compiler to 4.14.0 [#5250 @kit-ty-kate]
* src-ext: Upgrade the vendored dune to 3.5.0 to fix make cold in an OCaml 5.0
env [#5355 @kit-ty-kate]
* src-ext: Upgrade vendored deps to support lib-ext in OCaml 5.0
[#5355 @kit-ty-kate @dra27]
* src-ext: Upgrade spdx_licenses to 1.2.0 [#5412 @kit-ty-kate]
* src-ext: Upgrade src_ext vendored bootstrap dependencies [#5437 @MisterDA]
* src-ext: Update bootstrap to use FlexDLL 0.42 from ocaml/flexdll
[#5434 @MisterDA]
* src-ext: Remove unused vendored dependency: result [#5465 @kit-ty-kate]
* src-ext: Replace CPPO dependency with simple conditional compilation helper
[#5498 @Leonidas-from-XIV]
* build: Fix the cold target in presence of an older OCaml compiler version on
macOS [#4802 @kit-ty-kate - fix #4801]
* build: Harden the check for a C++ compiler [#4776 @dra27 - fix #3843]
* build: Add `--without-dune` to configure to force compiling vendored Dune
[#4776 @dra27]
* build: Use `--without-dune` in `make cold` to avoid picking up external Dune
[#4776 @dra27 - fix #3987]
* build: Add `--with-vendored-deps` to replace `make lib-ext` instruction
[#4776 @dra27 - fix #4772] [#5511 @kit-ty-kate #5539 @rjbou]
* build: Add a 'test' target [#5129 @kit-ty-kate @mehdid - partial fixes #5058]
* build: Fix vendored build on mingw-w64 with g++ 11.2 [#4835 @dra27]
* build: Switch to vendored build if spdx_licenses is missing [#4842 @dra27]
* build: Check versions of findlib packages in configure [#4842 @dra27]
* build: Fix dose3 download url since gforge is gone [#4870 @avsm]
* build: Update bootstrap to use `-j` for Unix (Windows already does)
[#4988 @dra27]
* build: Bring the autogen script from ocaml/ocaml to be compatible with
non-ubuntu-patched autoconf [#5090 @kit-ty-kate #5093 @dra27]
* build: configure: Use gmake instead of make on Unix systems (fixes BSDs)
[#5090 @kit-ty-kate]
* build: Patch AltGr/ocaml-mccs#36 in the src_ext build to fix Cygwin32
[#5094 @dra27]
* build: Silence warning 70 [#5104 @dra27]
* build: shell/bootstrap-ocaml.sh: do not fail if curl/wget is missing
[#5223 #5233 @kit-ty-kate]
* build: Cleared explanation of dependency vendoring in configure
[#5277 @dra27 - fix #5271]
* build: Switch autoconf required version to 2.71 [#5161 @dra27]
* build: Remove src/client/no-git-version when calling make clean
[#5290 @kit-ty-kate]
* build: Remove unused variable in opamACL.c [#5403 @purplearmadillo77]
* build: shell/bootstrap-ocaml.sh: do not fail if curl/wget is missing
[#5223 @kit-ty-kate]
* build: `opam-state` depends on `opam-solver` [#5208 @rjbou]
* build: Specify the `opam` package for all rules that need `opamMain.exe.exe`
[#5496 @Leonidas-from-XIV]
* build: Remove conditional compilation [#5508 @Leonidas-from-XIV]
* build: Update msvs-detect [#5514 @MisterDA]
* build: Do not silently disable mccs if a C++ compiler is not present
[#5527 @kit-ty-kate - fix #4452]
* build: Ensure all make targets are run serially [#5532 @kit-ty-kate]
* build: Fix openssl missing message in `shell/bootstrap-ocaml.sh`
[#5557 @MisterDA]
* build: Fix detection of C++ compiler when it is prefixed [#5556 @MisterDA]
* Improve documentation [#4421 #4782 #4855 #4863 #4896 #5001 #5040 #5095 #5097
#5159 #5165 #5167 #5168 #5215 #5226 #5289 #5311 #5340 #5343 #5512 #5175
@AltGr @cnmade @dra27 @emillon @gasche @Armael @hannesm @javiljoen
@johnwhitington @kit-ty-kate @metanivek @mndrix @omnisci3nce
@purplearmadillo77 @rjbou]
* Improve and extended tests [#4159 #4523 #4841 #4859 #4861 #4866 #4915 #4918
#4963 #4967 #4974 #4975 #4979 #5004 #5006 #5007 #5015 #5024 #5027 #5031 #5081
#5097 #5101 #5106 #5131 #5143 #5160 #5171 #5176 #5181 #5203 #5208 #5214 #5228
#5229 #5236 #5253 #5257 #5258 #5261 #5262 #5268 #5270 #5301 #5303 #5304 #5315
#5325 #5329 #5336 #5356 #5385 #5386 #5402 #5476 #5525 #5538 #5574 #5577 #5578
@AltGr @cannorin @dra27 @kit-ty-kate @rjbou]
* Improve test engine: Cram tests [#4913 #4966 #4979 #5009 #5004 #5019 #5252
#5031 #4910 #5024 #5143 #5179 #4892 #5285 #5257 #5308 #5572 @AltGr
@kit-ty-kate @rjbou]
* Improve Github actions: [#4729 #4773 #4788 #4865 #4865 #4922 #4966 #5010
#5067 #5067 #5090 #5153 #5218 #5281 #5365 #5410 @AltGr @dra27 @kit-ty-kate
@rjbou]
2.1.5:
* [BUG] Variables are now expanded in build-env (as for setenv) [#5352 @dra27]
* Correctly handle empty environment variable additions [#5350 @dra27]
* Skip empty environment variable additions [#5350 @dra27]
* [BUG] Fix passing `archive-mirrors` field from init config file to config
[#5315 @hannesm]
* git, hg: Use the full SHA1 revision instead of just the 8 first characters
[#5342 @reynir]
* [BUG] Fix opam installing packages without checking their checksum when the
local cache is corrupted in some case [#5538 @kit-ty-kate]
2.1.4:
* Add support for OCaml 5.0. Dose3 >= 6.1 and base64 >= 3.1.0 are now required [#5357 @kit-ty-kate @dra27 - fix #5354]
* [BUG] Fix all empty conflict explanation messages [#5378 @kit-ty-kate - partial fix #4373]
2.1.3:
* [BUG] Fix `opam init` and `opam init --reinit` when the `jobs` variable has
been set in the opamrc or the current config. [#5056 @rjbou]
* When inferring a 2.1+ switch invariant from 2.0 base packages, don't filter
out pinned packages as that causes very wide invariants for pinned compiler
packages [#5176 @dra27 - fix #4501]
* [BUG] Fix an internal error on repository upgrade from OPAM 1.2
[#4965 @AltGr]
* Some optimisations to `opam list --installable` queries combined with other