Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 21:06:34 -0500] rev 44031
ui: add the ability to apply `defaultrc` configs from resources
We will want the ability to cat out these resources, but the same would apply to
templates, so I'm going to wait for the dust to settle on that. Reading the
default config directly from the filesystem is still in place for now.
Differential Revision: https://phab.mercurial-scm.org/D7776
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 20:51:44 -0500] rev 44030
ui: refactor `readconfig()` into a form that can consume resources
The old form can't completely go away, because files outside of packages still
need to be read. The name passed in here is a tuple of `package name, resource`
as needed by the resource API.
I like the idea of stating the config file is embedded in the executable by
listing is as `exe!package.resource`. This would be consistent with how
`debuginstall` points to the executable for the python executable, lib, and
installed modules. While in practice the filesystem path is available from the
backing ResourceReader when the resource is opened, it is a relative path on py2
and absolute on py3. Further, while this would show in the `hg config` output
for each option if set as such here, it doesn't show in the `reading from...`
line when `--debug` is used. The file isn't actually open where that prints, so
there's no way I see to get that info there. So I opted for the simple prefix
to distinguish resources from files.
Differential Revision: https://phab.mercurial-scm.org/D7775
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 20:35:34 -0500] rev 44029
resourceutil: implement `contents()` to iterate over resources in a package
Differential Revision: https://phab.mercurial-scm.org/D7774
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 20:32:56 -0500] rev 44028
resourceutil: implement `is_resource()`
This will be needed when iterating resources.
Differential Revision: https://phab.mercurial-scm.org/D7773
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 23:35:13 -0500] rev 44027
resourceutil: don't limit resources to the `mercurial` package
This should make things a little clearer, in that it now requires the full
package name to access a resource. But the real motivation is that
`extensions._disabledpaths()` walks the `hgext` directory looking for bundled
extensions. This in turn feeds, among other things:
1) Listing disabled extensions in `hg help extensions`
2) Indicating that an unknown command is in a non-enabled extension
3) Displaying help for non-enabled extensions
4) Generating documentation
5) Announcing LFS is auto-enabled (or not) when cloning from an LFS source
The filesystem based ResourceReader will happily return *.py and *.pyc, but the
one supplied by PyOxidizer doesn't. Presumably we can change that. The only
other idea I had here is for setup.py to generate a text file containing the
list of extensions, but that doesn't seem great when running from source.
Differential Revision: https://phab.mercurial-scm.org/D7772
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 23:08:57 -0500] rev 44026
setup: include `defaultrc` in the package list
This is needed to access the config files via the resourceutil framework, which
is needed to embed the config files when uing PyOxidizer.
Differential Revision: https://phab.mercurial-scm.org/D7771
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 24 Dec 2019 20:17:40 +0300] rev 44025
tests: update test-releasenotes-formatting.t output
The output seems to be left outdated because running this test requires
fuzzy-wuzzy which is not generally installed.
Differential Revision: https://phab.mercurial-scm.org/D7723
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 02:11:51 -0500] rev 44024
tests: fix a copy/paste name duplication in storage.py
Flagged by PyCharm as a redeclared name without usage, because the name matches
the function immediately preceding it. But since this differs by doing regular
reads instead of raw reads, I assume we still want it. But I don't see either
function being called anywhere.
Differential Revision: https://phab.mercurial-scm.org/D7769
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 02:02:34 -0500] rev 44023
commit: change default `editor` parameter to None
Flagged by PyCharm as a boolean not being callable later where it is used.
There's no actual bug here because of `if editor` checks before using.
Differential Revision: https://phab.mercurial-scm.org/D7768
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 01:51:17 -0500] rev 44022
cleanup: drop redundant character escapes outside of `[]`
Flagged by PyCharm. `@`, `:`, `<`, `>`, and `{` aren't special characters.
(I'm a bit surprised that it doesn't also want to unescape `}` in schemes.py.)
Differential Revision: https://phab.mercurial-scm.org/D7767
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 01:35:05 -0500] rev 44021
cleanup: drop redundant character escapes from `[]` character sets
Flagged by PyCharm. Most special characters lose their special meaning inside
square brackets. The `-` in util.py doesn't need to be escaped because it is
the last character in the set.
Differential Revision: https://phab.mercurial-scm.org/D7766
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 01:12:19 -0500] rev 44020
cleanup: replace contiguous spaces in regex patterns with an explicit count
Flagged by PyCharm, this form should be more readable.
Differential Revision: https://phab.mercurial-scm.org/D7765
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Dec 2019 12:17:02 -0500] rev 44019
mq: avoid using `__file__` to compare modules
This fixes ~70 tests when using an oxidized executable, bringing the current
failure count down to 92 (with 110 skips) when templates/ is copied next to the
executable.
Differential Revision: https://phab.mercurial-scm.org/D7778
Matt Harbison <matt_harbison@yahoo.com> [Tue, 31 Dec 2019 16:24:38 -0500] rev 44018
util: avoid referencing `time.clock()` on Windows when missing (
issue6238)
It's been removed in 3.8, and issues a deprecation warning since 3.3.
Differential Revision: https://phab.mercurial-scm.org/D7780
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Dec 2019 23:53:53 -0500] rev 44017
py3: replace `time.clock()` with `time.perf_counter()`
The former was removed in 3.8. The util function uses `time.clock()` if the
latter is unavailable.
Differential Revision: https://phab.mercurial-scm.org/D7779