ar-demo-mobile-browser icon indicating copy to clipboard operation
ar-demo-mobile-browser copied to clipboard

# Version 3.11.18 - 3.11.21

Open Bambi66669 opened this issue 7 months ago • 0 comments

Version 3.11.18 - 3.11.21

  • Me increasingly realize I'd fucked up my testing, and trying to fix all the nits that were breaking people's builds.
  • Eventually giving up, pushing the problematic code to a branch to bake more, and reverting back to before 3.11.14.

Post-Mortem

So, 3.11.14 caused some problems. I was throwing my new HTML parser at my datablocks.py code, so I could reliably parse the start tag and preserve all of its attributes. Problem is that the datablocks code was processing the spec line-by-line, so if you had a multi-line tag (such as, for example, having a newline in an attribute value), the parser would complain that it hit EOF without the tag being closed. This didn't have an effect on any of my tests, because nobody had a multiline tag for one of their datablocks, so it didn't actually matter for the spec itself. It did matter that it was suddenly throwing spurious fatal errors, however, as that breaks people's builds. (First mistake.)

At this point I could have reverted the code and worked on it more in a branch, and should have. (Second mistake.) Instead I dug in - my new code was nicer, and I wanted to replace all my hacky text munging anyway, so I might as well just rip it out entirely and use my new parser.

This took a few days, but it was productive work, and I was happy with it. I did this via a big chain of "wip" commits, with test rebasing going on arbitrarily in commits, so when I thought I was done, I did a big squash commit - git reset --soft to the first commit, commit all the code, rebuild tests and verify, commit them, done. The tests looked good! Surprisingly few tests changed, and those that did were almost entirely catching errors, which was great! Problem is I did the squash wrong - I needed to reset to the commit before my first in the chain. Due to my mistake, I didn't see all the test changes my code had made, only the changes my commits after the first commit made. So I ended up missing a ton of problems that would have been fairly obvious. (Third mistake.)

Takeaway Fixes

  • First, I'm not tracking build messages, just build results. I've broken people's builds before due to this, which is annoying. Also, the message output would have shown some of the errors more clearly than the HTML changes did, mixed as they were with some trivial formatting changes. I'm going to take on a Q2 project to fix this, and start tracking build messages as part of the test suite.
  • Second, when I see breakage, unless the fix really is trivial I should go ahead and eagerly revert. I knew the fix wasn't going to be trivial here, but wanted to make forward progress, and made the wrong call. In the future, always revert eagerly if I can't immediately fix the error.
  • Third, the commit issue was just a silly avoidable mistake. To ensure I don't do this again, whenever I do this kind of significant work in a branch, I'm going to only merge it in as a PR in GitHub, rather than locally, so there's another layer of visual check that I'm getting what I expected.

Originally posted by @tabatkins in https://github.com/speced/bikeshed/issues/1773#issuecomment-1481598821

Bambi66669 avatar Apr 24 '25 22:04 Bambi66669