⏩ Upgrading
- 🏷️ Test first on a branch by changing your workflow tags/references to this release. See 🐣 Breaking Changes for how to adapt your workflow.
🐣 Breaking Changes
use_magic_file
is now enabled by default
Background
magic file enables check-spelling to automatically recognize more files to exclude. It has been pretty reliable/helpful.
Migrating
When you upgrade, if there are files that magic file detects as worthy of excluding, it will suggest adding them to excludes. If they turn out to be files that shouldn't be excluded, you can add use_magic_file: 0
to turn it off (and please file an issue with a sample showing why the files were falsely suggested for exclusion).
cache-dictionaries
has been removed
... along with all other caching -- check-spelling should be faster now than in previous versions, so the lack of this caching shouldn't be a concern.
Migrating
If you're using this setting, just remove it (you'll get a warning from GitHub when the workflow runs).
check-spelling now requires actions/upload-artifact@v4
/ actions/checkout@v4
It is quite possible that GHES does not support these yet.
Migrating
Users of GHES instances that don't have access to those actions should not upgrade until they're available.
Comment block before forbidden-patterns is now shown when patterns are tripped
When a forbidden-pattern matches content, lines immediately preceding it that start with #
will be shown in the GitHub Step Summary.
Migrating
You should change such comments to start with #
(a single #
that isn't followed by a space is assumed to be a commented out pattern). And you should ensure that comments are easy for readers to understand.
For example, in spell-check-this, lines that used to say # s.b. ...
have been changed to # Should be ...
See 💬 Report associated comment for forbidden patterns
Events not listed in warnings and notices will not be promoted to errors
Events can now be categorized directly. In previous versions, anything not set via warnings
/notices
would be promoted to errors
. In this release, events have default states and if you want to make something else an error, you need to set it via errors
.
https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Set-event-severity
- introduce
ignored
events (this takes priority over the other cases) - introduce
errors
events (this allows explicit promotion toerror
) - fixes using
notices
to demote events
Migrating
If you're using warnings:
/notices:
, you can consider moving things to ignored:
and errors:
instead.
If you like the defaults, you can also just remove the warnings:
/notices:
fields.
✨ Highlights
-
Fix unknown word reporting when one of the items is
x'abc
-
Add
inputs.wait-for-sarif-processing
-
Improve talk-to-bot message for step summary
-
Provide better messaging for checkout failures
- Prevent merge conflicts/missing merge commits with sarif reporting enabled from triggering a failure
-
Drop html dictionaries that are proper subsets
-
Include commands to create a merge when someone creates a PR to a branch with check-spelling and their head branch doesn't have check-spelling.
-
Remove confusing warning message
-
Automatically detect available CPUs
GitHub runners now have 4 cpu for open source repositories instead of 2 for Windows/Linux:
https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/ -
Replace actions/download-artifact with
gh
-
Detect missing permissions:
actions: read
Reference:
https://github.com/check-spelling/check-spelling/wiki/Workflow-Permissions#contents-read -
Add support for
checkout-token
The expectation is that this be a fine-grained token PAT with just Contents: (Read-only|Read and write) as applicable
-
Add support for
sarif-token
The expectation is that this be a fine-grained token PAT with just "Code scanning alerts"
-
Warn about compounded words in expect files
-
Add support for comments in expect files
-
Add
inputs.unrecognized-words-before-collapsing
To have check-spelling always collapse the unknown word list, set the value to
0
. -
Explain how case folding is handled
-
Rewrite previously acknowledged message
-
Add summary for forbidden patterns
-
Suggest patterns for files without unknown words
-
Tolerate 502 errors from GitHub
-
Improve handling for PRs from forks
-
Improve links to PR checks from Push event
-
Handle
suppress_push_for_open_pull_request
when there's noon:
/pull_request(_target)
event handler -
Use
⚠️ icon for warnings -
Add support for running unknown-words.sh standalone -- without a GitHub environment
-
Remove GitHub caching
-
Improve
apply.pl
Structure apply.pl around Capture::Tiny, but don't actually use it because it isn't included with Perl.
Known Issues
- Running the check-spelling action on Windows runners doesn't work
- This appears to be an incompatibility involving StrawberryPerl, cpanm, and ExtUtils::Manifest
- Note that running check-spelling on a GitHub hosted runner other than ubuntu-* doesn't really
make sense as the Windows and macOS runners are much more expensive per minute and check-spelling
itself doesn't need any facilities from the OS -- it should be checking the spelling of files
as they are present in commits. - While the check-spelling action won't work on Windows, apply.pl and the output check-spelling produces are expected to work on Windows.
Full Changelog
Note that there are 200 commits in this release, the above is not a complete list of features.