Skip to content

Commit d6c2d02

Browse files
committed
Merge branch 'release-2.3' into stable
2 parents 1b2d5e3 + d505c2f commit d6c2d02

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+1598
-672
lines changed

.github/FUNDING.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ open_collective: # Replace with a single Open Collective username
66
ko_fi: # Replace with a single Ko-fi username
77
tidelift: pypi/sphobjinv # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
88
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9-
liberapay: bskinn # Replace with a single Liberapay username
9+
liberapay: # bskinn # Replace with a single Liberapay username
1010
issuehunt: # Replace with a single IssueHunt username
1111
otechie: # Replace with a single Otechie username
12-
custom: ['https://paypal.me/btskinn'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
12+
custom: # ['https://paypal.me/btskinn'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/workflows/ci_tests.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,16 @@ jobs:
1010

1111
steps:
1212
- name: Check out repo
13-
uses: actions/checkout@v2
13+
uses: actions/checkout@v3
1414

1515
- name: Install Python
16-
uses: actions/setup-python@v2
16+
uses: actions/setup-python@v4
1717
with:
1818
python-version: '3.10'
19+
cache: 'pip'
20+
cache-dependency-path: |
21+
requirements-ci.txt
22+
requirements-flake8.txt
1923
2024
- name: Update pip & setuptools
2125
run: python -m pip install -U pip setuptools
@@ -59,17 +63,21 @@ jobs:
5963
runs-on: ubuntu-latest
6064
strategy:
6165
matrix:
62-
python: ['3.6', '3.7', '3.8', '3.9']
66+
python: ['3.6', '3.7', '3.8', '3.9', '3.11']
6367
if: "!contains(github.event.head_commit.message, '[skip ci]')"
6468

6569
steps:
6670
- name: Check out repo
67-
uses: actions/checkout@v2
71+
uses: actions/checkout@v3
6872

6973
- name: Install Python
70-
uses: actions/setup-python@v2
74+
uses: actions/setup-python@v4
7175
with:
7276
python-version: ${{ matrix.python }}
77+
cache: 'pip'
78+
cache-dependency-path: |
79+
requirements-ci.txt
80+
requirements-flake8.txt
7381
7482
- name: Update pip & setuptools
7583
run: python -m pip install -U pip setuptools

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repos:
99
- id: check-yaml
1010
- id: check-added-large-files
1111
- repo: https://github.com/psf/black
12-
rev: '22.1.0'
12+
rev: '22.3.0'
1313
hooks:
1414
- id: black
1515
- repo: https://github.com/tox-dev/pyproject-fmt

.readthedocs.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,22 @@
55
# Required
66
version: 2
77

8-
# Build with sphinx
9-
sphinx:
10-
configuration: doc/source/conf.py
11-
12-
# Build all the things
13-
formats: all
8+
# Build and VM configuration
9+
build:
10+
os: 'ubuntu-22.04'
11+
tools:
12+
python: '3.10'
1413

15-
# Python and requirements
14+
# Python requirements
1615
python:
17-
version: '3.8'
1816
install:
1917
- requirements: requirements-rtd.txt
2018
- method: pip
2119
path: .
2220

21+
# Build with sphinx
22+
sphinx:
23+
configuration: doc/source/conf.py
24+
25+
# Build all the things
26+
formats: all

AUTHORS.md

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
11
Credits
22
=======
33

4-
`sphobjinv` is authored and maintained by Brian Skinn ([Blog](https://bskinn.github.io)) ([Twitter](https://twitter.com/btskinn)).
4+
`sphobjinv` is authored and maintained by Brian Skinn
5+
([Blog](https://bskinn.github.io)) ([Twitter](https://twitter.com/btskinn)).
56

6-
The idea for the project came about as I was starting to deepen my expertise with Sphinx, and found it
7-
hugely frustrating to debug cross-references to objects in code. I discovered the `objects.inv` files
8-
relatively quickly, but struggled with trying to get at the actual object information.
9-
At the time (2016), the ability to [execute `sphinx.ext.intersphinx` as a module](https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#showing-all-links-of-an-intersphinx-mapping-file)
10-
hadn't yet been documented (that happened in [2018](https://github.com/sphinx-doc/sphinx/commit/7aaba1758a4622298d15339fddd8556eb221af86)),
11-
and a fair bit of searching didn't turn up anything promising.
7+
The idea for the project came about as I was starting to deepen my expertise
8+
with Sphinx, and found it hugely frustrating to debug cross-references to
9+
objects in code. I discovered the `objects.inv` files relatively quickly, but
10+
struggled with trying to get at the actual object information. At the time
11+
(2016), the ability to
12+
[execute `sphinx.ext.intersphinx` as a module](https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#showing-all-links-of-an-intersphinx-mapping-file)
13+
hadn't yet been documented (that happened in
14+
[2018](https://github.com/sphinx-doc/sphinx/commit/7aaba1758a4622298d15339fddd8556eb221af86)),
15+
and a fair bit of searching didn't turn up anything promising.
1216

13-
Once I dug into the Sphinx code to figure out how to zlib-decompress the object data, it was relatively straightforward
14-
to put together the initial v1.0 of `sphobjinv`, which could only (de)compress `objects.inv` files to/from plaintext.
15-
As I started to use it regularly in my own documentation work, it became clear that there would be significant advantages
16-
from also implementing functionality to assist with object searches, especially in large documentation sets.
17-
Also, it seemed likely that a robust API for creation/manipulation of inventory contents would be useful, in order to
18-
assist with things like scraping a non-Sphinx website to generate an `objects.inv` for cross-referencing in other docs.
19-
This led to the current object-oriented API of `sphobjinv` v2.x.
17+
Once I dug into the Sphinx code to figure out how to zlib-decompress the object
18+
data, it was relatively straightforward to put together the initial v1.0 of
19+
`sphobjinv`, which could only (de)compress `objects.inv` files to/from
20+
plaintext. As I started to use it regularly in my own documentation work, it
21+
became clear that there would be significant advantages to also implement object
22+
searches, especially in large documentation sets. Also, it seemed likely that a
23+
robust API for creation/manipulation of inventory contents would be useful, in
24+
order to assist with things like scraping a non-Sphinx website to generate an
25+
`objects.inv` for cross-referencing in other docs. This led to the current
26+
object-oriented API of `sphobjinv` v2.x.
2027

21-
While there are [numerous](https://github.com/bskinn/sphobjinv/issues) possible enhancements to the project,
22-
I'm quite satisfied with its ease of use and usefulness, at least for my purposes, and thus consider it fully stable.
23-
I'm always glad to receive feature requests and bug reports, though.
28+
While there are [numerous](https://github.com/bskinn/sphobjinv/issues) possible
29+
enhancements to the project, I'm satisfied with its ease of use and usefulness,
30+
at least for my purposes, and thus consider it fully stable. I'm always glad to
31+
receive feature requests and bug reports, though.

CHANGELOG.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,110 @@ and this project strives to adhere to
77
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

99

10+
### [2.3] - 2022-11-08
11+
12+
#### Added
13+
14+
* The CLI now prints the project name and version for the `objects.inv` as
15+
part of the 'suggest' mode output.
16+
17+
* The CLI now prints an inferred `intersphinx_mapping` entry for a remote
18+
docset as part of the 'suggest' mode output, where such inference is
19+
possible. The output from this mapping inference was added to the relevant
20+
tests, and a couple of unit tests on some basic pieces of functionality were
21+
written. ([#149](https://github.com/bskinn/sphobjinv/issues/149))
22+
23+
* The CLI now provides considerably more information about what is happening
24+
with the URLs it checks when trying to retrieve a remote inventory.
25+
([#99](https://github.com/bskinn/sphobjinv/issues/99), plus more)
26+
27+
* A new CLI option, `-p`/`--paginate`, enables paging of the results from the
28+
`suggest` feature. ([#70](https://github.com/bskinn/sphobjinv/issues/70))
29+
30+
#### Fixed
31+
32+
* The regex for parsing object lines from decompressed inventories now
33+
correctly processes `{role}` values that contain internal colons.
34+
35+
* CLI corner case where options are passed but no subparser is specified
36+
now results in a clean error-exit, instead of an exception.
37+
([#239](https://github.com/bskinn/sphobjinv/issues/239))
38+
39+
#### Documentation
40+
41+
* Updated doctests to reflect the new v22.1 attrs `objects.inv` used for
42+
demonstration purposes.
43+
44+
* Updated `syntax.rst` to indicate that the `{role}` in an inventory object
45+
MAY contain a colon.
46+
47+
* Added new 'CLI implementation' pages for the new modules, downstream of the
48+
refactoring of the CLI 'convert' and 'suggest' code.
49+
50+
* Revised the intro paragraph of the 'CLI usage' page to more clearly emphasize
51+
the two CLI subcommands and the links to their respective docs pages.
52+
53+
* Fixed a mistake in the CLI help info for the `--url` argument to `convert`.
54+
55+
#### Tests
56+
57+
* Various tests were updated to reflect the contents of the new v22.1 attrs
58+
`objects.inv` introduced to replace the previous v17.2 inventory.
59+
60+
* A modern Sphinx `objects.inv` (v6.0.0b) was added to `tests/resource` as
61+
`objects_sphinx.inv`, and the previous v1.6.6 was renamed to
62+
`objects_sphinx_1_6_6.inv`.
63+
64+
* The 'valid objects' test cases were updated to reflect the possibility for a colon within `{role}`:
65+
66+
* The colon-within-`{role}` test case was moved from 'invalid' to 'valid'.
67+
68+
* The colon-within-`{domain}` test case was also moved from 'invalid' to
69+
'valid', but with an annotation added to indicate that it's not actually
70+
viable---it will actually be interpreted incorrectly, with the first
71+
portion of the colon-containing `{domain}` imported as `{domain}`, and the
72+
remainder imported as part of `{role}`.
73+
74+
#### Internal
75+
76+
* Refactor CLI code to place the 'convert' and 'suggest' implementations in
77+
their own modules.
78+
79+
* Refactor CLI 'suggest' code to the main `do_suggest()` function and a
80+
handful of sub-functions.
81+
82+
* Rename the `log_print()` CLI helper function to the more-descriptive
83+
`print_stderr()`.
84+
85+
* Bump development Sphinx version to v5.3.
86+
87+
* Bump flake8 version to >=5, due to the absorption of flake8-colors
88+
colorization functionality. The flake8/tox config was updated accordingly.
89+
90+
* Bump pre-commit black hook to v22.3.0.
91+
92+
* Remove PyPy and Python 3.6 from Azure Pipelines test matrix.
93+
94+
* Revise `__version__` retrieval in `setup.py` to use an intermediate
95+
dictionary with `exec()`.
96+
97+
* Update `setup.cfg` to use `license_files`, instead of the deprecated
98+
`license_file`.
99+
100+
#### Administrative
101+
102+
* Apply CC BY 4.0 to documentation and docstrings and update project files to
103+
reflect.
104+
105+
10106
### [2.2.2] - 2022-03-22
11107

108+
#### Changed
109+
110+
* CLI 'suggest' results output now displays more information about
111+
the total number of objects in the inventory, the search score threshold,
112+
and the number of results falling at/above that threshold.
113+
12114
#### Fixed
13115

14116
* UnicodeDecodeErrors are ignored within the vendored `fuzzywuzzy` package

0 commit comments

Comments
 (0)