Skip to content
Snippets Groups Projects
  • Gregory Szorc's avatar
    c102b704edb5
    global: use python3 in shebangs · c102b704edb5
    Gregory Szorc authored
    Python 3 is the future. We want Python scripts to be using Python 3
    by default.
    
    This change updates all `#!/usr/bin/env python` shebangs to use
    `python3`.
    
    Does this mean all scripts use or require Python 3: no.
    
    In the test environment, the `PATH` environment variable in tests is
    updated to guarantee that the Python executable used to run
    run-tests.py is used. Since test scripts all now use
    `#!/usr/bin/env python3`, we had to update this code to install
    a `python3` symlink instead of `python`.
    
    It is possible there are some random scripts now executed with the
    incorrect Python interpreter in some contexts. However, I would argue
    that this was a pre-existing bug: we should almost always be executing
    new Python processes using the `sys.executable` from the originating
    Python script, as `python` or `python3` won't guarantee we'll use the
    same interpreter.
    
    Differential Revision: https://phab.mercurial-scm.org/D9273
    c102b704edb5
    History
    global: use python3 in shebangs
    Gregory Szorc authored
    Python 3 is the future. We want Python scripts to be using Python 3
    by default.
    
    This change updates all `#!/usr/bin/env python` shebangs to use
    `python3`.
    
    Does this mean all scripts use or require Python 3: no.
    
    In the test environment, the `PATH` environment variable in tests is
    updated to guarantee that the Python executable used to run
    run-tests.py is used. Since test scripts all now use
    `#!/usr/bin/env python3`, we had to update this code to install
    a `python3` symlink instead of `python`.
    
    It is possible there are some random scripts now executed with the
    incorrect Python interpreter in some contexts. However, I would argue
    that this was a pre-existing bug: we should almost always be executing
    new Python processes using the `sys.executable` from the originating
    Python script, as `python` or `python3` won't guarantee we'll use the
    same interpreter.
    
    Differential Revision: https://phab.mercurial-scm.org/D9273
hg 1.13 KiB