-
Notifications
You must be signed in to change notification settings - Fork 262
refactor: most pub use lines in mod.rs not needed
#2259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
elijah-potter
merged 3 commits into
Automattic:master
from
hippietrail:more-consistent-linters
Nov 28, 2025
Merged
refactor: most pub use lines in mod.rs not needed
#2259
elijah-potter
merged 3 commits into
Automattic:master
from
hippietrail:more-consistent-linters
Nov 28, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
elijah-potter
approved these changes
Nov 28, 2025
Collaborator
elijah-potter
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you're right. In the beginning, I had this idea that downstream consumers of harper-core would want access to the individual rules. That clearly hasn't been the case beyond what is available as configuration on the curated LintGroup.
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Dec 12, 2025
⚠️ **CAUTION: this is a major update, indicating a breaking change!**⚠️ This MR contains the following updates: | Package | Update | Change | |---|---|---| | [Automattic/harper/harper-ls](https://github.com/Automattic/harper) | major | `v0.73.0` -> `v1.2.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>Automattic/harper (Automattic/harper/harper-ls)</summary> ### [`v1.2.0`](https://github.com/Automattic/harper/releases/tag/v1.2.0) [Compare Source](Automattic/harper@v1.1.0...v1.2.0) #### What's Changed - feat(core): many new rules by [@​elijah-potter](https://github.com/elijah-potter) in [#​2292](Automattic/harper#2292) - fix: flag "piece of advise" by [@​hippietrail](https://github.com/hippietrail) in [#​2266](Automattic/harper#2266) - fix(web): problems with the title casing page by [@​elijah-potter](https://github.com/elijah-potter) in [#​2293](Automattic/harper#2293) - feat: implement [#​1135](Automattic/harper#1135) missing "be" by [@​hippietrail](https://github.com/hippietrail) in [#​2296](Automattic/harper#2296) - fix(core): add `canonicalize` to the dictionary by [@​claydugo](https://github.com/claydugo) in [#​2294](Automattic/harper#2294) - feat: implement [#​1036](Automattic/harper#1036) join prefix to word by [@​hippietrail](https://github.com/hippietrail) in [#​2299](Automattic/harper#2299) - feat(core): create rule to title-case headings by [@​elijah-potter](https://github.com/elijah-potter) in [#​2297](Automattic/harper#2297) - build(deps): bump unicode-script from 0.5.7 to 0.5.8 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2305](Automattic/harper#2305) - build(deps): bump criterion from 0.8.0 to 0.8.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2306](Automattic/harper#2306) - build(deps): bump tree-sitter-bash from 0.25.0 to 0.25.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2304](Automattic/harper#2304) - fix(ls): prevent panic when workspace/configuration is unsupported by [@​mcecode](https://github.com/mcecode) in [#​2309](Automattic/harper#2309) - Irregular verbs by [@​hippietrail](https://github.com/hippietrail) in [#​2285](Automattic/harper#2285) - Fascinated about by [@​hippietrail](https://github.com/hippietrail) in [#​2319](Automattic/harper#2319) - feat(obsidian): add button to disable rules from within popup by [@​elijah-potter](https://github.com/elijah-potter) in [#​2300](Automattic/harper#2300) - chore: add weigh/weight to noun/verb confusion by [@​hippietrail](https://github.com/hippietrail) in [#​2315](Automattic/harper#2315) - refactor: made a new `lint_group` from two mass noun linters by [@​hippietrail](https://github.com/hippietrail) in [#​2290](Automattic/harper#2290) - feat: typo every → ever by [@​hippietrail](https://github.com/hippietrail) in [#​2311](Automattic/harper#2311) - doc(core): clarify difference between chunker NPs and pattern NPs by [@​elijah-potter](https://github.com/elijah-potter) in [#​2312](Automattic/harper#2312) - feat: PIN number → PIN / personal identification number etc. by [@​hippietrail](https://github.com/hippietrail) in [#​2318](Automattic/harper#2318) - feat: brandish→brand by [@​hippietrail](https://github.com/hippietrail) in [#​2325](Automattic/harper#2325) - feat: wreck havoc→wreak havoc by [@​hippietrail](https://github.com/hippietrail) in [#​2321](Automattic/harper#2321) - fix(chrome-ext): text in dark mode not legible by [@​elijah-potter](https://github.com/elijah-potter) in [#​2326](Automattic/harper#2326) - feat: adding prefixes to dictionary by [@​hippietrail](https://github.com/hippietrail) in [#​2212](Automattic/harper#2212) **Full Changelog**: <Automattic/harper@v1.1.0...v1.2.0> ### [`v1.1.0`](https://github.com/Automattic/harper/releases/tag/v1.1.0) [Compare Source](Automattic/harper@v1.0.0...v1.1.0) #### What's Changed - build(deps): bump tracing from 0.1.41 to 0.1.43 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2271](Automattic/harper#2271) - build(deps): bump indexmap from 2.12.0 to 2.12.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2274](Automattic/harper#2274) - build(deps): bump criterion from 0.7.0 to 0.8.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2272](Automattic/harper#2272) - refactor: upgrade `Expatriate` to `phrase_set_corrections` by [@​hippietrail](https://github.com/hippietrail) in [#​2265](Automattic/harper#2265) - build(deps): bump tracing-subscriber from 0.3.20 to 0.3.22 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2273](Automattic/harper#2273) - fix(dict): update webpack entry by [@​mcecode](https://github.com/mcecode) in [#​2278](Automattic/harper#2278) - fix(core): address edge cases in `title_case` module by [@​elijah-potter](https://github.com/elijah-potter) in [#​2284](Automattic/harper#2284) - fix(chrome-ext): return focus to source element when `SuggestionBox` is closed by [@​elijah-potter](https://github.com/elijah-potter) in [#​2282](Automattic/harper#2282) - fix(core): ignore inflections of `be` in compound noun rule by [@​elijah-potter](https://github.com/elijah-potter) in [#​2281](Automattic/harper#2281) - fix(core): add `bypassable` to the dictionary by [@​elijah-potter](https://github.com/elijah-potter) in [#​2280](Automattic/harper#2280) - feat: copywritten → copyrighted by [@​hippietrail](https://github.com/hippietrail) in [#​2276](Automattic/harper#2276) - feat: add `chroot` to dictionary by [@​jvoisin](https://github.com/jvoisin) in [#​2270](Automattic/harper#2270) - refactor: new `SequenceExpr` and `CharStringExt` methods by [@​hippietrail](https://github.com/hippietrail) in [#​2269](Automattic/harper#2269) - feat(ls): add `octo` as a supported filetype by [@​elijah-potter](https://github.com/elijah-potter) in [#​2279](Automattic/harper#2279) - fix(core): issues with spell check by [@​elijah-potter](https://github.com/elijah-potter) in [#​2288](Automattic/harper#2288) - feat: wish x can → wish x could by [@​hippietrail](https://github.com/hippietrail) in [#​2291](Automattic/harper#2291) - fix(core): ensure `news` isn't corrected to `news` by [@​elijah-potter](https://github.com/elijah-potter) in [#​2289](Automattic/harper#2289) - fix(core): fix problems with the `NeedToNoun` rule by [@​elijah-potter](https://github.com/elijah-potter) in [#​2287](Automattic/harper#2287) **Full Changelog**: <Automattic/harper@v1.0.0...v1.1.0> ### [`v1.0.0`](https://github.com/Automattic/harper/releases/tag/v1.0.0) [Compare Source](Automattic/harper@v0.73.0...v1.0.0) ### Harper Turns 1.0 Today Today, we published [Harper's `1.0.0` release](https://github.com/Automattic/harper/releases/tag/v1.0.0). It's a huge milestone, and in this post I'd like to discuss why it took so long, why we're doing it now, and what's next for the project. #### A Round of Applause, Please As I mentioned: This is a huge step for the project. Before I say anything else, I want to take a moment to appreciate the collective work of our many contributors. It has taken many iterations to get to where we are today, and it wouldn't be possible without the community's effort and feedback. <figure class="wp-block-image"><img src="https://contrib.rocks/image?repo=automattic/harper" alt=""/></figure> #### Why Now? Until today, I've kept Harper in a pre-1.0 state for one reason: I wanted to move fast. More specifically, I wanted the freedom to build and break things as many times as I needed to. I knew that it would take many cycles of building and rebuilding arrive at a robust system that addresses the people's need for a private writing tool. I believe that building something good can often mean taking the bad parts out. Once a project is "1.0", it becomes much harder to remove things. Naturally, that pushed me to hold off on "going 1.0". Of course, that didn't stop us from getting the software into the hands of users. Today, tens of thousands of people benefit from Harper's fast and private grammar checking in Chrome, Obsidian, VS Code, and Neovim (among many others). We've racked up hundreds of thousands of downloads before ever slapping anything other than zero before the first decimal point of our version number. I'm sure your thinking: "Elijah! Get to the point!" Fine. The reason we're doing this now, rather than earlier or later, is because our priorities have just recently changed. For one, Harper's API has been rock-solid for a few months now, which means we can safely say that our need to move fast in that area has diminished. The opportunity cost of abiding by a stable API has gone down. Secondly, I've been hearing progressively more interest from potential contributors and consumers who want to put Harper directly into their own apps or services. They have the desire to help make Harper more widespread, but they can't commit to it unless Harper commits to a stable API. That's what we're doing today. I can imagine a future where Harper is natively integrated everywhere: learning management systems, document editors, messaging platforms, or even operating systems. But great things take time. Today, we're taking a huge step in setting Harper up for the long-term. #### What Do I Need to Know? As an end-user, not much changes. From here on out, we'll be pushing quality-of-life tweaks and bugfixes at a faster rate, all while improving Harper's capabilities across the board. As a contributor, the patch review process might get a little bit more strict. We'll be focusing more on improving the quality of our code, rather than the amount. If your MRs are likely to result in a breaking change, expect copious notes and possible delays before we hit "merge". As an integrator, you win more than anyone. If you'd like to include Harper in your application, let us know and we'll do our best to make it easy for you. Take a look at [our versioning policy](https://writewithharper.com/docs/about#Versioning-Policy) if that sort of thing gives you peace of mind. #### Where Can I Get Further Updates? That depends on the level of verbosity your interested in. For those who want to know about everything I'm currently working, subscribe to [my blog](https://elijahpotter.dev/). For everyone else, our [patch notes in GitHub](https://github.com/automattic/harper/releases) should suffice. #### What's Changed Now that all of that has been said. Let's get back to our regularly schedule programming. - build(deps): bump open from 5.3.2 to 5.3.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2235](Automattic/harper#2235) - refactor: improvements to `ProgressiveNeedsBe` by [@​hippietrail](https://github.com/hippietrail) in [#​2232](Automattic/harper#2232) - feat: filter out unknown `only` and `ignore` rules only once by [@​hippietrail](https://github.com/hippietrail) in [#​2231](Automattic/harper#2231) - build(deps): bump hashbrown from 0.16.0 to 0.16.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2237](Automattic/harper#2237) - feat: create component library + use in relevant places by [@​elijah-potter](https://github.com/elijah-potter) in [#​2229](Automattic/harper#2229) - build(deps): bump clap from 4.5.51 to 4.5.53 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2236](Automattic/harper#2236) - fix(chrome-ext): ignore inline markup in `contenteditable` fields by [@​elijah-potter](https://github.com/elijah-potter) in [#​2242](Automattic/harper#2242) - feat: add technical words to dictionary by [@​rauletaveras](https://github.com/rauletaveras) in [#​2219](Automattic/harper#2219) - fix: 15 `ExprLinter`s in `lint_group.rs` wrongly use `insert_struct_rule!` by [@​hippietrail](https://github.com/hippietrail) in [#​2249](Automattic/harper#2249) - test: [#​2233](Automattic/harper#2233) and [#​1097](Automattic/harper#1097) by [@​elijah-potter](https://github.com/elijah-potter) in [#​2239](Automattic/harper#2239) - test(core): check that [#​1772](Automattic/harper#1772) is resolved by [@​elijah-potter](https://github.com/elijah-potter) in [#​2247](Automattic/harper#2247) - feat(core): `FindFine` by [@​elijah-potter](https://github.com/elijah-potter) in [#​2248](Automattic/harper#2248) - feat: await for → await / wait for by [@​hippietrail](https://github.com/hippietrail) in [#​2250](Automattic/harper#2250) - feat(cli): use Rayon when linting many items by [@​elijah-potter](https://github.com/elijah-potter) in [#​2244](Automattic/harper#2244) - fix(ls): use `code` key in diagnostics by [@​elijah-potter](https://github.com/elijah-potter) in [#​2254](Automattic/harper#2254) - fix(core): edge case in dictionary by [@​elijah-potter](https://github.com/elijah-potter) in [#​2255](Automattic/harper#2255) - fix: don't flag 'every day free' by [@​hippietrail](https://github.com/hippietrail) in [#​2260](Automattic/harper#2260) - feat: allow `ExprLinter` to work on sentences as well as chunks by [@​hippietrail](https://github.com/hippietrail) in [#​2165](Automattic/harper#2165) - feat: per say / per-se → per se by [@​hippietrail](https://github.com/hippietrail) in [#​2258](Automattic/harper#2258) - refactor: most `pub use` lines in `mod.rs` not needed by [@​hippietrail](https://github.com/hippietrail) in [#​2259](Automattic/harper#2259) - docs: define a versioning policy by [@​elijah-potter](https://github.com/elijah-potter) in [#​2257](Automattic/harper#2257) - feat(core): create rule to catch `Me and <PRON>` by [@​elijah-potter](https://github.com/elijah-potter) in [#​2245](Automattic/harper#2245) - refactor(core): remove implementation details from public API by [@​elijah-potter](https://github.com/elijah-potter) in [#​2256](Automattic/harper#2256) - feat(core): create more specialized rule for [#​2144](Automattic/harper#2144) by [@​elijah-potter](https://github.com/elijah-potter) in [#​2253](Automattic/harper#2253) #### New Contributors - [@​rauletaveras](https://github.com/rauletaveras) made their first contribution in [#​2219](Automattic/harper#2219) **Full Changelog**: <Automattic/harper@v0.73.0...v1.0.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yNi4zIiwidXBkYXRlZEluVmVyIjoiNDIuNDQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issues
N/A
Description
While working on my lint checker I noticed that some linters were missing their
pub uselint inlinting/mod.rsyet they still worked.Investigating turned up that I could comment out most of the remaining ones without breaking functionality.
Of the ones that I couldn't comment out, some are part of the linting infrastructure rather than individual linters. But others were just due to the test modules of those linters using inconsistent methods to
usetheir linters. Changing those fromuse::crate::linting:FooBartouse super::FooBarin line with the majority of linters made it possible to comment out most of those too.For new contributors this means one less step in developing their first linter. And should reduce confusion regarding why some linters did things in different ways.
Demo
How Has This Been Tested?
All tests still pass.
Checklist