Page MenuHomePhabricator

indygreg (Gregory Szorc)
User

Projects

User Details

User Since
Jul 1 2017, 5:02 PM (144 w, 4 d)

Recent Activity

Wed, Apr 1

indygreg added a comment to D8353: debugcommands: create new debugantivirusrunning command.

I do not understand what the intended side-effect of running this command is supposed to be.

Wed, Apr 1, 8:33 PM
indygreg closed D8344: extensions: refactor function for obtaining disabled extension help.
Wed, Apr 1, 3:10 PM
indygreg committed rHG843418dc0b1b: extensions: refactor function for obtaining disabled extension help.
extensions: refactor function for obtaining disabled extension help
Wed, Apr 1, 3:09 PM
indygreg closed D8342: tests: prevent printing \r to stdout.
Wed, Apr 1, 3:09 PM
indygreg closed D8343: tests: perform grep manually in test-doctest.py.
Wed, Apr 1, 3:09 PM
indygreg committed rHG15aef805619d: tests: perform grep manually in test-doctest.py.
tests: perform grep manually in test-doctest.py
Wed, Apr 1, 3:09 PM
indygreg closed D8339: dispatch: force \n for newlines on sys.std* streams (BC).
Wed, Apr 1, 3:09 PM
indygreg committed rHG47e6ec977555: tests: prevent printing \r to stdout.
tests: prevent printing \r to stdout
Wed, Apr 1, 3:09 PM
indygreg committed rHGd359f0d1a3d3: tests: force \n newlines when writing to sys.stdout.
tests: force \n newlines when writing to sys.stdout
Wed, Apr 1, 3:09 PM
indygreg closed D8341: tests: force \n newlines when writing to sys.stdout.
Wed, Apr 1, 3:09 PM
indygreg committed rHG02fa5392bab6: dispatch: force \n for newlines on sys.std* streams (BC).
dispatch: force \n for newlines on sys.std* streams (BC)
Wed, Apr 1, 3:09 PM
indygreg committed rHG3cbbfd0bfc17: hook: move stdio redirection to context manager.
hook: move stdio redirection to context manager
Wed, Apr 1, 3:09 PM
indygreg closed D8338: hook: move stdio redirection to context manager.
Wed, Apr 1, 3:09 PM
indygreg committed rHG00e0c5c06ed5: pycompat: change argv conversion semantics.
pycompat: change argv conversion semantics
Wed, Apr 1, 2:55 PM
indygreg closed D8337: pycompat: change argv conversion semantics.
Wed, Apr 1, 2:55 PM
indygreg closed D8336: tests: use `f --hexdump` to print file content.
Wed, Apr 1, 11:23 AM
indygreg closed D8350: hgcli: add stub PyOxidizer project.
Wed, Apr 1, 11:23 AM
indygreg committed rHGda9b7f9635a2: tests: use `f --hexdump` to print file content.
tests: use `f --hexdump` to print file content
Wed, Apr 1, 11:23 AM
indygreg closed D8351: hgcli: customize for Mercurial.
Wed, Apr 1, 11:23 AM
indygreg closed D8335: url: pass str to pathname2url.
Wed, Apr 1, 11:23 AM
indygreg committed rHGe74af49aa3c9: url: pass str to pathname2url.
url: pass str to pathname2url
Wed, Apr 1, 11:22 AM
indygreg committed rHG51ffb2a6c08a: tests: pass str to matchoutput().
tests: pass str to matchoutput()
Wed, Apr 1, 11:22 AM
indygreg closed D8334: tests: pass str to matchoutput().
Wed, Apr 1, 11:22 AM
indygreg committed rHGbc847878f4c0: hgcli: customize for Mercurial.
hgcli: customize for Mercurial
Wed, Apr 1, 11:22 AM
indygreg committed rHGaf739894a4c1: hgcli: add stub PyOxidizer project.
hgcli: add stub PyOxidizer project
Wed, Apr 1, 11:22 AM
indygreg closed D8349: hgcli: remove legacy project.
Wed, Apr 1, 11:22 AM
indygreg committed rHG02f66b23cba3: hgcli: remove legacy project.
hgcli: remove legacy project
Wed, Apr 1, 11:22 AM

Tue, Mar 31

indygreg created D8350: hgcli: add stub PyOxidizer project.
Tue, Mar 31, 11:29 PM
indygreg created D8351: hgcli: customize for Mercurial.
Tue, Mar 31, 11:29 PM
indygreg created D8352: extensions: don't crash if __file__ not defined.
Tue, Mar 31, 11:29 PM
indygreg created D8349: hgcli: remove legacy project.
Tue, Mar 31, 11:29 PM

Sun, Mar 29

indygreg added a comment to D8340: dispatch: force \n for newlines on sys.std* streams (BC).

This is a dupe of D8339.

Sun, Mar 29, 9:32 PM
indygreg created D8344: extensions: refactor function for obtaining disabled extension help.
Sun, Mar 29, 9:30 PM
indygreg created D8348: tests: force newlines to LF in inline Python script.
Sun, Mar 29, 9:30 PM
indygreg created D8345: tests: look for CRLF on Windows.
Sun, Mar 29, 9:30 PM
indygreg created D8347: encoding: use special dictionary type for env variables on Windows.
Sun, Mar 29, 9:30 PM
indygreg created D8346: tests: force newlines to LF in tinyproxy.py.
Sun, Mar 29, 9:30 PM
indygreg created D8342: tests: prevent printing \r to stdout.
Sun, Mar 29, 9:30 PM
indygreg created D8343: tests: perform grep manually in test-doctest.py.
Sun, Mar 29, 9:30 PM
indygreg created D8340: dispatch: force \n for newlines on sys.std* streams (BC).
Sun, Mar 29, 9:30 PM
indygreg created D8341: tests: force \n newlines when writing to sys.stdout.
Sun, Mar 29, 9:30 PM
indygreg added a comment to D8339: dispatch: force \n for newlines on sys.std* streams (BC).

As scary as this patch sounds, I'm pretty sure it is safe, as I believe it restores compatibility with Python 2. Changing sys.std* to be binary streams instead of text streams would be a bigger BC break. And that is not a change I want to make, as this would invalidate assumptions in 3rd party code about the behavior of these streams on Python 3!

Sun, Mar 29, 4:35 PM
indygreg added a comment to D8338: hook: move stdio redirection to context manager.

This commit isn't strictly required. I performed this refactoring anticipating needing to add sys.std* fixups as part of this function. But it turns out that the SSH protocol server handles I/O redirection via a different mechanism. There actually appear to be redundant mechanisms for intercepting stdio as part of the wire protocol. This is potentially an area that we could clean up. But I'm not inclined to do so at this time.

Sun, Mar 29, 4:33 PM
indygreg created D8339: dispatch: force \n for newlines on sys.std* streams (BC).
Sun, Mar 29, 4:31 PM
indygreg created D8338: hook: move stdio redirection to context manager.
Sun, Mar 29, 4:31 PM

Sat, Mar 28

indygreg updated subscribers of D8337: pycompat: change argv conversion semantics.

@yuja I'd appreciate your eyes on this since you have a firm grasp on Windows/Unicode matters...

Sat, Mar 28, 9:42 PM
indygreg created D8336: tests: use `f --hexdump` to print file content.
Sat, Mar 28, 9:41 PM
indygreg created D8337: pycompat: change argv conversion semantics.
Sat, Mar 28, 9:41 PM
indygreg created D8335: url: pass str to pathname2url.
Sat, Mar 28, 9:40 PM
indygreg created D8334: tests: pass str to matchoutput().
Sat, Mar 28, 9:40 PM

Feb 28 2020

indygreg added inline comments to D6825: hgext: start building a library for simple hooks.
Feb 28 2020, 12:50 AM

Feb 26 2020

indygreg added inline comments to D7967: exchange: recognize changegroup3 bundles in `getbundlespec()`.
Feb 26 2020, 6:37 PM
indygreg added a comment to D7967: exchange: recognize changegroup3 bundles in `getbundlespec()`.

To clarify, bundle specifications are user-facing whereas changegroup versions are an internal implementation detail. Their version numbers are thus on different timelines and aren't strictly related.

Feb 26 2020, 6:30 PM

Feb 15 2020

D8122: pyoxidizer: allow extensions to be loaded from the file system is now accepted and ready to land.

This simply tells PyOxidizer to load the sys.meta_path importer that performs filesystem-based importing, like a normal Python process. https://pyoxidizer.readthedocs.io/en/stable/config_api.html#pythoninterpreterconfig

Feb 15 2020, 4:54 PM

Feb 11 2020

indygreg added inline comments to D6846: packaging: script the building of a MacOS installer using a custom python.
Feb 11 2020, 9:56 PM
indygreg added a comment to D6846: packaging: script the building of a MacOS installer using a custom python.

macOS supports a @loader_path and related magic tokens in rpath to load libraries relative to the current binary. See e.g. https://blogs.oracle.com/dipol/dynamic-libraries,-rpath,-and-mac-os and https://medium.com/@donblas/fun-with-rpath-otool-and-install-name-tool-e3e41ae86172 for examples.

Feb 11 2020, 9:48 PM

Feb 3 2020

D8068: packaging: make the path to Win32 requirements absolute when building WiX is now accepted and ready to land.
Feb 3 2020, 10:10 PM

Feb 2 2020

D8063: packaging: lowercase the `contrib` and `templates` directories with Inno is now accepted and ready to land.

OK. If an upgraded install works, I'm happy with landing this. We might as well land all the larger installer refactorings in this release. That should set us up for hopefully a less invasive switch to Python 3, as the install layouts will already be mostly identical.

Feb 2 2020, 12:21 PM
D8066: packaging: merge the requirements.txt files for WiX and Inno is now accepted and ready to land.
Feb 2 2020, 12:19 PM

Feb 1 2020

indygreg added a comment to D8063: packaging: lowercase the `contrib` and `templates` directories with Inno.

Did you test an upgrade over an existing install with this? My recollection is the case collision caused issues in my local testing, which is why I preserved the case difference between the installers.

Feb 1 2020, 6:59 PM
D8062: packaging: bundle dulwich, keyring, and pywin32-ctypes with WiX too is now accepted and ready to land.

As a follow-up, we can likely merge the requirements.txt[.in] files now.

Feb 1 2020, 6:57 PM
D8061: packaging: bundle the default mercurial.ini template with Inno also is now accepted and ready to land.
Feb 1 2020, 6:55 PM
D8060: packaging: set the FileVersion field in the Inno installer executable is now accepted and ready to land.
Feb 1 2020, 6:54 PM
D8059: packaging: move the version normalization function to the util module is now accepted and ready to land.
Feb 1 2020, 6:54 PM
D8058: resourceutil: account for the non-resource-like file hierarchy under py2exe is now accepted and ready to land.
Feb 1 2020, 6:53 PM
D8052: wix: restore COPYING.rtf is now accepted and ready to land.
Feb 1 2020, 6:52 PM
indygreg added a comment to D7173: packaging: stage files and dynamically generate WiX installer.

This change also means that Inno and WiX are now using very similar code for managing the install layout. This means that on disk both packages are nearly identical. The differences in install layout are as follows:
...

I diffed the WiX and Inno installs side by side, and there are a few more differences right before the 5.3 release. I don't think there's anything critical, but just in case there could be an issue:

  • Inno installs backports.configparser, certifi, dulwich, keyring, urllib3, and win32ctypes in library.zip.
Feb 1 2020, 12:01 AM

Jan 31 2020

indygreg committed rHG281b6690e646: packaging: add support for PyOxidizer.
packaging: add support for PyOxidizer
Jan 31 2020, 10:18 AM

Jan 30 2020

indygreg closed D7450: packaging: add support for PyOxidizer.
Jan 30 2020, 4:26 PM
indygreg committed rHG0dd8b752f287: packaging: add support for PyOxidizer.
packaging: add support for PyOxidizer
Jan 30 2020, 4:26 PM

Jan 26 2020

indygreg added a comment to D7450: packaging: add support for PyOxidizer.

I just released PyOxidizer 0.5.0 and have updated the instructions in this file accordingly.

Jan 26 2020, 7:26 PM
indygreg updated the diff for D7450: packaging: add support for PyOxidizer.
Jan 26 2020, 7:25 PM
indygreg updated the diff for D7450: packaging: add support for PyOxidizer.
Jan 26 2020, 1:34 PM
indygreg added a comment to D7450: packaging: add support for PyOxidizer.

I don't have strong opinions about bundling templates and other resources internally versus externally. I do think it would be cool to have a fully self-contained executable. But that would require a command to write out embedded resources to the filesystem so people can modify them. That's a bit obscure.

Jan 26 2020, 1:33 PM
indygreg added a comment to D7450: packaging: add support for PyOxidizer.

This produces a working hg executable with templates support on Linux and Windows (I haven't tested macOS). I'd feel comfortable landing if it will unblock others to hack on things.

Jan 26 2020, 2:22 AM
indygreg retitled D7450: packaging: add support for PyOxidizer from INCOMPLETE pyoxidizer to packaging: add support for PyOxidizer.
Jan 26 2020, 2:16 AM
indygreg added a comment to D7449: rust: vendor pyembed crate.

Modern versions of pyoxidizer don't need to vendor the pyembed crate. So abandoning this.

Jan 26 2020, 1:43 AM

Jan 25 2020

indygreg closed D8005: wix: use original version string for MSI filename.
Jan 25 2020, 7:02 PM
indygreg committed rHG62111bc5ff87: wix: use original version string for MSI filename.
wix: use original version string for MSI filename
Jan 25 2020, 7:02 PM
indygreg closed D8004: wix: always normalize version string.
Jan 25 2020, 7:02 PM
indygreg committed rHG2251b6cde170: wix: always normalize version string.
wix: always normalize version string
Jan 25 2020, 7:02 PM
indygreg closed D8003: wix: more robust normalization of RC version components.
Jan 25 2020, 7:02 PM
indygreg committed rHG8d653abed861: wix: more robust normalization of RC version components.
wix: more robust normalization of RC version components
Jan 25 2020, 7:02 PM

Jan 24 2020

indygreg abandoned D5052: mercurial: strip function return type annotations (RFC).
Jan 24 2020, 11:52 PM
indygreg abandoned D5051: mercurial: implement custom module importer for Python 2.7 (RFC).
Jan 24 2020, 11:51 PM
indygreg abandoned D5050: tests: add test verifying our Python 3 tokenizer works.
Jan 24 2020, 11:51 PM
indygreg abandoned D5049: hgdemandimport: don't use str.isidentifier().
Jan 24 2020, 11:51 PM
indygreg abandoned D5048: hgdemandimport: port line consuming to Python 2.
Jan 24 2020, 11:51 PM
indygreg abandoned D5047: hgdemandimport: remove re.ASCII.
Jan 24 2020, 11:51 PM
indygreg abandoned D5046: hgdemandimport: adjust imports to reflect vendored module.
Jan 24 2020, 11:51 PM
indygreg abandoned D5045: hgdemandimport: remove unused functionality from vendored modules.
Jan 24 2020, 11:50 PM
indygreg abandoned D5044: hgdemandimport: add PSF license and copyright notice to vendored files.
Jan 24 2020, 11:50 PM
indygreg added a comment to D5043: hgdemandimport: vendor CPython 3.7 tokenizer modules.

I submitted this series as a PoC. We likely won't move ahead with it. Although if we want to pursue prolonged Python 2.7 support, this series would likely make it easier...

Jan 24 2020, 11:50 PM
indygreg added a comment to D8003: wix: more robust normalization of RC version components.

This series is for stable in case it gets missed in the Phabricator UI.

Jan 24 2020, 11:38 PM
indygreg created D8005: wix: use original version string for MSI filename.
Jan 24 2020, 11:34 PM
indygreg created D8004: wix: always normalize version string.
Jan 24 2020, 11:34 PM
indygreg created D8003: wix: more robust normalization of RC version components.
Jan 24 2020, 11:34 PM
indygreg committed rHG624fe53ce1e7: packaging: add configparser to inno requirements file.
packaging: add configparser to inno requirements file
Jan 24 2020, 10:23 PM
indygreg added a comment to D7973: packaging: add configparser to inno requirements file.

Yeah, it was flagged as stable in the branch metadata. But whoever queued it didn't see that. (Perhaps we should improve hg phabread to warn on branch name mismatch?)

Jan 24 2020, 10:22 PM

Jan 23 2020

indygreg closed D7937: python-zstandard: blacken at 80 characters.
Jan 23 2020, 7:34 AM