Saying Goodbye to Typo CI
mikerogers.io
mikerogers.io
I’m so moved (and admittedly conflicted!) that my writing helped you come to this decision. I’m grateful you were able to identify the issue around permission, and also grieving with you about the loss. (Closing down a business or project is a valid form of grief. We don’t often name it as such, but that sadness is real and it is grief.)
It sounds like you learned a lot and will carry that with you to your next projects. Wishing you all the best. I hope you stay in touch and continue sharing what you learn from users, encouraging and otherwise!
The same goes for many things that might be part of your CI pipeline today.
At this point, the main value of having something in CI is either for the reviewers to give them a sense of things, like coverage or to help enforce people are using those tools, which means it should ail CI.
Presumably it's possible to suppress false positive typo reports too and flesh out a per-project dictionary to help all other developers?
Real text customers see lives in various i18n tools and you know what, they can tell you about typos as you make them!
And while nice, the inspections often catch other more important code issues.
These are also generally highlighted with an indicator of some sort to catch as you’re working on the code.
Are pre-commit inspections / visual indicators not generally a part of most dev workflows?
I would think spelling would be a part of the most basic text editor / ide at this point.
Best would be if it's integrated with a Language Server Protocol. For instance it would be nice to flag misspelled variable, function, and class names. And only flag them where they are defined. And not flag variable names in comments.
That sort of delay can kill a new product's momentum. I wonder if this is consistent with what others have seen or if it's something unique to this project?
My app was nonsensically rejected for not having enough users yet. Isn't the whole point of the marketplace to help obtain users? When I replied to appeal (directly quoting the no-minimum-user-count statement), I never received a response, and none of the ~dozen GitHub employees I know were either willing or able to help me.
I gave up on the marketplace and just wrote my own Stripe billing, but after two years my app still only barely breaks even on its infrastructure costs. I deeply regret wasting my time building a GitHub app.
Adding insult to injury: my GitHub app is a SaaS CI version of my open source CLI tool, which GitHub internally uses as a core infrastructure component for their DB schema management. 8 months after my GitHub app's launch, GitHub open sourced some Actions code which uses my open source CLI tool to substantially duplicate the purpose of my SaaS app, albeit in a less compelling way (their approach doesn't provide inline annotations, is much slower to execute, and involves contorting the CLI in unintended ways).
Now I keep getting support requests from random users who want help configuring GitHub's action, but don't want to consider ever paying for a simpler-to-install solution with more features. It's extremely demotivating.
I've spoken to a few other GitHub app creators, it's a fairly common experience. I think GitHub Actions are kind of viewed as the preferred alternative by GitHub so that's what they're focusing on.
Based on my research I wouldn't recommend using GitHub Marketplace in its current state.
Interesting timing since I've been polishing up my source code spell checker in prep for announcing it. I even used the name "typos" because I couldn't find it in use as a CLI.
https://github.com/crate-ci/typos
There are also some other code spell checkers out there: https://github.com/crate-ci/typos/blob/master/docs/compariso...
End result was a minor update to git to fix a couple of typoes:
https://blog.steve.fi/i_m_a_bit_of_a_git__hacker__.html
Even in my own work I know my comments, and inline strings, often contain typos. It would be nice to have a dedicated tool for catching new additions in pull-requests, etc.
I don't know if this is just a coincidence with Microsoft now owning GitHub, but this has historically been a Microsoft trait. So little third party software exists for Microsoft tooling because there's the fear that as soon as they see it they'll just do a first party version. (Recent example: https://www.thurrott.com/windows/windows-10/235783/appget-cr...)
For everyone interested in “small SaaS” (for the lack of the better term), I really recommend listening to the “Software Social” podcast, co-hosted by Michelle Hansen, mentioned in the article: https://mjwhansen.com/software-social-podcast/
So there seems to be limited utility for github to even have a marketplace. Enterprisey all in one solutions seem to be the only thing that can succeed there.
I think a CLI might be nice, but even then typos in code aren't such a big deal IMO. Sometimes they do come up with copy in UI code, but even then, NBD.
So for me, a spell checker in CI sounds like a nice to have, not a necessity.
Maybe it was just me but at my last role, I worked on a piece of software with a typo that stuck out like a sore thumb but the cost was too high to ever fix it (impacted multiple products with independent schedules or were just being milked and had no staffing).
I also remember some bike shedding over a person using a British spelling for a word instead of the American. Some times linters are just nice for deciding minutia so people don't argue (see also formatters).
However, I fully admit, compared to a lot of other priorities in software, these are minor.
Eventually we fixed it in our API gateway for the API we provide to customers because it looked unprofessional, so we have a mapping layer in that API that exists purely to correct the typo.
I mainly use JetBrains Rider though, and that has really good spell checking support built-in. Something I really like about Rider's support is that, just like lining rules, you have the option of saving additional words at the "Team Shared" level, so the whole team can use the same extra dictionary words. The same function works in Visual Studio with ReSharper installed, and presumably it's available in all JetBrains IntelliJ-based IDEs.
I also enable & use it with languages it doesn't really have proper support for (like sql and ruby) - just add words to the dictionary as they come up.
There is an unofficial SDK for TypeScript (maybe other languages too) so this shouldn't even be too hard: https://github.com/stewartmcgown/grammarly-api#unofficial-gr...
https://github.com/codespell-project/codespell
More listed in the check-all-the-things English section:
https://github.com/collab-qa/check-all-the-things/blob/maste...
I can only assume that they now only focus on targeting corporations -- faithful to classic MS style.