Add swift-subprocess to the checkout set so that we can start
investigating building that for integration into swift-build.
Co-authored-by: Tina L <49205802+itingliu@users.noreply.github.com>
Passing additional --config flags will load each config file in turn and
uses the last value for any defined config. This allows having local
configs that only define personal schemes and still having access to the
default schemes. This also makes it easier to work with machine
generated configs without having to cause churn in the main config file.
Update swift-argument-parser to 1.5.1. This is motivated by a change to
the build system in 1.5.1 that is required to build
swift-argument-parser as part of swift-driver to enable static linking
on Windows. Pulling in this change will enable us to make further
progress towards enabling the early swift driver on Windows.
Previously, when invoking the script with match-timestamp, if the
refspec was absent, the find_rev_by_timestamp function would throw an
exception and the script would hang forever.
Here, it is first checked via `git rev-parse --verify $REFSPEC` that the
refspec actually exists in the target repo. If it does not, the refspec
is just omitted from the command, giving the latest commit before the
currently checked out one.
As Python 3.5 added support for type hints and we require Python 3.6 or later, let's try to add a type hint to a single function so that development experience is slightly improved and we can test this feature in our code before applying it more widely. Editors with support for Python LSP servers can pick it and stop flagging this function or its
invocations as type errors.
Disabling commit signing on the local mock repo so that signing tools
don't cause the tests to fail when the signing identity doesn't match
the identity of the committer.
Also marking the config changes as local to ensure that they don't
affect the user's global config accidentally. Technically this isn't
required since local is the default, but this ensures that it is clear
and that we aren't making assumptions about the user's global git
config.
Add `--use-submodules` to `update_checkout`
Not all repositories in `update-checkout-config.json` are tagged. For contributors that would like to achieve reproducible builds, it's useful to track exact state of checkouts with submodules. This also enables bisection scripts running across multiple repositories locally.
New `--use-submodules` flag is added to `update-checkout`, which uses `git submodule add` instead of `git clone` when checking out new repositories. Contributors can then track changes to submodules in their own top-level repository if they wish to do so.
The flag is optional and is not enabled by default.
Not all repositories in `update-checkout-config.json` are tagged. For contributors that would like to achieve reproducible builds, it's useful to be able to track exact state of checkouts with submodules. New `--use-submodules` flag is added to `update-checkout`, which uses `git submodule add` instead of `git clone` when checking out new repositories.
* Update update-checkout-config.json
Update swift-system requirement to 1.4.0. This is motivated by swift-build which requires swift-system 1.4.0. More importantly, the API surface between 1.3.0 and 1.4.0 changed including the API usage that is required by swift-build.
* Update update-checkout-config.json
Update to 1.4.1