Matt Harbison <matt_harbison@yahoo.com> [Fri, 03 Feb 2023 17:31:54 -0500] rev 49976
run-tests: stop ignoring venv-installed packages
This will allow test dependencies to be installed within a venv, instead of
tampering with sys/user sites. One thing to note here is that the `VIRTUAL_ENV`
path takes precedence over system-site, unlike when run directly with an
activated `venv`. For example, `sys.path` as viewed from a feature test in
`hghave.py`, when running `hghave vcr` directly with an activated `venv`:
sys.path: [
'/home/jenkins/hg-committed/tests',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/home/jenkins/test_venv/lib/python3.8/site-packages'
]
vs `sys.path` from the same feature test, when run by `run-tests.py` with this
change:
sys.path: [
'/home/jenkins/hg-committed/tests',
'/home/jenkins/hg-committed',
'/home/jenkins/hg-committed/tests',
'/home/jenkins/test_venv/lib/python3.8/site-packages',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/home/jenkins/.local/lib/python3.8/site-packages',
'/usr/local/lib/python3.8/dist-packages',
'/usr/lib/python3/dist-packages'
]
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jan 2023 16:59:15 -0500] rev 49975
bundlerepo: raise `error.LookupError` instead of `LookupError`
I'm pretty sure that this was the intention, given `error.LookupError` is raised
a few lines above with the same arguments.
Note that PyCharm complains about `self.display_id` (and the use above this too)
being `() -> Any` instead of `bytes`, but it may be confused about the
`util.propertycache` annotation on it.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jan 2023 16:49:41 -0500] rev 49974
unionrepo: resync several methods to actually override superclass methods
Not sure how/when these skewed, but these were flagged by PyCharm as having
different signatures.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 03 Feb 2023 01:07:59 -0500] rev 49973
hgweb: unbyteify the 100-continue check
The environment seems to be `str` or `tuple[int]`, and the same check in
`wsgicgi.py` is already `str` based, so I suspect this was wrong. I think what
happened here is that the string wasn't `r''` prefixed in
482d6f6dba91 like
`wsgicgi.py`, so it got wrongly byteified in
687b865b95ad when converting to
byte literals en masse.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jan 2023 11:41:59 +0100] rev 49972
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Jan 2023 18:50:11 +0100] rev 49971
setup: treat error output and non-zero return code differently
Choking on Mercurial's stderr mean armless warning can derails the whole install
process. We do like to be able to issue warning to people so we stop considering
any stderr is a fatal mistake.
This allow us to actually boostrap a version of Mercurial without loosing to
many sanity point. For example in case where evolve is not loaded, something
that happens when the recorded version is malformatted. Creating a wonderful
ouroboros.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Jan 2023 18:41:59 +0100] rev 49970
setup: make the version computation process more resistant
The tag fetching might return and empty stringĀ¹, from there everything derails
quickly. As setup tools becomes more picky about version format we make the
whole seems a bit more robust.
The resulting version will be obviously weird, but at least it will actually
install itself.
[1] This is a problem we will address in the next changesets.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jan 2023 18:25:11 -0500] rev 49969
bundlerepo: enforce the requirements declared by the underlying repository
Previously, `hg log -r 'bundle()' -R bundle.hg` was failing for me when run from
source, complaining about an unknown parent, when the system installed `hg`
didn't. Some debugging showed the index was 0 length. It turned out that I
didn't have the C extensions compiled, which a simple `hg log -r .` was able to
indicate. The problem being that the RequirementError got handled by RepoError,
which uses an empty directory as a fallback to process the bundle.