Live data from Hacker News

Ratchets in software development (2021)

qntm.org

41–43 of 43 posts

Re: Ratchets in software development (2021)

#41
I had a similar problem a few years back. Our decades old system had a poor architectural system baked in that was causing major performance issues in some cases. Fixing it within the core was straightforward, but ended up violating an assumption that almost every module we had made.

After two attempts at fixing it failed (due to getting hopelessly out of synch with mainline), we put the fix behind a flag and setup updated our CI to run the test suite with both modes of the flag; and to only fail for new test failures.

Re: Ratchets in software development (2021)

#42
post #30
post #17

Earlier quoted context omitted.

yeah that’s the way we do it at Notion. it’s important to store the allowed violation count in a file type that makes merges easy; we use TSV rather than JSON because dealing with commas and delimiters during merge conflict is super annoying and confusing. right now we have one huge ratchet.json.tsv file with all violations but it’s getting pretty ungainly now that it’s >1mb length.

interesting, so you guys call it a ratchet file? i thought it was something that OP came up with

perhaps we both picked that word independently

Re: Ratchets in software development (2021)

#43

I did something like this years ago for a really large team (~50 devs) when first introducing linting into a legacy project. All we did was count the gross total number of errors for the lint run, and simply tracked it as a low-water mark - failing the build if the number was > the existing number of errors, and lowering the stored number if it was lower. So in practice people couldn't introduce new errors. The team…

How do you add new linter rules? Do you have to clean up an equivalent number of lines of warnings to enable an additional linter rule?

sorry didn't see this question earlier.

we didn't run into this problem, as we just accepted a popular set of linting rules, and lived with them.

but I imagine you could just manually bump the ceiling number when adding a new linting rule.

Post reply on HN