ui: actually return a value for `_fout_is_a_tty()`
ui: avoid a str interpolation into bytes crash in `fixconfig()`
run-tests: attempt to use `hg.bat` in pure mode
run-tests: fix `--hg-wheel` semantics when not in the repo root
test-run-test: prevent `pip` from caching items in the repo root
tests: disable color for `hg fastexport` with redirected output (again)
revlogutils: reorder the open mode for `debug::fast-upgrade` to appease C code
tests: stabilize test-branch-change.t on Windows
typing: add typehints to `util.nouideprecwarn()`
revlog: fix a bytes vs str crash when emitting a deprecation warning
typing: preserve the signature of `@util.timed()` decorated methods
typing: tighten up the signature of `encoding.unimethod()`
typing: preserve the signature of `util.lrucachefunc` wrapped methods
typing: add typehints around an internal fastannotate method that is decorated
interfaces: add typehints for `ilocalrepositoryfilestorage.file()`
typing: add typehints around `scmutil.revsingle()`
interfaces: correct the signature of `repository.anyrevs()`
context: return a valid value for `committablectx.hex()`
make: build local venv with `--system-site-packages`
run-tests: create the venv where hg is installed without `pip`
run-tests: stop relying on Mercurial being configured on the system
procutil: actually silence backgrounded process stdio on Windows when asked
tests: disable color for `hg fastexport` with redirected output
check-code: tighten up the check for shell assignment and export
test-branches: conditionalize output to pass on Windows 11
hghave: introduce a predicate for Windows 10
typing: switch `typing_extensions.Literal` -> `typing.Literal`
typing: use `MatcherTraverseDirFuncT` throughout the matcher classes
typing: add trivial typehints to `mercurial.match`
interfaces: introduce types for important matcher primitives
match: raise a ProgrammingError to help pytype
typing: apply typehints from `IMatcher` protocol class to concrete matchers
typing: add trivial typehints to `mercurial.context`
context: add abstract methods to `basectx`
context: add an abstract `data()` method to `basefilectx`
context: ensure the filectx classes return a value from `write()`
typing: lock in the hints inferred by the previous commit
context: annotate `basefilectx` as having `repo` and `path` attributes
typing: add typehints around status-related methods to context classes
typing: convert from the older `istatus` to the newer `StatusT` naming style
interfaces: add most typehints around `repository.checkcommitpatterns()`
interfaces: add most typehints around `repository.status()`
interfaces: add trivial typehints for transactions to `ilocalrepositorymain`
interfaces: make `transaction` a `ContextManager`
typing: add trivial typehints to `repository.wwritedata()`
typing: add trivial typehints to `repository.wwrite()`
typing: add trivial typehints to `repository.wread()`
typing: add trivial typehints to `repository.pathto()`
typing: add trivial typehints for `repository.wjoin()`
typing: add trivial typehints for `repository.sjoin()`
wireprotov1server: update ersatz ternary operators
wireprotov1peer: update ersatz ternary operators
windows: update ersatz ternary operators
dateutil: update ersatz ternary operators
url: update ersatz ternary operators
subrepo: update ersatz ternary operators
revset: update ersatz ternary operators
profiling: update ersatz ternary operators
posix: update ersatz ternary operators
patch: update ersatz ternary operators
minirst: update ersatz ternary operators
localrepo: update ersatz ternary operators
i18n: update ersatz ternary operators
hgweb: update ersatz ternary operators
help: update ersatz ternary operators
encoding: update ersatz ternary operators
dirstate: update ersatz ternary operators
debugcommands: update ersatz ternary operators
crecord: update ersatz ternary operators
commit: update ersatz ternary operators
commands: update ersatz ternary operators
chgserver: update ersatz ternary operators
archival: update ersatz ternary operators
ui: update ersatz ternary operator to appease pytype 2024.10.11
typing: add a cast to `fastannotate` to appease pytype 2024.10.11
typing: add hints to `localrepo.__getitem__()` for pytype 2024.10.11
pyupgrade: re-convert without the `--keep-runtime-typing` option
pyupgrade: update to Python 3.9 style
typing: fully qualify the use of the `set` primitive in `imanifestdict`
debugnodemap: use explicit noi18n method to defeat checkcode
tests: correct `PYTHONPATH` on Windows when using `pylint`
pyproject: bump `setuptools` requirement to 80.1.0
typing: replace `typelib.CacheStat` with `ICacheStat` protocol class
interfaces: introduce a protocol class for `util.cachestat`
typing: add typehints to config classes in `mercurial/revlog.py`
revlog: convert version features dict to a `TypedDict`
revlog: convert version features dict from bytes to str keys
typing: add more typehints to `mercurial/utils/stringutil.py`
interfaces: drop the unused `iwireprotocolcommandcacher` class
wireprototypes: drop the unused `indefinitebytestringresponse` class
wireprototypes: drop the unused `alternatelocationresponse` class
wireprototypes: drop the unused `encodedresponse` class
typing: re-parameterize `util.sortdict` usage
typing: make `mercurial.util.cowsortdict` a generic class (again)
typing: make `mercurial.util.sortdict` a generic class (again)
ci: print some extra info about $PYTHON when building wheels on macOS
make: preserve `dist/` tree with `make clean` again
packaging: fetch gettext dependencies from m-s.o instead of sourceforge
setup: drop the inaccessible `py2exehacked` code around distutils
docs: update the IRC channel reference in the Windows readme