Top
Best
New

Posted by ibobev 1 day ago

The GitHub wiki is an anti-pattern (2022)(michaelheap.com)
172 points | 109 commentspage 2
hn1rig3rak 1 day ago|
Biggest thing for me is wiki edits skip code review, so docs rot silently while a /docs PR at least shows up in the diff next to the change.
freedomben 1 day ago||
Indeed, and also now with agents everywhere the docs can be updated and checked more regularly. If it's in the wiki, you can clone it locally and put an AGENTS.md line informing of where the docs are, but it's still a separate repo to deal with. Credit where due, it was a revolution (even a godsend) in it's time, but at this point I agree a /docs is better.
nchmy 1 day ago||
im having trouble connecting the dots here. How does adding the friction of code review reduce rot?
anon48293 1 day ago||
You can spot a code change without a docs change or vice versa
bocklund 1 day ago||
Interesting because I just added a wiki for one of my projects. I'm not using it for docs, since the project already has in-tree docs. I'm using it more as a public scratchpad of ideas / experiments to try that aren't well-defined enough (or known to be worth) opening as an issue yet.
ghusto 1 day ago||
I've never understood why people even _generate_ from the docs folder. If you've written it in markdown (which they nearly always do) then it's already rendered properly in Github. Or is it because they then publish those docs somewhere else?
etatester 1 day ago||
I think generation helps with content and structure that GitHub Markdown does not support, as well as having a dedicated (and brandable) website.

An example:

- source: https://github.com/eslint/eslint/blob/main/docs/src/rules/no...

- rendered: https://eslint.org/docs/latest/rules/no-control-regex

This is a very simple example, you can see how the code blocks are highlighted better and slightly interactive.

WCSTombs 1 day ago||
> Or is it because they then publish those docs somewhere else?

Exactly, I use Sphinx to make a nice website from the markdown sources (although it doesn't have to be markdown). That includes generating a full API reference page from all the docstrings.

WCSTombs 1 day ago||
I completely agree. When the docs are in the same repository as the source code, at least you can keep the documentation atomically synced to the code. No other method allows this (not counting setups with Git submodules, which is the same thing with more steps), and that should be an immediate dealbreaker.

Docs being updated to reflect the code can then (and must, IMO) be a blocking constraint on all pull requests.

zenoprax 1 day ago||
I tried to make the GH Wiki work and managed to address 6 of the 7 concerns brought up in the article using a GH Action to mirror a directory of docs. It was my first GH Action and proved to be trickier than I thought. For those who just need to expose some markdown and don't want to bother with gh-pages you might find it useful:

https://github.com/super-productivity/super-productivity/blo...

The generic-ness of the wiki wasn't an issue for me as I only intended on using it as a temporary measure to build up the bulk of the content and coordinate with the main dev on finding a balance between the flashy website with its guides and the less flashy docs. gh-pages is the obvious next step of course.

AriedK 1 day ago|
I took the same approach. Every merge into main triggers the GH Action to sync /docs with the wiki. The advantages of a wiki over /docs are tiny but the single click, navigation sidebar with all headings was enough for me to deal with the GH Actions hassle. GH Pages was no option because we are not on Enterprise and parts need to remain private.
neilv 1 day ago||
In a startup with move-fast lightweight processes:

1. Docs that are naturally versioned with the code, like API doc or a design doc, might well go in the code repos. (I'm personally a big fan of API docs embedded in comment chunks right above the respective implementation chunk, but a separate Markdown or SVG file, or other format, also works.)

2. Everything else, one of the top priorities is to minimize friction to someone who has the information capturing it such that it can be found by someone else later, so put it in the very low-friction wiki (or an issue/task comment).

3. Have a lightweight way of cross-linking things between these locations, that everyone knows, so info is more likely to be found later.

This still applies even if you feed everything into AI now.

knose 1 day ago||
nit: ”Using the /docs folder is the highest effort-to-reward ratio option” shouldn’t it be lowest or reward-to-effort instead?
sholladay 1 day ago||
A lot of GitHub’s secondary features are like this. The Issues tab and Discussions tab are so similar, with slightly different feature sets. And users will happily use both for feature requests and bug reports, with varying degrees of quality, so then I just have yet another thing to stay on top of. I think Discussions were made to reduce noise in very busy repos, but I generally find something useful in the noise. It’s really just a way to ignore users. As a result, I always turn off Discussions and just let people file issues when they feel it’s appropriate.
crazysim 1 day ago||
https://github-wiki-see.page/

I've been trying for years to get the contents indexed, accessible to search engines or even AI. When I started, no wiki was ever indexed but it seems GitHub backed off a bit since then. Still, there's a bunch that is still not indexed for various reasons with valuable data in them.

I do agree, most users should look into docs instead.

jjice 1 day ago|
I agree, but my only gripe is I hate the ceremony required for doc-only updates. It needs a review and CI. The review is a good thing in most cases (want your docs to be correct), but that often takes my team like two days (I'm realizing this is likely our fault now that I'm typing this). For CI, I've just added in a step to all our GitHub actions to skip Markdown only changes. Anyone have any better ideas?
pocksuppet 1 day ago||
If your process is bothering you, change your process - it's in your control. Write a new bullet point: "doc-only updates can skip review and CI". When you make a doc-only update, you click the "skip checks and merge anyway" button. Some people are so preoccupied with making sure things can only be done a certain way, they don't stop to think about whether it's the right way.

Of course someone will object to doc-only updates not getting review. That person is now on the hook for reviewing all doc updates after you merge them. It's the exact same thing you were doing before - they only objected when it got formalised.

jamwil 1 day ago||
Use CODEOWNERS files to route docs/ reviews differently.
jjice 1 day ago||
We're small enough of a team that everyone can review anything (with a bit of domain expertise in there). It's less of an issue of who is reviewing and more of an issue of getting anyone to spend a minute to look at it. More of a human problem. Would be curious what people to do remedy this.
More comments...