Open source development – Getting back on track

Originally I had planned on making one massive post but after finishing about 75% of this post, I realized it would be a bit too massive for anyone to bother reading, so I’ve split it into two parts. Part 2 coming up later… by later I mean hopefully with all the remaining tests reviewed, duplicate tests expunged, and all possible errors solved. =) This part will basically detail what I went through to get back on track.

No doubt, a few of you will be wondering how sidetracked could I be when it’s been only 2 weeks since I last worked on open source material, and the answer is very! When Christmas Eve came around I essentially shut off my programming side of my brain and since then I’ve been in the boot up phase. Any one working on open source knows how much things can change in two weeks, heck even a lot can change in one day. There are so many parts that make up Firefox and little adjustments on a part that doesn’t seem related to mouselock can totally break everything regarding it. Of course, I’m working more on the tests side so the impact is softened. Anyway, I’ll start off with when I updated to patch v2 of mouselock.

Building Firefox on Windows last semester was awkward because it forced me to build FF on one core due to random deadlocks when trying to split the workload into multiple jobs. With patch v2 which contained newer mozilla-central code, the way Windows machines build FF has been changed. Now instead of using the normal make, windows users should use pymake and the improvements for switching are very promising. As with many new things, I failed this operation quite quickly. The reason was because my existing object directory was created using make and didn’t play nice with pymake, so after clobbering I was able to perform a full rebuild in just under an hour!

For future reference instead of typing make -f build I have to type python -OO build/pymake/ -f build

Also, after version 2 I knew that vendor prefixes were added so the gh-pages needed a quick update. I took this on because it would help me figure out what I needed to replace on the tests we currently have. It was actually a fairly procedure, and it highlights one of the things I’ll miss due to the new web console interface. When working on the fix to the gh-pages, I was able to start typing navigator.m and it a pop up would show up and tell me instantly what exists under navigator that started with m. Also, when I needed to see what movementX and movementY for mouse events changed to, I could just expose a mouse event via the web console and check out the properties of the event object. The new interface which comes with the new Firefox nightly, while beginner friendly, takes away a few things.

As can be seen, there’s a nice tab(?) that shows up and indicates what commands the web console can take. So now we need to use { in order to get javascript to run. Which wouldn’t be so bad, but since I have to close the block (at least I’m pretty sure I do) all the variables and whatnot I stored in it disappear right after. Perhaps there’s another way, and I sure hope there is, but this limits my ability to expose an object and look at it’s properties without having to use a Javascript loop. Another minor issue is every time I put my cursor there, the tab pops up, which cases all the text to shift over. It’s small, but it’s somewhat annoying to me.

/end rant

The new interface came to me by way of version 3 of the mouselock patch which came one or two days after I did the gh-pages too, which also needed to be and has been updated. In terms of impacting tests there was only one thing, instead of a function isLocked is now an attribute. The other changes, while important don’t affect the creation and updating of the tests.

Part 2 and more specific comments regarding the tests to come!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: