My plan of attack was to implement support for packaging in PyOxidizer and
have thg (and Mercurial) use this functionality (with or without the
traditional PyOxidizer-building-the-binary approach). However, I've been
sidetracked by various things. Ugh, COVID.

I'll try to take a look at what features I still need to implement in
PyOxidizer to proceed with this plan in the next week or so.

On Mon, Apr 12, 2021 at 11:52 AM Augie Fackler <r...@durin42.com> wrote:

>
>
> On Apr 3, 2021, at 6:34 PM, Matt Harbison <mharbiso...@gmail.com> wrote:
>
> On Sat, Apr 3, 2021 at 12:18 PM Raphaël Gomès <raphael.go...@octobus.net>
> wrote:
>
>
> Hello all,
>
> As you all know, Mercurial's codebase is still burdened by Python 2
> support. Patches still
> need to be adapted for backwards compat, some Python niceties still
> cannot be used,
> and the Heptapod CI which is used on a near majority of the patches we
> collectively land
> is still putting in double shifts as well.
>
> At the last (virtual) sprint, everybody present agreed that the time had
> long passed to drop
> Python 2 support, but that it couldn't be done until TortoiseHg's Python
> 3 Windows packaging
> story was straightened out. Where are we standing on the matter? Are we
> close?
>
>
> I've been making progress on adding type hints and fixing issues in
> the TortoiseHg code.  The good news is there are ~13 files left that
> are excluded.  The bad news is I know for a fact that some of the
> *included* files have type mismatches that pytype isn't detecting.
> Some of this could be helped by moving to py3.  (e.g. pytype seems to
> not recognize `foo[b'bar']` as calling `__getitem__()` on an object,
> and treats it as returning Any, even when there's type info on the
> function.  Subclassing typing.Mapping seems to help in some cases, but
> classes like `config.config` and `localrepo.localrepository` really
> can't subclass that because they have functions like `items()` with a
> signature that differs from the base class.  It also seems to struggle
> with @annotations.)  IDK for sure how far I am through adding type
> hints, because it's so non linear by nature.  If I had to guess, maybe
> 50%?
>
> Stepping back from the thg work, there's also core work that still
> needs to be done.  I just ran the tests locally and got 19 failures
> (excluding fixes I'm about the send), and skipping 114 which are
> mostly never going to work on Windows because of symlink, executable
> bit, casefolding, etc.  Some of those skips are test-convert-* other
> than git, so I assume that's a mess.  I don't care about that, but
> somebody might.  Of the failures, 4 are test-gendoc-*, so IDK how
> important those are.  Some of the other failures are... concerning.
> But they may have simple fixes.  There are runtime issues that are not
> detected by tests, such as
> https://bz.mercurial-scm.org/show_bug.cgi?id=6446 and getting no
> output for commands that spin up a pager.  (I *think* the latter is
> limited to running `hg` instead of `hg.exe` in a venv, so maybe this
> is fixable by compiling wrapper.exe and not installing the `hg` script
> when running `setup.py` on Windows.)  I also need to finish up the py3
> porting series for mercurial_keyring, as that still has a few issues.
>
> I think that it would be beneficial to have a beta period for thg
> where both py2 and py3 are built (like we did with hg), to find some
> of the issues that pytype isn't catching.  I'll probably regret this
> because IDK how long I can sustain the current pace, but if we can get
> the Windows and Mac packaging done for 5.8, maybe 5.8 can be the beta
> period and 5.9 is py3 only?  (It might be OK if the packaging isn't
> ready until 5.8.1, since Yuya seems to be OK with landing packaging
> and py3 fixes on stable if they aren't crazy.)  I think Greg made some
> MSI related enhancement to PyOxidizer recently, but IDK what the means
> for the state of things, or how far away a macOS *.app bundle is.
> Worst case scenario, I can build thg 5.9 with hg 5.8.2 if thg progress
> can't keep pace.  I just don't want that going on forever.
>
>
> I think this plan is sensible and you should proceed with it.
>
>
> I am CC'ing Greg who proposed to help at the time, as well as Matt, the
> maintainer, since they
> might know better than anyone where we're currently standing.
>
> Thanks,
> Raphaël
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
>
>
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to