Page MenuHomePhabricator

Allow "hg arc-ls-markers" to run under Python 2 or Python 3
ClosedPublic

Authored by epriestley on Jul 6 2020, 10:29 PM.
Tags
None
Referenced Files
F14396023: D21392.diff
Sun, Dec 22, 6:11 AM
Unknown Object (File)
Fri, Dec 20, 2:09 PM
Unknown Object (File)
Thu, Dec 12, 10:09 PM
Unknown Object (File)
Sat, Dec 7, 4:11 AM
Unknown Object (File)
Fri, Dec 6, 6:09 AM
Unknown Object (File)
Sun, Dec 1, 7:29 PM
Unknown Object (File)
Tue, Nov 26, 10:54 PM
Unknown Object (File)
Tue, Nov 26, 7:00 PM
Subscribers
None

Details

Summary

Ref T13546. See PHI1805. Currently, the "arc-ls-markers" extension doesn't run under Python 3:

  • some stuff needs "b'...'" to mark it as a byte string;
  • "dict.iteritems()" is gone in Python 3, and "mercurial.pycompat" isn't always available;
  • in Python 3, "json" refuses to print byte strings; and
  • the compiler caching behavior in Python 3 has changed.

Try to get these things working in the same way under Python 2 and Python 3.

Test Plan

Ran this command (with python as Python 2, locally):

$ python /usr/local/bin/hg --config 'extensions.arc-hg=/Users/epriestley/dev/core/lib/arcanist/support/hg/arc-hg.py' arc-ls-markers --

...and this command:

$ python3 /usr/local/bin/hg --config 'extensions.arc-hg=/Users/epriestley/dev/core/lib/arcanist/support/hg/arc-hg.py' arc-ls-markers --

..and saw the same output in both cases (previously, python3 ... fataled in various ways).

Diff Detail

Repository
rARC Arcanist
Branch
hg2
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 24740
Build 34118: Run Core Tests
Build 34117: arc lint + arc unit