# Windows binary tool bootstrap This directory has the 'magic' for the `depot_tools` windows binary update mechanisms. ## Software bootstrapped * Python (https://www.python.org/) * Git for Windows (https://git-for-windows.github.io/) ## Mechanism Any time a user runs `gclient` on windows, it will invoke the `depot_tools` autoupdate script [depot_tools.bat](../../update_depot_tools.bat). This, in turn, will run [win_tools.bat](./win_tools.bat), which does the bulk of the work. `win_tools.bat` will successively look to see if the local version of the binary 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. Downloading is done with [get_file.js](./get_file.js), which is a windows script host javascript utility to vaguely impersonate `wget`. Through a comedy of history, each binary is stored and retrieved differently. ### Git Git installs are mirrored versions of the official Git-for-Windows Portable releases. * Original: `https://github.com/git-for-windows/git/releases` * Mirror: `gs://chrome-infra/PortableGit*.7z.exe` #### Updating git version 1. Download the new `PortableGit-X.Y.Z-{32,64}.7z.exe` from the git-for-windows release page. 1. From either console.developers.google.com or the CLI, do: 1. Upload those to the gs://chrome-infra Google Storage bucket. 1. Set the `allUsers Reader` permission (click the "Public link" checkbox next to the binaries). 1. Edit the `git_version.txt` or `git_version_bleeding_edge.txt` file to be the new version. 1. You can use the bleeding edge version to get early feedback/stage a rollout/etc. Users can select this version by 'touch'ing the `.git_bleeding_edge` file in the root depot_tools directory. 1. Commit the CL. 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. ### Python Python installs are sourced from gs://chrome-infra/python276_bin.zip . The process to create them is sort-of-documented in the README of the python zip file.