NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5227 most downloaded on PyPI
Sphinx spelling extension
Last release 10 months ago
28 Nov 2025
Release timing varies
gaps range from 3 weeks to 1.8 years
Nearly every release is documented
notes for 48 of 48 stable releases
4 versions withdrawn
withdrawn after publishing
16 years old
53 releases · first in 2010
Switch to hatch by @dhellmann in #233
Full Changelog: 8.0.1...8.0.2
One column per quarter.
Fix spelling:word-list example by @adamchainz in #217
Full Changelog: 8.0.0...8.0.1
update github action to latest by @dhellmann in #201
Full Changelog: 7.7.0...8.0.0
add git archive settings for setuptools_scm by @dhellmann in #209
Full Changelog: 7.7.1...7.7.2
update github action to latest by @dhellmann in #201
Full Changelog: 7.7.0...7.7.1
Update setup.cfg to use description_file by @mgorny in #196
Full Changelog: 7.6.2...7.7.0
#199 Add spelling:ignore role for marking inline text to not be checked. See /customize for more details.
mergify: apply ci label when changing github action configs by @dhellmann in #192
Full Changelog: 7.6.1...7.6.2
#193 Remove excessive debug printing in andspelling builder implementations.
add check-python-versions to pkglint job by @dhellmann in #185
Full Changelog: 7.6.0...7.6.1
#188 Fix :spelling:word: directives from being printed verbatim in output files.
feature: domain and role by @dhellmann in #184
Convert to use Sphinx domains. Add spelling:word-list directive. Have spelling directive report that it is deprecated.
Add spelling:word role for marking inline text as spelled correctly.
ci: re-enable django integration job by @dhellmann in #176
Full Changelog: 7.5.0...7.5.1
#180 Suppress SystemExit errors in ImportableModuleFilter caused by importing modules that run code on import and exit when that code sees an error. Bug report and reproducer provided by Trevor Gross.
ci: do not require django ci job by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/175
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.4.1...7.5.0
#151 Added configuration option to limit the number of suggestions output. See /customize for more details. Idea contributed by Trevor Gross.
#169 Adds the ability to pass in multiple wordlists via the sphinx command line as -D spelling_word_list_filename=file1,file2.
#36 Include captions of figures in the set of nodes for which the text is checked.
docs: add linkcheck to build by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/163
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.4.0...7.4.1
#160 Fixed issue with the builder crashing when reporting a misspelled word in a python docstring.
handle empty word list by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/154
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.3.3...7.4.0
Fix a problem that occurred when the extra word list is empty and an IndexError is thrown. Prevent the error by checking the contents of the file before using the list.
#153 Ensure the correct relative filename is reported as the location of a misspelled word when the word is in an included file. Log the location ourselves instead of letting the logging system compute it for consistency until the fix is merged into Sphinx.
Change default env list for local tox runs to only include the current python version, as defined by the installation of tox.
Tell tox to pass PYENCHANT_LIBRARY_PATH through to commands. On macOS it can be a little tricky to set up libenchant if your default python does not match the one used by Homebrew for the library. Setting the variable to point to the library fixes that, but we don't want to set it in this file for everyone so use passenv to tell tox to pass the setting through when running the commands for each env.
#159 Report using the line number of the misspelled word instead of using the first line of the node, in both the log and .spelling output file.
Fix to support testing when building RPMs by @avylove in https://github.com/sphinx-contrib/spelling/pull/149
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.3.2...7.3.3
history-update: do not run check if ref is a tag by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/140
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.3.1...7.3.2
#143 Treat __main__ as a special module name that cannot be imported. If the test suite is invoked by running python -m pytest instead of pytest then there will be no __main__ and find_spec() will fail, so this change makes the tests work in both modes.
#144 Fix python filename handling in ImportableModuleFilter. If the word looks like a python module filename, strip the extension to avoid the side-effect of actually importing the module. This prevents, for example, 'setup.py' triggering an import of the setup module during a doc build, which makes it look like Sphinx is complaining about a commandline argument.
Add changelog entry for 7.3.0 by @adamchainz in https://github.com/sphinx-contrib/spelling/pull/136
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.3.0...7.3.1
#137 replace the use of deprecated imp in ImportableModuleFilter with importlib
Spelling edit in README by @mccaffrey-jonathan in https://github.com/sphinx-contrib/spelling/pull/125
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.2.1...7.3.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.2.0...7.2.1
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.2.0...7.2.1
Revert "Replace deprecated imp module with importlib" by @jdufresne in https://github.com/sphinx-contrib/spelling/pull/105
spelling_warning option by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/118Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.0.0...7.1.0
#116 adds a config option spelling_warning that makes individual messages about misspellings warnings. The same change also updates the formatting of the message to make it easier for IDEs to parse, allowing the editor to navigate to the location of the misspelled word. See output-options for details. Contributed by Robert Cohn.
Nothing published for this version
Revert "Replace deprecated imp module with importlib" by @jdufresne in https://github.com/sphinx-contrib/spelling/pull/105
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/7.0.0...7.0.1
#105 reverts a change that switched from imp to importlib. Using importlib.find_spec() is not safe at runtime as it can import modules which will cause side effects within environments.
add support for python 3.9 by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/80
ValueError raised by importlib.util.find_spec by @amureki in https://github.com/sphinx-contrib/spelling/pull/97Full Changelog: https://github.com/sphinx-contrib/spelling/compare/6.0.0...7.0.0
This major release drops support for Python 3.5. This version is not maintained anymore.
Fixes an issue with ellipsis incorrectly being interpreted as relative imports and triggering a ValueError in the ImportableModuleFilter. See #96 for details.
Replace deprecated imp module with importlib by @jdufresne in https://github.com/sphinx-contrib/spelling/pull/73
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.4.0...6.0.0
With this release, sphinxcontrib-spelling moves from beta to stable. It also updates the use of Python 3, including packaging metadata, code style, and test configuration.
Add packaging metadata declaring the project stable.
Add packaging metadata declaring support for Python 3 only.
Add packaging metadata indicating that this is a sphinx extension.
Replace use of deprecated imp module with importlib.
Update use of pyenchant.get_tokenizer() to pass filters argument as a keyword and avoid a runtime warning message.
Remove unused test dependency on fixtures.
Use pyupgrade to modernize the source code.
add contributor filter by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/68
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.3.0...5.4.0
Added a new filter (sphinxcontrib.spelling.filters.ContributorFilter) that treats contributor names extracted from the git history as spelled correctly, making it easier to refer to the names in acknowledgments . Includes a new configuration option, spelling_ignore_contributor_names to enable it.
Ignore files by @sdelliot in https://github.com/sphinx-contrib/spelling/pull/66
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.2.2...5.3.0
Add a configuration option spelling_exclude_patterns to manage skipping spell checking for some input files. The option uses a list of glob-style patterns that are matched against the source file names relative to the source directory. See /customize for more details. Contributed by sdelliot.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.2.1...5.2.2
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.2.1...5.2.2
Updated to only create .spelling output files for inputs that generate spelling warnings. Fixes #63.
only create output files when writing warnings by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/65
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.2.0...5.2.1
fix linter errors by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/57
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.1.2...5.2.0
The builder is now registered using an entry point, so that if the spelling directive is not used in a project sphinxcontrib.spelling does not need to be included explicitly in the extensions list in conf.py in order to use it with the project on the command line.
PyEnchant is an optional dependency. If it is not installed, the spell checker will not work, but the extension can still be initialized. This allows projects that use spell checking to publish their documentation to readthedocs.org, where it is not possible to install PyEnchant.
Restore support for parallel builds. Words that do not appear in any configured dictionary are written to a file named based on the input file, with the .rst extension replaced with .spelling.
update pkglint to check wheels too by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/51
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.1.1...5.1.2
Mark as unsafe for parallel builds (contributed by Jared Dillard)
Add -W arg to sphinx-build in docs so warnings cause error (contributed by Elsa Gonsiorowski, PhD)
switch from testrepository to pytest for running tests by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/46
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.1.0...5.1.1
Add an option to show the line containing a misspelling for context by @huonw in https://github.com/sphinx-contrib/spelling/pull/44
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/5.0.0...5.1.0
Add an option to show the line containing a misspelling for context (contributed by Huon Wilson)
No Python 2.7 support anymore. by @thet in https://github.com/sphinx-contrib/spelling/pull/33
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/4.3.0...5.0.0
Drop Python 2.7 support. (contributed by Johannes Raggam)
pyenchant is now maintained (contributed by Adam Johnson
Logging: use warning() instead of its deprecated alias by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/31
warning() instead of its deprecated alias by @dhellmann in https://github.com/sphinx-contrib/spelling/pull/31Full Changelog: https://github.com/sphinx-contrib/spelling/compare/4.2.1...4.3.0
Logging: use warning() instead of its deprecated alias (contributed by Sergey Kolosov)
Support additional contractions (contributed by David Baumgold)
require Sphinx >= 2.0.0
declare support for Python 3.6
Remove usage of deprecated logging API by @timgraham in https://github.com/sphinx-contrib/spelling/pull/24
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/4.2.0...4.2.1
fix remaining logging issue (contributed by Timotheus Kampik)
Remove usage of deprecated logging API (contributed by Tim Graham)
Don't use mutable default argument by @eriol in https://github.com/sphinx-contrib/spelling/pull/12
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/4.1.0...4.2.0
Fix a bug with empty word lists (contributed by FabioRosado)
Update dependency management to use setuptools extras
Document how to create multiple wordfiles (contributed by FabioRosado)
Note that PyEnchant is unmaintained and fix links (contributed by Marti Raudsepp)
Don’t use mutable default argument (contributed by Daniele Tricoli)
Change links from BitBucket to GitHub by @dasevilla in https://github.com/sphinx-contrib/spelling/pull/7
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/4.0.1...4.1.0
Make it possible to provide several wordlists (contributed by Tobias Olausson)
Update developer documentation (contributed by Tobias Olausson)
Update home page link (contributed by Devin Sevilla)
Fixes #1 -- disable smart quotes so that we can recognize contractions/posessives correctly by @alex in https://github.com/sphinx-contrib/spelling/pul
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/4.0.0...4.0.1
use the right method to emit warnings
disable smart quotes so that we can recognize contractions/possessives correctly (contributed by Alex Gaynor)
Use warning is error by @stephenfin in https://github.com/sphinx-contrib/spelling/pull/4
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/3.0.0...4.0.0
Don’t fail by default (contributed by Stephen Finucane)
Mark the extension as safe for parallel reading (contributed by Alex Gaynor)
be more verbose about configuration options
switch to testrepository for running tests
update Python 3.3 to 3.5
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.3.0...3.0.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.3.0...3.0.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.2.0...2.3.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.2.0...2.3.0
make it possible to specify tokenizer #7 (contributed by Timotheus Kampik)
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.1.1...2.2.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.1.1...2.2.0
Use https with pypi.python.org package name checker (contributed by John-Scott Atlakson)
Removed unnecessary shebang lines from non-script files (contributed by Avram Lubkin)
Re-enable the PyEnchant dependency (contributed by Julian Berman)
Fixed issue with six under Python 3.4
Fixed issue with six under Python 3.4
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.1...2.1.1
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.1...2.1.1
Use str.isupper() instead of ad-hoc method
fix syntax for tags directive
Removed no more used CHANGES file
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.0...2.1
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/2.0...2.1
Fix unicode error in PythonBuiltinsFilter.
Make error output useful in emacs compiler mode
Only show the words being added to a local dictionary if debugging is enabled.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.4...2.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.4...2.0
Add Python 3.3 support.
Add PyPy support.
Use pbr for packaging.
Update tox config to work with forked version of PyEnchant until changes are accepted upstream.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.2...1.4
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.2...1.4
Handle text nodes without parents.
Handle text nodes without parents. (#19) - Include the input document name in the console output. - Use the Sphinx wrapper for registering a directive.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.1.1...1.2
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.1.1...1.2
local dictionary created by the spelling directive.
Add title nodes to the list of node types checked for spelling. Resolves issue #17.
Add test/test_wordlist.txt to the manifest so it is included in the source distribution and the tests will pass. Resolves issue #17.
Documentation patch from Hank Gay.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.1...1.1.1
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.1...1.1.1
spelling directive is used.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.0...1.1
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/1.0...1.1
properly.
Add an option to treat CamelCase names as spelled properly.
Add an option to treat acronyms as spelled properly.
Add an option to treat Python built-ins as spelled properly.
Add an option to treat names that can be found as modules as spelled properly.
Add an option to let the user provide a list of other filter classes for the tokenizer.
Add spelling directive for passing local configuration settings to the spelling checker. This version allows setting a list of words known to be spelled correctly.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/0.2...1.0
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/0.2...1.0
class.
Show the file and line number of any words not appearing in the dictionary, instead of the section title.
Log the file, line, and unknown words as the documents are processed.
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/0.1...0.2
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/0.1...0.2
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/0.0...0.1
Full Changelog: https://github.com/sphinx-contrib/spelling/compare/0.0...0.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →