• Dan Jacques's avatar
    [win_tools] Use bundled Python CIPD packages. · bf144679
    Dan Jacques authored
    Enable bundled Python CIPD packages in bleeding-edge mode. This
    replaces the ZIP unpacking approach used before, and introduces
    validation and management through the CIPD tool. The bleeding edge
    version will only install if a sentinel file is present in the
    "depot_tools" root; otherwise, default behavior will continue.
    
    This method adds a upgrade and downgrade path to/from ZIP and
    CIPD installations. This is done by rewriting the "win_tools.bat"
    process:
    
    1) Ensure that a bootstrap Python is present.
    2) Use it to run "win_tools.py", which has the functionality of
        "git_bootstrap.py" plus Python installation.
    3) Run "win_tools.py" with appropriate flags.
    
    Some tricks were employed to handle cases where there is an
    already-running Python instance that uses the current Python
    installation and executable. This happens on bots because the
    system uses the same "depot_tools" checkout at multiple launch
    layers. To this end, we use the "python.bat" as the "current Python"
    authority and refrain from cleaning up old Python directories if their
    "python.exe" binaries are currently in use.
    
    We change the Git bleeding edge file to share the same
    sentinel file as Python, ".bleeding_edge".
    
    The new Python should have the same facilities as the original Python
    bundle.
    
    BUG=chromium:740171
    TEST=local
    
    Change-Id: I1b3b7d31d47d1a37a9dba9114d31681bec558736
    Reviewed-on: https://chromium-review.googlesource.com/563036
    Commit-Queue: Daniel Jacques <dnj@chromium.org>
    Reviewed-by: 's avatarRobbie Iannucci <iannucci@chromium.org>
    bf144679
python27.new.bat 2.33 KB