diff --git a/README.md b/README.md index 436be77a6..5f8540948 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ run `./update_depot_tools_toggle.py --disable`. To update package manually, run `update_depot_tools.bat` on Windows, or `./update_depot_tools` on Linux or Mac. -On Windows only, running `gclient` will install `git` and `python`. +On Windows only, running `gclient` will install `python`. ## Contributing diff --git a/bootstrap/README.md b/bootstrap/README.md index cf7ab8ba4..0025d2eab 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -4,19 +4,15 @@ This directory has the 'magic' for the `depot_tools` windows binary update mechanisms. A previous Python may actually be in use when it is run, preventing us -from replacing it outright without breaking running code. To -ommodate this, and Python cleanup, we handle Python in two stages: +from replacing it outright without breaking running code. To accommodate this, +and Python cleanup, we handle Python in two stages: -1. Use CIPD to install both Git and Python at once. +1. Use CIPD to install Python. 2. Use "bootstrap.py" as a post-processor to install generated files and fix-ups. ## Software bootstrapped * Python 3 (https://www.python.org/) - * Git for Windows (https://git-for-windows.github.io/) - * This will soon be unbundled from depot_tools. To prepare for this change, - please install Git directly. See the instructions in the - [Windows build docs](https://chromium.googlesource.com/chromium/src/+/main/docs/windows_build_instructions.md#Install-git). ## Mechanism @@ -29,34 +25,36 @@ work. package is present, and if so, if it's the expected version. If either of those cases is not true, it will download and unpack the respective binary. -Installation of Git and Python is done by the [win_tools.bat](./win_tools.bat) +Installation of Python is done by the [win_tools.bat](./win_tools.bat) script, which uses CIPD (via the [cipd](/cipd.bat) bootstrap) to acquire and install each package into the root of the `depot_tools` repository. Afterwards, the [bootstrap.py](./bootstrap.py) Python script is invoked to install stubs, -wrappers, and support scripts into `depot_tools` for end-users. +wrappers, and support scripts into `depot_tools` for end-users. This includes +checking whether the current global Git config matches recommended settings. ### Manifest -The Git and Python versions are specified in [manifest.txt](./manifest.txt). +The Python version is specified in [manifest.txt](./manifest.txt). There is an associated file, [manifest_bleeding_edge.txt](./manifest_bleeding_edge.txt), that can be used -to canary new versions on select bots. Any bots with a `.bleeding_edge` file +to canary a new version on select bots. Any bots with a `.bleeding_edge` file in their `depot_tools` root will automatically use the bleeding edge manifest. -This allows opt-in systems to test against new versions of Python or Git. Once -those versions have been verified correct, `manifest.txt` can be updated to the +This allows opt-in systems to test against new versions of Python. Once +the version has been verified correct, `manifest.txt` can be updated to the same specification, which will cause the remainder of systems to update. ### Bundles -Git and Python bundle construction is documented in -[infra packaging](https://chromium.googlesource.com/infra/infra/+/HEAD/doc/packaging/). +Python bundles are maintained by 3pp builders. See the +[3pp docs](https://chromium.googlesource.com/infra/infra/+/HEAD/3pp/README.md) +for more info. Note that in order for the update to take effect, `gclient` currently needs to run twice. The first time it will update the `depot_tools` repo, and the second -time it will see the new git version and update to it. This is a bug that should -be fixed, in case you're reading this and this paragraph infuriates you more -than the rest of this README. +time it will see the new Python version and update to it. This is a bug that +should be fixed, in case you're reading this and this paragraph infuriates you +more than the rest of this README. ## Testing