packaging: switch centos 7 packaging to python 3
Differential Revision: https://phab.mercurial-scm.org/D9293
packaging: remove centos5 and centos6 support
Differential Revision: https://phab.mercurial-scm.org/D9292
test-filecache: use sys.executable to call python
As was mentioned in
c102b704edb5, test scripts calling 'python' or 'python3'
might use the wrong python.
For test-filecache.py, this causes a failed test on CentOS 7.
Differential Revision: https://phab.mercurial-scm.org/D9295
make: add a pyoxidizer target
Differential Revision: https://phab.mercurial-scm.org/D9291
pyoxidizer: switch to modern config using run_command instead of run_mode
Differential Revision: https://phab.mercurial-scm.org/D9290
pyoxidizer: default to one-file binary on non-Windows platforms
Windows has some extra constraints that require a multi-file install,
but we expect folks to use an MSI or similar installer there so it's
less of a big deal.
Differential Revision: https://phab.mercurial-scm.org/D9289
global: use python3 in shebangs
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
tests: use python from environment in test-parseindex2.py
Without this, the test starts failing with D9273 (the change to
`pyexename` to be specific).
Differential Revision: https://phab.mercurial-scm.org/D9286
errors: set detailed exit code to 20 for locking errors
This is per https://www.mercurial-scm.org/wiki/ErrorCategoriesPlan.
Differential Revision: https://phab.mercurial-scm.org/D9242
errors: introduce InputError and use it from commands and cmdutil
This patch introduces a `InputError` class and replaces many uses of
`error.Abort` by it in `commands` and `cmdutil`. This is a part of
https://www.mercurial-scm.org/wiki/ErrorCategoriesPlan. There will
later be a different class for state errors (to raise e.g. when
there's an unfinished operation). It's not always clear when one
should report an input error and when it should be a state error. We
can always adjust later if I got something wrong in this patch (but
feel free to point out any you notice now).
Differential Revision: https://phab.mercurial-scm.org/D9167