##// END OF EJS Templates
rust-pyo3: implementation of LazyAncestors...
rust-pyo3: implementation of LazyAncestors There is a difference in the implementaion of `__contains__` between PyO3 and rust-cpython: if the specified signature in Rust code is for a precise type (e.g., `PyRevision`) rust-cpython would automatically convert the potential resulting `TypeError` into `Ok(false)`, whereas PyO3 let it bubble up. Hence we treat the case manually and add it to the common test. In Mercurial Python code, `None in` for a `LazyAncestors` object can really happens, namely in this lambda from `discover._postprocessobsolete`: ``` ispushed = lambda n: torev(n) in futurecommon ``` This lambda can get called with `n` such that `torev(n)` is `False` (seen in `test-bookmarks-push-pull.t`).

File last commit:

r53167:6aa4ee2b stable
r53430:6b694bdf default
Show More
build-macos-wheels.sh
35 lines | 1.1 KiB | application/x-sh | BashLexer
#!/bin/sh
# This is a convenience script to build all of the wheels outside of the CI
# system. It requires the cibuildwheel package to be installed, and the
# executable on PATH, as well as `msgfmt` from gettext, which can be installed
# with `brew` as follows:
#
# $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
# <logout>
# $ brew install gettext
#
# A system-wide installation of the version of python corresponding to each
# wheel is required. They can be installed by this script by setting `CI=true`
# in the environment before running it, and providing the `sudo` password when
# prompted.
set -e
# Build translations; requires msgfmt on PATH.
export MERCURIAL_SETUP_FORCE_TRANSLATIONS=1
if ! which msgfmt 2>/dev/null 1>/dev/null; then
echo "msgfmt executable not found" >&2
exit 1
fi
# Prevent building pypy wheels, which is broken.
export CIBW_SKIP=pp*
export CIBW_ARCHS=universal2
# TODO: purge the repo?
cibuildwheel --output-dir dist/wheels