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<&-
--- /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
--- /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
--- 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(","):