Summary: We want to make use of this for our OSS build of CinderX (see diffs further up the stack). However, the older version of setuptools seems to break in really weird ways I can't find work arounds for. Upgrading it seems to make most of the problems go away or avoidable so if nobody complains I'd rather fix things by just doing this.
Reviewed By: alexmalyshev
Differential Revision: D79195099
fbshipit-source-id: 2d65e8960e435536dc7dd7e6a142f1bd2df89a41
Summary:
Ubuntu 24.04 and Fedora 40 are both python 3.12 based. Update sapling's OSS getdeps build to allow build/run/test on python 3.12 while keeping 3.10 support.
* distutils is deprecated in python 3.12 stdlib, but fortunately setuptools is pretty similar and includes a vendored distutils, so:
* added a manifest so we get python3-setuptools installed.
* setup.py: removed deprecated usage like `find_executable` in favor of `shutil.which()`, also removed some super old xcode 4/5.1 detection I found
* util.py makedate(): datetime.utcfromtimestamp is deprecated in 3.12, so updated to use non-deprecated methods. Tested with test-command-template.t which shows tz offset.
* Makefile: disabled test-eager-exchange.t on 3.12 where updating the expectation to run on 3.12 and 3.10 is tricky (debug output differs)
* tests modified to run on 3.12 and 3.10:
* test-import-eol.t: updated for invalid escape sequence warnings
* test-install.t: updated to filter out message that appears in different order on 3.12 vs earlier versions
* test-merge-driver2.t: match different debug output in 3.12, remove check for mercurial package
* test-sign-commit.t: updated to add --yes for newer gpg that python 3.12 using distros have
* found some tests needed bunzip2, so update manifest for sapling and bz2 to install it
X-link: https://github.com/facebook/sapling/pull/964
X-link: https://github.com/facebookincubator/zstrong/pull/1005
Reviewed By: quark-zju, singhsrb
Differential Revision: D63958742
Pulled By: ahornby
fbshipit-source-id: 460c42eb1315f2e1631c74d356e4976469104c1b