Somehow when my code stops working, my first (and second, and third) reaction is to blame everything except my own code. (“It’s not me, it’s you.”)
And almost always, it’s my own code that’s the problem (hence the title of this post).
I spent the day trying to resolve a bug in my early-in-development R package, qtl2geno. In the process, I blamed
- TravisCI for not handling
- R-devel for having broken
sep=NULLdifferently on different operating systems.
Of course, none of these were true. I was just passing
data.table::fread(), and that worked in the previous version, but doesn’t work in the latest release on CRAN, and I hadn’t yet installed the latest version of data.table on my Mac, but Travis and my junky Windows laptop had the latest version.
The debugging process seems a potentially interesting case study, so I thought I’d write down some of the details.