From bf0894831babfb24477fd2f6987589a46bf69309 Mon Sep 17 00:00:00 2001 From: Kate Date: Mon, 13 Nov 2023 16:07:03 +0000 Subject: [PATCH] Release 2.2.0~alpha3 --- CHANGES | 101 +++++++++++++++++++++++++++++++++++++++++++ configure | 18 ++++---- configure.ac | 2 +- master_changes.md | 74 ------------------------------- opam-client.opam | 2 +- opam-core.opam | 2 +- opam-devel.opam | 2 +- opam-format.opam | 2 +- opam-installer.opam | 2 +- opam-repository.opam | 2 +- opam-solver.opam | 2 +- opam-state.opam | 2 +- opam.opam | 2 +- 13 files changed, 120 insertions(+), 93 deletions(-) diff --git a/CHANGES b/CHANGES index ae29219ab3d..f7fda9382af 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,107 @@ 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~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`, diff --git a/configure b/configure index d8882f6b3c5..1825d12e4e2 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for opam 2.2.0~alpha3~dev. +# Generated by GNU Autoconf 2.71 for opam 2.2.0~alpha3. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -609,8 +609,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='opam' PACKAGE_TARNAME='opam' -PACKAGE_VERSION='2.2.0~alpha3~dev' -PACKAGE_STRING='opam 2.2.0~alpha3~dev' +PACKAGE_VERSION='2.2.0~alpha3' +PACKAGE_STRING='opam 2.2.0~alpha3' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1334,7 +1334,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures opam 2.2.0~alpha3~dev to adapt to many kinds of systems. +\`configure' configures opam 2.2.0~alpha3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1396,7 +1396,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of opam 2.2.0~alpha3~dev:";; + short | recursive ) echo "Configuration of opam 2.2.0~alpha3:";; esac cat <<\_ACEOF @@ -1509,7 +1509,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -opam configure 2.2.0~alpha3~dev +opam configure 2.2.0~alpha3 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1706,7 +1706,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by opam $as_me 2.2.0~alpha3~dev, which was +It was created by opam $as_me 2.2.0~alpha3, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -7877,7 +7877,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by opam $as_me 2.2.0~alpha3~dev, which was +This file was extended by opam $as_me 2.2.0~alpha3, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7932,7 +7932,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -opam config.status 2.2.0~alpha3~dev +opam config.status 2.2.0~alpha3 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index cfbb850acb4..fe0f441c428 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl The line below must be formatted AC_INIT([opam],[VERSION]) with no extra spaces -AC_INIT([opam],[2.2.0~alpha3~dev]) +AC_INIT([opam],[2.2.0~alpha3]) AC_COPYRIGHT(Copyright 2012-2019 OcamlPro SAS) AC_CONFIG_MACRO_DIR([m4]) diff --git a/master_changes.md b/master_changes.md index ff4569790c9..20e3f877d44 100644 --- a/master_changes.md +++ b/master_changes.md @@ -11,10 +11,8 @@ moved, etc.), please update the _API updates_ part (it helps opam library users) ## Version - * Bump to 2.2.0~alpha3~dev [#5615 @rjbou] ## Global CLI - * [BUG] Fix `OPAMVERBOSE` setting, 0 and 1 levels was inverted: eg, "no" gives level 1, and "yes" level 0 [#5686 @smorimoto] ## Plugins @@ -25,10 +23,6 @@ users) ## Actions ## Install - * [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 [#570 @rjbou - fix #5698] - * [BUG] Handle undefined variables defaults to false in dependencies formula resolution for assume built [#5701 rjbou] - * Reinstall if `x-env-path-rewrite` is updated [#5636 @rjbou] ## Remove @@ -47,55 +41,38 @@ users) ## Update / Upgrade ## Tree - * Allow packages with a specific version, directories or local opam files, as input [#5613 @kit-ty-kate] - * Add handling of `--recurse` and `--subpath` for directory arguments [#5613 @kit-ty-kate] ## Exec ## Source ## Lint - * [BUG] Fix extra-files handling when linting packages from repositories, see #5068 [#5639 @rjbou] - * Allow to mark a set of warnings as errors using a new syntax -W @1..9 [#5652 @kit-ty-kate @rjbou - fixes #5651] ## Repository - * [BUG] Fix `OPAMCURL` and `OPAMFETCH` handling [#5607 @rjbou - fix #5597] ## Lock ## Clean ## Env - * When computing environment variables updates, use rewriting rules (defined in opam file, or default per variable) to split, join, quote, etc. [#5636 @rjbou - fix #5602 #4690 #2927] ## Opamfile - * Update populating extra-files fields log [#5640 @rjbou] - * Fix `x-locked` type error message [#5636 @rjbou] - * Add `x-env-path-rewrite` extensions field to permit specification of rewriting rules for variables defined in `setenv` and `build-env`: no rewrite; separator and path format formulae [#5636 @rjbou - fix #5602 #4690 #2927] ## External dependencies ## Format upgrade ## Sandbox - * Make /tmp writable again to restore POSIX compliancy [#5634 #5662 @kit-ty-kate - fixes #5462] ## VCS ## Build - * Remove `bigarray` dependency [#5612 @kit-ty-kate] - * Remove use of deprecated `Printf.kprintf" [#5612 @kit-ty-kate] - * [BUG] Fix "make cold" on Windows when gcc is available [#5635 @kit-ty-kate - fixes #5600] - * Fix incorrect error message when alternate C compiler is missing [#5667 @dra27 - partial fix #5661] ## Infrastructure - * Test OCaml 5.0 and 5.1 in CI [#5672 @kit-ty-kate] ## Release scripts - * Add ppc64le and s390x support [#5420 @kit-ty-kate] ## Admin - * Add `add-extrafiles` command to add, check, and update `extra-files:` field according files present in `files/` directory [#5647 @rjbou] ## Opam installer @@ -110,49 +87,24 @@ users) ## Shell ## Internal - * `environment` file now stores environmnet variable rewriting rules [#5636 @rjbou] ## Internal: Windows - * Fix sporadic crash and segfault in shell detection (seen in native containers) [#5714 @dra27] ## Test ## Reftests ### Tests - * Lint: add test for W53, to test extra file with good hash [#5639 @rjbou] - * Add several checksum & cache validation checks for archive, extra-source section, and extra-file field [#5560 @rjbou] - * Move local-cache into archive-field-checks test [#5560 @rjbou] - * Admin: add `admin add-extrafiles` test cases [#5647 @rjbou] - * Add download test, to check `OPAMCURL/OPAMFETCH` handling [#5607 @rjbou] - * Add `core/opamSystem.ml` specific tests, to test command resolution [#5600 @rjbou] - * Add test for `OpamCoreConfig`, to check `OPAMVERBOSE` values [#5686 @rjbou] - * dot-install: generalise inner script & use less generic filenames [#5691 @rjbou] - * dot-install: add a test for removal of non specified in .install empty directories [#5701 @rjbou] - * Add test in assume-built for depends with switch variable filters [#5700 @rjbou] - * Add undefined variable handling in assume built test [#5701 @rjbou] - * Add `env.unix` & `env.win32` to test environment variables rewriting rules [#5636 @rjbou] ### Engine - * With real path resolved for all opam temp dir, remove `/private` from mac temp dir regexp [#5654 @rjbou] - * Reimplement `sed-cmd` command regexp, to handle prefixed commands with path not only in subprocess, but anywere in output [#5657 #5607 @rjbou] - * Add environment variables path addition [#5606 @rjbou] - * Remove duplicated environment variables in environmenet [#5606 @rjbou] - * Add `PATH` to replaceable variables [#5606 @rjbou] ## Github Actions - * Add coreutils install for cheksum validation tests [#5560 @rjbou] - * Add `wget` on Cygwin install [#5607 @rjbou] ## Doc - * Fix typos in readme [#5706 @MisterDA] - * Fix formatting in the Manual [#5708 @kit-ty-kate] - * Add `x-env-path-rewriting` documentation [#5636 @rjbou] ## Security fixes # API updates ## opam-client - * `OpamTreeCommand.run`: now takes an `atom` instead of `name` [#5613 @kit-ty-kate] ## opam-repository @@ -161,31 +113,5 @@ users) ## opam-solver ## opam-format - * `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] ## opam-core - * `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 - * `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] diff --git a/opam-client.opam b/opam-client.opam index 9ee341da655..a622032d816 100644 --- a/opam-client.opam +++ b/opam-client.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Client library for opam 2.2" description: """ Actions on the opam root, switches, installations, and front-end. diff --git a/opam-core.opam b/opam-core.opam index 8907aba1438..f73b8183b37 100644 --- a/opam-core.opam +++ b/opam-core.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Core library for opam 2.2" description: """ Small standard library extensions, and generic system interaction modules used by opam. diff --git a/opam-devel.opam b/opam-devel.opam index e41283f7de0..c5f7639e70a 100644 --- a/opam-devel.opam +++ b/opam-devel.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Bootstrapped development binary for opam 2.2" description: """ This package compiles (bootstraps) opam. For consistency and safety of the installation, the binaries are not installed into the PATH, but into lib/opam-devel, from where the user can manually install them system-wide. diff --git a/opam-format.opam b/opam-format.opam index deb83fd79c2..03c708839ed 100644 --- a/opam-format.opam +++ b/opam-format.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Format library for opam 2.2" description: """ Definition of opam datastructures and its file interface. diff --git a/opam-installer.opam b/opam-installer.opam index ed7978a636d..efea8594768 100644 --- a/opam-installer.opam +++ b/opam-installer.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Installation of files to a prefix, following opam conventions" description: """ opam-installer is a small tool that can read *.install files, as defined by opam [1], and execute them to install or remove package files without going through opam. diff --git a/opam-repository.opam b/opam-repository.opam index aff9a96f5a9..b42b7ccc5c9 100644 --- a/opam-repository.opam +++ b/opam-repository.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Repository library for opam 2.2" description: """ This library includes repository and remote sources handling, including curl/wget, rsync, git, mercurial, darcs backends. diff --git a/opam-solver.opam b/opam-solver.opam index a344a2fed2c..11e9eacb068 100644 --- a/opam-solver.opam +++ b/opam-solver.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Solver library for opam 2.2" description: """ Solver and Cudf interaction. This library is based on the Cudf and Dose libraries, and handles calls to the external solver from opam. diff --git a/opam-state.opam b/opam-state.opam index a599b49be44..6d7cd5d355f 100644 --- a/opam-state.opam +++ b/opam-state.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "State library for opam 2.2" description: """ Handling of the ~/.opam hierarchy, repository and switch states. diff --git a/opam.opam b/opam.opam index 36049ba955b..ced6a883dc4 100644 --- a/opam.opam +++ b/opam.opam @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.2.0~alpha3~dev" +version: "2.2.0~alpha3" synopsis: "Meta-package for Dune" maintainer: "opam-devel@lists.ocaml.org" authors: [