@@ -54,10 +54,11 @@ Part of the `make dev` setup installs `pre-commit`, which will make sure that
5454commits are up to a certain standard. The provided config file runs the code
5555formatters, linters and a few other checks. Read ` .pre-commit-config.yaml ` and
5656see what's going on in there. ` pre-commit ` is very slow and very annoying, but
57- it forces code quality on us which mostly makes up for the inconvenience of it
58- blocking your commits.
57+ it forces code quality which mostly makes up for the inconvenience of blocking
58+ my commits.
5959
60- You can use ` git commit -n ` to skip the pre-commit tests.
60+ You can use ` git commit -n ` to skip the pre-commit tests. And then
61+ ` pre-commit run --all-files ` later, when you feel up to the punishment.
6162
6263### IDE
6364
@@ -99,23 +100,30 @@ testing filesystem interactions and external services have a heavy
99100test-development overhead, which hinders rather than helps refactoring efforts;
100101your mileage may vary.
101102
102- Run ` make coverage ` for a test coverage report.
103+ Run ` make ` or ` make coverage ` for a test coverage report, then open it with
104+ ` open htmlcov/index.html ` . There's text output too, in a format that's friendly
105+ for AI, so you can set Claude to task adding test coverage.
103106
104107### CI and CD
105108
106109There's a couple of workflows in the ` .github ` dir, one to run the unit tests
107110and one to release the project to pypi. The unit tests one runs on every push,
108- the release one runs on
111+ the release one runs when you do ` git push --tags ` .
112+
113+ To get the release one working, you'll need to add a ` PYPI_TOKEN ` to the github
114+ actions environment variables for your repo. Or you can use ` make dist ` followed
115+ by ` make release ` on the command line. This is why I'm not using the OAuth
116+ thing, I like to do things the same locally and remotely.
109117
110118### Documentation
111119
112120You'll see a ` mkdocs ` config in the root. This is combined with the ` make docs `
113121script to make the github pages documentation for the project.
114122
115123I don't use this anymore as I have my own docs script for my website - it
116- pushes a new commit to my github pages website. If I remember to, I'll
124+ pushes a new commit to my github pages website.
117125
118- ## Some opinionated stuff
126+ ## Some (even more) opinionated stuff
119127
120128### Megarepos
121129
@@ -141,7 +149,12 @@ I think it's worth keeping most of the project documentation in Markdown as a
141149general rule, up to a point anyway. The project wiki is somewhere else, it goes
142150out of sync, it's difficult to see what the docs were on a specific release
143151tag. Docs in the codebase can be edited alongside new features and have a much
144- richer history.
152+ richer history. That said, docs themselves are best if they are temporary; code
153+ that reads like plain English and executable documentation in the form of tests
154+ are superior. Tests are documentation that are proven to be up-to-date every
155+ time the test suite runs. If you write more than that, then you should probably
156+ be doing something more productive instead, like writing some code or arguing
157+ with an AI agent about some code.
145158
146159## License choice
147160
0 commit comments