OLD | NEW |
(Empty) | |
| 1 # Windows binary tool bootstrap |
| 2 |
| 3 This directory has the 'magic' for the `depot_tools` windows binary update |
| 4 mechanisms. |
| 5 |
| 6 ## Software bootstrapped |
| 7 * Python (https://www.python.org/) |
| 8 * Git for Windows (https://git-for-windows.github.io/) |
| 9 * Subversion (https://subversion.apache.org/) |
| 10 |
| 11 ## Mechanism |
| 12 |
| 13 Any time a user runs `gclient` on windows, it will invoke the `depot_tools` |
| 14 autoupdate script [depot_tools.bat](../../update_depot_tools.bat). This, in |
| 15 turn, will run [win_tools.bat](./win_tools.bat), which does the bulk of the |
| 16 work. |
| 17 |
| 18 `win_tools.bat` will successively look to see if the local version of the binary |
| 19 package is present, and if so, if it's the expected version. If either of those |
| 20 cases is not true, it will download and unpack the respective binary. |
| 21 |
| 22 Downloading is done with [get_file.js](./get_file.js), which is a windows script |
| 23 host javascript utility to vaguely impersonate `wget`. |
| 24 |
| 25 Through a comedy of history, each binary is stored and retrieved differently. |
| 26 |
| 27 ### Git |
| 28 |
| 29 Git installs are mirrored versions of the offical Git-for-Windows Portable |
| 30 releases. |
| 31 * Original: `https://github.com/git-for-windows/git/releases` |
| 32 * Mirror: `gs://chrome-infra/PortableGit*.7z.exe` |
| 33 |
| 34 #### Updating git version |
| 35 1. Download the new `PortableGit-X.Y.Z-{32,64}.7z.exe` from the |
| 36 git-for-windows release page. |
| 37 1. From either console.developers.google.com or the CLI, do: |
| 38 1. Upload those to the gs://chrome-infra Google Storage bucket. |
| 39 1. Set the `allUsers Reader` permission (click the "Public link" checkbox |
| 40 next to the binaries). |
| 41 1. Edit the `set GIT_VERSION=X.Y.Z` line in `win_tools.bat` to be the new |
| 42 version. |
| 43 1. At the time of writing, the first version is the default version, and |
| 44 the second is the 'bleeding edge' version. You can use the bleeding edge |
| 45 version to get early feedback/stage a rollout/etc. |
| 46 1. Commit the CL. |
| 47 |
| 48 Note that in order for the update to take effect, `gclient` currently needs to |
| 49 run twice. The first time it will update the `depot_tools` repo, and the second |
| 50 time it will see the new git version and update to it. This is a bug that should |
| 51 be fixed, in case you're reading this and this paragraph infuriates you more |
| 52 than the rest of this README. |
| 53 |
| 54 ### Python |
| 55 |
| 56 Python installs are sourced from https://src.chromium.org/viewvc/chrome/trunk/to
ols/ . |
| 57 |
| 58 The process to create them is sort-of-documented in the README of the python |
| 59 zip file. |
| 60 |
| 61 ### Subversion |
| 62 |
| 63 Subversion installs are sourced from https://src.chromium.org/viewvc/chrome/trun
k/tools/ . |
| 64 |
| 65 There will likely never be an update to SVN in `depot_tools` from the current |
| 66 version. |
OLD | NEW |