A long-standing bug was fixed this week. This had been the cause of a test failure in TerasologyLauncherPRs job of our Jenkins, for almost as long as a month. Also did a few tweaks on the Package Manager API, along with a diagram for my initial plan.

The Test failure

This test had been failing since build 102 of TerasologyLauncherPRs, but weirdly, all the tests were passing flawlessly on my local machine. Even weirder was the reason for this failure:

Screenshot

Coincidentally, this build was also the first in that line to be hosted on a new Jenkins node. So our first guess was that it's failing due to some trouble detecting the right locale in the new server. But after hours of debugging and running groovy scripts, I failed to find a single environmental problem that could have caused it.

Miraculously, the test started failing on my local machine too after a point. And that's when I realized it wasn't actually a problem in the machine setup. After some more analysis, I had finally found the source of this problem: The state of a utility class was getting modified by a former test, which caused this test to make wrong assertions. This was corrected by resetting its state before starting on the newer test, and the job was done!

Package Manager plans

I made a diagram that describes our initial plan for the package manager. Only the three basic functionalities have been described:

Diagram

Be sure to check out this post on my weekly GSoC forum thread.