Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:47:08 -0700] rev 48997
hgweb: remove Python 2 support code
Differential Revision: https://phab.mercurial-scm.org/D12309
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2022 08:06:37 -0800] rev 48996
hgweb: remove Python 3 conditional
We probably have a better tobytes() implementation somewhere in pycompat.
But I don't want to bloat scope of this commit.
Differential Revision: https://phab.mercurial-scm.org/D12308
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:45:24 -0700] rev 48995
hgweb: simplify uenv assignment
We don't need the Python 3 conditional. We can call items() directly
since we're on Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D12307
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:43:58 -0700] rev 48994
chgserver: remove Python 2 support code
The logic here is more complicated than most Python 2/3 support code.
But the rewritten logic should be identical.
Differential Revision: https://phab.mercurial-scm.org/D12306
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:40:58 -0700] rev 48993
chgserver: remove Python 2 branch
Differential Revision: https://phab.mercurial-scm.org/D12305
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:39:48 -0700] rev 48992
worker: remove Python 2 support code
Differential Revision: https://phab.mercurial-scm.org/D12304
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:39:09 -0700] rev 48991
wireprotoframing: remove Python 2 support code
Differential Revision: https://phab.mercurial-scm.org/D12303
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:38:27 -0700] rev 48990
windows: remove write throttling support
This mode would only be active on Python 2, which is no longer supported.
Differential Revision: https://phab.mercurial-scm.org/D12302
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:36:44 -0700] rev 48989
windows: remove conditional for Python 3
Differential Revision: https://phab.mercurial-scm.org/D12301
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:35:42 -0700] rev 48988
util: remove superfluous ispy3 test
Differential Revision: https://phab.mercurial-scm.org/D12300
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:35:20 -0700] rev 48987
urllibcompat: remove Python 2 support code
We had to move the `import` statements to appease the import checker.
This whole module could probably be deleted as its point in life is to
pave over Python 2/3 differences. But that's for a different commit.
Differential Revision: https://phab.mercurial-scm.org/D12299
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:32:45 -0700] rev 48986
keepalive: remove Python 2 support code
Differential Revision: https://phab.mercurial-scm.org/D12298
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:31:53 -0700] rev 48985
extensions: remove superfluous pycompat.ispy3 check
This is always True now.
Differential Revision: https://phab.mercurial-scm.org/D12297
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:31:00 -0700] rev 48984
archival: remove check for Python 2
Differential Revision: https://phab.mercurial-scm.org/D12296
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2022 07:58:29 -0800] rev 48983
encoding: remove Python 2 support code
Differential Revision: https://phab.mercurial-scm.org/D12295
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:28:19 -0700] rev 48982
dispatch: remove Python 2 function variants
Differential Revision: https://phab.mercurial-scm.org/D12294
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:27:34 -0700] rev 48981
config: remove conditional asserts
We always run on Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D12293
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:27:02 -0700] rev 48980
error: unconditionally define __str__
We always run on Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D12292
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:26:25 -0700] rev 48979
formatter: remove conditional assert
We always run on Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D12291
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:25:53 -0700] rev 48978
httppeer: inline simplified _reqdata()
The function can be reduced to an attribute lookup on Python 3. So
inline it.
Differential Revision: https://phab.mercurial-scm.org/D12290
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:23:54 -0700] rev 48977
url: remove passing of strict
This was needed to support Python 2.7.
Differential Revision: https://phab.mercurial-scm.org/D12289
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2022 08:04:33 -0800] rev 48976
posix: delete Python 2 posixfile()
The comment no longer makes sense since the stdlib open() behaves
the way we want on Python 3. So it was removed.
Differential Revision: https://phab.mercurial-scm.org/D12288
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:21:18 -0700] rev 48975
match: delete Python 2 conditional code
Differential Revision: https://phab.mercurial-scm.org/D12287
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:20:48 -0700] rev 48974
mail: delete conditional code for Python 2
Differential Revision: https://phab.mercurial-scm.org/D12286
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 16:46:05 -0700] rev 48973
archival: remove GzipFileWithTime
This was required for Python 2 support, which we no longer need to support.
Differential Revision: https://phab.mercurial-scm.org/D12285
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 10:56:31 -0700] rev 48972
check-code: allow importing Python 3 modules
Now that we no longer support Python 2, we should be able to import and
use the Python 3 only modules in our code. So remove a lint banning this.
Differential Revision: https://phab.mercurial-scm.org/D12284
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 02 Mar 2022 08:29:52 -0700] rev 48971
tests: move Python 3.5 check higher in file
Per code review comment on the changeset that introduced the Python 3.5+
checks.
Differential Revision: https://phab.mercurial-scm.org/D12259
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 15:35:09 -0700] rev 48970
py2: drop some more from __future__ statements
These are no longer needed after dropping support for Python 2.
Differential Revision: https://phab.mercurial-scm.org/D12258
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 15:31:33 -0700] rev 48969
tests: delete some no-py3 blocks
And drop some nearby avoidable py3 checks in close proximity while
we are here.
Differential Revision: https://phab.mercurial-scm.org/D12257
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 16:42:58 -0700] rev 48968
tests: remove __future__ import from test-debugcommands.t
This one is slightly more involved since it affects test output.
Differential Revision: https://phab.mercurial-scm.org/D12256
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 15:28:44 -0700] rev 48967
tests: remove from __future__ from inline Python in tests
This is no longer required since we require Python 3 and the linter
no longer requires these statements.
Differential Revision: https://phab.mercurial-scm.org/D12255
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2022 17:34:00 +0100] rev 48966
py2: remove simple from __future__ statements
These were needed for Python 2 support. Now that our linter no longer
mandates these, we can start deleting them.
Differential Revision: https://phab.mercurial-scm.org/D12254
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 15:18:15 -0700] rev 48965
tests: remove output conditionalized on no-py3
I simply did a search for `^.* \(no-py3 !\)\n` and removed all
matched lines. There are still some references to no-py3. But these
were the simpler ones to match against.
Differential Revision: https://phab.mercurial-scm.org/D12253
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 15:03:26 -0700] rev 48964
py3: use io.BytesIO directly
Previously, pycompat.bytesio and pycompat.stringio referred to
io.BytesIO. And util.bytesio and util.stringio aliased the pycompat
symbols.
This commit switches everything to use io.BytesIO directly. util.bytesio
and util.stringio still exist to provide backwards compatibility, as
they were the preferred symbols.
Differential Revision: https://phab.mercurial-scm.org/D12252
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 14:52:40 -0700] rev 48963
check-py3-compat: drop support for Python 2
We no longer support Python 2 so we can drop support for linting code
for Python 2 support.
This gets rid of the check for `from __future__`, enabling us to delete
those imports.
Differential Revision: https://phab.mercurial-scm.org/D12251
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2022 07:59:42 -0800] rev 48962
pycompat: remove large Python 2 block
We no longer support Python 2. So we can delete its compatibility
code and remove the conditional and dedent the Python 3 code.
In order to make the linter happy, we had to inline imports in the
stanza at the top of the file.
Differential Revision: https://phab.mercurial-scm.org/D12250
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 01 Mar 2022 20:29:03 -0800] rev 48961
py3: use pickle directly
pycompat.pickle abstracted over the different pickle modules in
Python 2 and 3. Now that we're Python 3 only, it is safe to use the
`pickle` module directly. So this commit does that.
As part of this we remove the rules from check-code.py that were
forbidden direct pickle module use.
We retain the `util.pickle` symbol for backwards compatibility, just
in case some extensions were using it.
Differential Revision: https://phab.mercurial-scm.org/D12249
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 02 Mar 2022 17:51:27 -0800] rev 48960
pycompat: remove first not ispy3 block
We now require Python 3. So we can remove the first block supporting
Python 2.
Differential Revision: https://phab.mercurial-scm.org/D12247
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:43:44 -0700] rev 48959
import-checker: assume absolute and use modern import checker
Since we require Python 3 now, we can assume we always use absolute
imports and the modern import checker should be used.
Differential Revision: https://phab.mercurial-scm.org/D12246
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:29:47 -0700] rev 48958
tests: unconditionalize some imports
Now that we require Python 3 we can simplify these imports.
Differential Revision: https://phab.mercurial-scm.org/D12245
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:27:38 -0700] rev 48957
tests: remove last references to PYTHON3
This removes the last references to PYTHON3.
Differential Revision: https://phab.mercurial-scm.org/D12244
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:27:08 -0700] rev 48956
tests: simplify Windows and PYTHON3 conditionals
PYTHON3 is always True. So this flow can be reduced.
Differential Revision: https://phab.mercurial-scm.org/D12243
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:26:15 -0700] rev 48955
tests: delete some not PYTHON3 blocks
These can never be used anymore.
Differential Revision: https://phab.mercurial-scm.org/D12242
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:24:25 -0700] rev 48954
tests: unconditionalize _bytes2sys()
As part of requiring Python 3.
Differential Revision: https://phab.mercurial-scm.org/D12241
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:23:21 -0700] rev 48953
tests: remove Python 3 conditionalizing from variables
Differential Revision: https://phab.mercurial-scm.org/D12240
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:22:12 -0700] rev 48952
tests: always encode session
Differential Revision: https://phab.mercurial-scm.org/D12239
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:21:30 -0700] rev 48951
tests: unconditionalize bchr
We could probably just do bytes([x]) everywhere. But this eliminates
use of PYTHON3.
Differential Revision: https://phab.mercurial-scm.org/D12238
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:20:33 -0700] rev 48950
tests: unconditionalize _unified_diff
Now that we're Python 3 only we can make this logic simpler.
Differential Revision: https://phab.mercurial-scm.org/D12237
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:19:21 -0700] rev 48949
tests: collapse elif PYTHON3 block
PYTHON3 is always True now so this logic should be identical as to before.
Differential Revision: https://phab.mercurial-scm.org/D12236
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 13:16:44 -0700] rev 48948
tests: collapse some more trivial if PYTHON3 blocks
This doesn't account for all of the references to PYTHON3. But it
accounts for the ones that are more trivial and don't entail logical
changes.
Differential Revision: https://phab.mercurial-scm.org/D12235
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Feb 2022 11:57:59 -0700] rev 48947
tests: require Python 3.5+ in run-tests.py
We change the version check logic to hard fail if running on
<= 3.5.0. The branch for <3.5 has been deleted. And the >=3.5
branch block has been dedented.
Differential Revision: https://phab.mercurial-scm.org/D12234
pacien <pacien.trangirard@pacien.net> [Mon, 21 Feb 2022 16:18:39 +0100] rev 48946
revlog: use rust rank computation if available
Differential Revision: https://phab.mercurial-scm.org/D12212
pacien <pacien.trangirard@pacien.net> [Mon, 21 Feb 2022 16:18:06 +0100] rev 48945
rust: expose rank computation function to python
Differential Revision: https://phab.mercurial-scm.org/D12211
pacien <pacien.trangirard@pacien.net> [Mon, 21 Feb 2022 18:06:02 +0100] rev 48944
rust: implement vcsgraph::RankedGraph for Index
Differential Revision: https://phab.mercurial-scm.org/D12210
pacien <pacien.trangirard@pacien.net> [Mon, 21 Feb 2022 18:05:54 +0100] rev 48943
revlog: implement fast_rank retrieval in C
This will be useful in particular to avoid going through the Python interpreter
in native Rust functions.
Differential Revision: https://phab.mercurial-scm.org/D12209
pacien <pacien.trangirard@pacien.net> [Mon, 21 Feb 2022 15:53:03 +0100] rev 48942
revlog: return 0 for the fast_rank of nullrev
By convention, the rank of the null revision is 0. This particular revision is
never "physically" stored in the changelog, so it is a special case.
For consistency, the value `None` is still being returned for revlogs which do
not store the fast_rank property for any revision.
Differential Revision: https://phab.mercurial-scm.org/D12208
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 02 Mar 2022 18:42:00 -0800] rev 48941
setup: drop support for Python 3.5
We talked about this on the mailing list [1] and there seemed to be
agreement that Python 3.5 is effectively dead and no longer worth
supporting.
So this commit changes our minimum version requirement to 3.6.2.
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2022-February/147885.html
Differential Revision: https://phab.mercurial-scm.org/D12315
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 22:14:41 -0700] rev 48940
packaging: remove requirements constraints to support Python 2
We just deleted support for Python 2 from the packaging code. We no longer
need these package constraints in the requirements file to support Python 2.
Differential Revision: https://phab.mercurial-scm.org/D12267
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 22:13:11 -0700] rev 48939
packaging: remove py2exe / Python 2.7 support
This commit started by deleting references to py2exe (which is only used
on Python 2). After pulling the thread, quite a lot of code was orphaned
and was deleted.
Differential Revision: https://phab.mercurial-scm.org/D12265
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 18:42:12 -0700] rev 48938
automation: delete code related to Python 2.7 support
The building of Inno and WiX installers took a python_version argument
that allowed us to specify "2" or "3" for the major Python version. Since
we no longer support Python 2, we can delete this argument and everything
feeding into it.
Differential Revision: https://phab.mercurial-scm.org/D12264
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 18:42:31 -0700] rev 48937
automation: drop support for Python 2.7 in Windows environment
We stop installing Python 2.7 in the Windows environment.
We remove support for building Python 2.7 wheels and installers.
There is still some Python 2.7 support cleanup to perform in automation.
But this removes the biggest remaining chunk of references to 2.7.
Differential Revision: https://phab.mercurial-scm.org/D12263
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 18:18:35 -0700] rev 48936
automation: drop support for Python 2.7 in Linux environment
We stop installing Python 2.7 via pyenv. We stop installing the system
Python 2 packages. We delete support for running tests on Python 2.7.
Differential Revision: https://phab.mercurial-scm.org/D12262
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 18:17:14 -0700] rev 48935
automation: make system3 the default for run-tests-linux
We'll soon drop support for Python 2.7. Let's use Python 3 by
default.
Differential Revision: https://phab.mercurial-scm.org/D12261
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Feb 2022 18:04:49 -0700] rev 48934
automation: run hg with python3
Python 2.7 support will go away soon. Let's use Python 3 as part of
the automation.
Differential Revision: https://phab.mercurial-scm.org/D12260