# HG changeset patch # User Matt Harbison # Date 1670364779 18000 # Node ID 3d7bf111f01e73ec8de27f6fe3e0f5f08b4c39b6 # Parent 4836705ab9ba36733f86ab84cff2805cf027a830 packaging: add dependencies to the PyOxidizer build on macOS Otherwise, we get a bunch of test failures for missing things like pygments, or tests skipped entirely. The input file is a copy/paste from the equivalent Windows file, but with dulwich, pygit2, and pytest-vcr commented out because the build process errors out with them, flagging them as incompatible with loading from memory. I have no idea if that's actually true or not, because I've noticed that if I don't `make clean` after every build, the next build flags the watchman stuff as incompatible with loading from memory. The remaining failures are: Failed test-alias.t: output changed Failed test-basic.t: output changed Failed test-check-help.t: output changed Failed test-commit-interactive.t: output changed Failed test-extension.t: output changed Failed test-help.t: output changed Failed test-i18n.t: output changed Failed test-log.t: output changed Failed test-qrecord.t: output changed Failed test-share-safe.t: output changed Most of the issues seem related to loading help for disabled extensions from `hgext.__index__`, namely the full extension help being unavailable, not being able to resolve what commands are provided by what extension, and not having the command level help available. test-log.t, test-commit-interactive.t, and test-i18n.t look like i18n (or lack thereof) issues. test-basic.t is just odd: @@ -55,7 +55,7 @@ On Python 3, stdio may be None: $ hg debuguiprompt --config ui.interactive=true 0<&- - abort: Bad file descriptor (no-rhg !) + abort: response expected abort: response expected (rhg !) [255] $ hg version -q 0<&- diff -r 4836705ab9ba -r 3d7bf111f01e contrib/packaging/requirements-macos.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/packaging/requirements-macos.txt Tue Dec 06 17:12:59 2022 -0500 @@ -0,0 +1,38 @@ +# +# This file is autogenerated by pip-compile with python 3.9 +# To update, run: +# +# pip-compile --generate-hashes --no-reuse-hashes --output-file=contrib/packaging/requirements-macos.txt contrib/packaging/requirements-macos.txt.in +# +docutils==0.19 \ + --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ + --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc + # via -r contrib/packaging/requirements-macos.txt.in +fuzzywuzzy==0.18.0 \ + --hash=sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8 \ + --hash=sha256:928244b28db720d1e0ee7587acf660ea49d7e4c632569cad4f1cd7e68a5f0993 + # via -r contrib/packaging/requirements-macos.txt.in +importlib-metadata==5.1.0 \ + --hash=sha256:d5059f9f1e8e41f80e9c56c2ee58811450c31984dfa625329ffd7c0dad88a73b \ + --hash=sha256:d84d17e21670ec07990e1044a99efe8d615d860fd176fc29ef5c306068fda313 + # via keyring +jaraco-classes==3.2.3 \ + --hash=sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158 \ + --hash=sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a + # via keyring +keyring==23.11.0 \ + --hash=sha256:3dd30011d555f1345dec2c262f0153f2f0ca6bca041fb1dc4588349bb4c0ac1e \ + --hash=sha256:ad192263e2cdd5f12875dedc2da13534359a7e760e77f8d04b50968a821c2361 + # via -r contrib/packaging/requirements-macos.txt.in +more-itertools==9.0.0 \ + --hash=sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41 \ + --hash=sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab + # via jaraco-classes +pygments==2.13.0 \ + --hash=sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1 \ + --hash=sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42 + # via -r contrib/packaging/requirements-macos.txt.in +zipp==3.11.0 \ + --hash=sha256:83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa \ + --hash=sha256:a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766 + # via importlib-metadata diff -r 4836705ab9ba -r 3d7bf111f01e contrib/packaging/requirements-macos.txt.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/packaging/requirements-macos.txt.in Tue Dec 06 17:12:59 2022 -0500 @@ -0,0 +1,22 @@ +# Declare macOS-specific requirements for generating +# the compiled (frozen) set of requirements in +# ./requirements-macos.txt. +# If run on Windows, it may be necessary to run dos2unix +# on the output file to replace any CRLF newlines with LF. + +# TODO: dulwich, pygit2, and pytest-vcr are flagged as being +# incompatible with in-memory resources. Maybe there's a +# way to bundle just them externally. + +docutils +#dulwich + +# Needed by the release note tooling +fuzzywuzzy + +keyring +#pygit2 +pygments + +# Needed by the phabricator tests +#pytest-vcr diff -r 4836705ab9ba -r 3d7bf111f01e rust/hgcli/pyoxidizer.bzl --- a/rust/hgcli/pyoxidizer.bzl Tue Dec 06 15:32:11 2022 -0500 +++ b/rust/hgcli/pyoxidizer.bzl Tue Dec 06 17:12:59 2022 -0500 @@ -33,6 +33,7 @@ TIME_STAMP_SERVER_URL = VARS.get("TIME_STAMP_SERVER_URL", "http://timestamp.digicert.com") IS_WINDOWS = "windows" in BUILD_TARGET_TRIPLE +IS_MACOS = "apple" in BUILD_TARGET_TRIPLE # Use in-memory resources for all resources. If false, most of the Python # stdlib will be in memory, but other things such as Mercurial itself will not @@ -148,6 +149,10 @@ exe.add_python_resources( exe.pip_install(["-r", ROOT + "/contrib/packaging/requirements-windows-py3.txt"]), ) + if IS_MACOS: + exe.add_python_resources( + exe.pip_install(["-r", ROOT + "/contrib/packaging/requirements-macos.txt"]), + ) extra_packages = VARS.get("extra_py_packages", "") if extra_packages: for extra in extra_packages.split(","):