tests: force `dummysmtpd.py` to write its log file with '\n' on Windows
The log files were being `cat'd` in `test-patchbomb-tls.t`, and causing
gratuitous failures. Since `sys.stdout` is being written to with `str` instead
of `bytes`, use a `io.TextIOWrapper` to change the EOL, like
2924676d4728.
tests: raise the default value for the various `devel.sync.*-timeout` configs
These are used in `mercurial.testing.wait_file()` to stall for a file to appear
in the filesystem, and raise an error if the file doesn't show up before the
timeout expires.
The default of 2s was way too low on Windows, especially when running tests in
parallel, and resulted in various timeouts in `test-dirstate-read-race.t`,
`test-dirstate-status-write-race.t`, and `test-clone-stream-revlog-split.t`.
The various `wait-on-file` invocations in the tests are inconsistent, and wait
anywhere from 5s - 20s. I'm using 20s here because if everything is working,
the timeout won't matter. Also with the default timeout being raised on Windows
in
f4c038081561, both `HGTEST_TIMEOUT_DEFAULT` and `HGTEST_TIMEOUT` are 1440 in
the default case where the timeout is not specified on the command line of the
test runner, so the timing factor that is multipled with the value is 1,
resulting in no changes. (But if someone specified a lower value on the command
line, that would *lower* the timeout period used.)
tests: remove deprecated test-check-py3-compat.t
If our current source files were not compatible with Python 3, we would know by
now.
This check has not been relevant for a couple of years now and we can safely
remove it.
zope-interface: add compatibility with 3.13 compiler attributes
We could follow-up with an actual vendoring update from the newest version
of zope-interface in the new cycle since we're dropping 3.7 and down.
However we are also in the process of replacing zope-interface with Protocol, so
hopefully we can simply drop the zope-interface vendoring.
py-3-13: stabilize the docstring output across all supported Python versions
Python 3.13 now trims indents from docstrings at compilation time
(to save space in .pyc), so all of our helptext is affected.
The indentation has never served a user-facing purpose and was more here
because nobody cared enough to remove it: we gain some screen space this way.
Rather than undo the transformation (which isn't really possible since the
transform also deletes leading/trailing whitespace), we align the behavior
of older Python versions with that of 3.13.
Unfortunately, this means breaking some of the translations. I've only
touched the ones that need to work for some tooling tests to pass, but
I do not have the time to fix the rest of them across all languages, since
they cannot be done in an automated way. i18n updates have been basically
abandonned for a good while now, hopefully someone cares enough to bring them
back.
test-lfs-serve-access: vastly simplify the error output check
The traceback differences between all supported Python versions is about to
become insane to handle, so let's check what we're actually looking to check.
subrepo: propagate non-default path on outgoing
There was already a fix made in
5dbff89cf107 for pull and push commands. I did
the same for the outgoing command.
The problem I identified is that when the parent repository has multiple paths,
the outgoing command was not respecting the parent path used and was always
using the default path for subrepositories.
outgoing: move sorting in the display function
This make the core code simpler.