*GSOC week 2 progress report*
- Full test coverage
[angry post ahead]
So...let's start with the good news. The current codebase has 52 passing tests that cover every line of code, that means, yes, there's more test code than actual code, which is a good thing I guess. It also means every commit from now on will easily be tested, all the fixtures are very modular and reusable. The bad news is, I haven't been able to write a single new line of code that adds functionality. I pretty much lost 3 days to an urgent family issue that came up this week. And whatever time I put in during the other 3 days happened to be royally sucked by the god damn awful gerrit rebasing workflow. Reviews stalled since last week and I added as much or more patches this week, which left me with a 17 patch commit chain. So every time liori added a comment, I had to make sure any changes I introduced was safely propagated to all the other patches in the chain, without breaking anything. This process is very error prone and takes time. Imagine having to keep this up every time the reviewer felt like you should fix a few lines. I've had a few times where I even lost a commit or two during rebasing and no amount of git reflogging helped getting it back without me losing all my rebasing work that's in progress. In fact, I haven't had time to relax much on sunday and pulled an all nighter yesterday just to make sure I addressed the last round of comments and got them all merged, so I wouldn't end up with a chain this week. So yeah gerrit killed my family and gave me nazi cancer. I'm now homeless and in need of medical attention. But seriously, being behind schedule by a whole week feels pretty terrible so I'm just gonna go ahead and revise my schedule and set some ground rules to my workflow:
- the last buffer week for testing will be dropped and every single commit from now on will have its tests to go with it.
- the admin scripts week will be dropped in favor of doing code review/support for pallav's project and making sure it's reusable by my project.
- the search engine week will be restructured and support for sphinx and its api will be dropped. Django-haystack will be integrated during that week with Xapian as a backend. This means no time will be wasted on writing low level glue code to interact with sphinx's api and will introduce lots of other features out of the box like real time indexing (check xapian's homepage).
- the views will be split over two weeks starting this week
- no more small chains of commits, 1 feature 1 branch 1 patchset 0 dependencies on other patchsets. This means bigger commits but I don't think I care anymore, you can blame gerrit for this.
- all pending patches will be merged sunday night regardless of their review status. I'm sure we can introduce more patches if we wanna fix something later on, but we have to keep things going or we'll end up with terrible chains.
- no work on sunday. None. Ever. And no all nighters.
So I guess this week is gonna be views part 1, take 2. Wish me luck.
week 1: http://tatoeba.org/eng/wall/sho...#message_19654
week 2: http://tatoeba.org/eng/wall/sho...#message_19768
week 3: http://tatoeba.org/eng/wall/sho...#message_19821
patches pending review:
project template for testing:
> So I guess this week is gonna be views part 1, take 2. Wish me luck.
Thanks for your work on Tatoeba. But who is this evil gerritt you speak of?
Thanks. It's a web-based code review software that interfaces with git repositories. We use a gerrit server hosted by gerrithub.io (look at the patches pending link)