Today another surprise. When I run a test suite, it works ok. I run another, it works ok. Then I run them all in `sbt`, and they crash. What happens? They run in parallel, and the servers are fighting for the same port. Not a problem, right? I actually find a piece of code, 5-year-old, in another project, that just assigns a different port for a specific test suite. So I announce the port for the current suite right away at the top. I won't compile if I don't.
So ok, except for one test, proxy something, all tests pass now.
But when I decided to push it again, my build script started complaining about "scala style". First a couple of "style configuration" files are miraculously missing. Actually, none of these files exist in any project that I have in my `projects` folder. That is, about 20 or 30 of them. What is it? FIIK. Had to google it; it turned out such files can be auto-generated. So I did.
Now my `build.sbt` and `plugins.sbt` are found non-kosher. Fuck, A file with about half a dozen plugins listed not good enough, stylistically. What kind of Jane Austen should we hire to write `plugin.sbt`? So I had to google it and find how I can ignore a file. It's called "excludeFilters", but the form is the same as `.gitignore` and others.
So by the end of the day I felt pretty happy that I have just one test suite that sucks.
But not actually. Because when I woke up after my nap after lunch, it turned out that the team was looking for me, because? Because the server I deployed in June or July is suddenly causing 100% errors in another server which talks to it. WTF, right? They hurried to roll back that deployment (Chris, as always, demonstrated his eagerness to fix other people's mistakes.)
But WTF? I wrote to them I'll deploy the latest version (which has been running on staging for the last month too, and tested by Priyanka's suites), but, as Karen noted, it was too late on the East Coast (it was 5:30 PM); right, we don't want to bother Davis, who is on pager duty, and who did not, I guess, exactly got rid of his heavy covid case that was torturing him for the last two weeks. So we agreed that I slap together a pr for redeployment, but will do it Tuesday. Because Monday is some special day after which one cannot wear white socks (see "Serial Mom" movie, where Patty Hearst did).
And besides, Karen explained the problem. Today she deployed that bad version 216 - only today; while there was already version 218 available. And that's how all this started happening today. Nobody knows whether (and why) the newer version was or was not deployed earlier. But well, whatever. Chris, I believe, is eager to become a guardian of the builds, but nobody will let him do it. Oh, whatever. At least we are ok with Karen. And with Davis. And (maybe) with Jacob.
That's all, folks!
Oh, and what was the problem? The problem was that our pardners send us json files where one of the boolean fields has values in quotes: "true" or "false". Other fields are perfectly ok. When I was introducing a free-form data storage, we got those booleans in quotes, and started giving them away on demand, in quotes. The fix was to replace booleans in quotes specifically for this field.
Oh, whatever.