08.25.11
Dear Steve…
Best wishes for the next stage of your journey.
…And thanks for all the Macs.
A journal at al-Qâhira fî Amrîkâ
It’s been a long time since I’ve made a Camino-related post (due to my new time constraints), but I wanted to pass along some good news quickly.
Sunday night Stuart and I landed the last two bugs we’d been waiting on for Camino 2.1 Beta 1, so our final preview is now code complete. There is still some release note- and website-related work to be done before we can build and ship Beta 1, but we’re close enough that you can start counting down the days!
A number of users have been reporting persistent, random Camino crashes following their upgrade to Mac OS X 10.6.7 (which was coincidentally released about the same time as Camino 2.0.7, causing much confusion over the source of the new crashes). Mac OS X 10.6.7 contained a large number of changes to font handling (the “ATS” and “CoreText” items) that, in some cases, rather than preventing font-related crashes, have caused new ones.
In all of the cases we have successfully debugged so far, users have had corrupt or invalid fonts which have, in conjunction with the font handling changes in Mac OS X 10.6.7, caused Camino to crash. Luckily, there is a relatively simple series of steps you can take to restore stability to your OS and prevent Camino from crashing:
If Camino still crashes after removing corrupt, invalid, and duplicate fonts and restarting in Safe Mode, please post in the support forum so that everyone can help further debug your problem (and please include links to crash reports you’ve submitted for these crashes).
Special thanks to Philippe Wittenbergh for his always-expert memory of the steps necessary to resolve font cache corruption.
In the early days of my involvement with the Camino Project, senior developer Simon Fraser (smfr on IRC) had a way of fixing bugs that left me mesmerized. Simon would get home from work, hop on IRC, ask around for a (usually thorny) bug that needed fixing, and in an hour or so would have fixed not only that bug but also two or three related ones as well (while still managing to answer questions from less-experienced members of our development team). We were fond of those “smfr hat tricks,” as we called them, because they were almost always giant leaps on the road to the then-elusive Camino 1.0.
Lately I’ve come to understand the rationale behind those hat tricks; after digging through a bunch of code to understand it and be able to fix the bug you’re after, it makes sense to go ahead and tackle other bugs in the same code. So, recently, I’ve been channeling smfr, fixing sets of bugs in our save code, in our HTML bookmarks export code, and in our pasteboard and local-file-decoding code, among others. They’re not smfr-level fixes, but they are fixes that have removed many longstanding bugs (and, in the case of HTML bookmarks export, improved the ability of that export to serve as a backup without significant data loss). And, in the end, they keep moving Camino forward, and that’s what really matters.
Beginning with yesterday’s (January 27th) nightlies, the sourcestamp file ($product-$version-$language-$platform.txt, e.g. firefox-4.0b11pre.en-US.mac.txt) produced alongside every build changed formats.
Since its introduction in February of last year, the sourcestamp file had been a single line with two space-delimited values, the build ID and the repository revision/changeset (in theory always the revision of the platform repository, e.g. mozilla-central, but in practice instead using the comm-* revision in the comm-* repositories due to differences in the way the two repositories were set up):
20110126030333 e0fc18b3bc41
Unfortunately, this old format was only fully useful for Firefox, since all other mozilla.org products are built from multiple repositories and would need to list two (or more) revisions/changesets. So in bug 549958 I changed the sourcestamp file format to be a multi-line file, where the first two lines are always the build ID and the platform changeset URL (regardless of which repository an app is built from):
20110127030333
http://hg.mozilla.org/mozilla-central/rev/b5314bc1a926
At the time I wrote the patch, the only known consumer of the sourcestamp file was Socorro. With the recent migration, Socorro’s code to handle both sourcestamp file formats was deployed, so we could finally change the file format; this happened Wednesday night.
There have been a couple of unexpected breakages as a result, for which I apologize. If you have a tool that consumes the sourcestamp file (or code that uses the MOZ_SOURCE_STAMP variable that was defined and exported by mozilla-central), please check to make sure it can handle the new format in addition to the old one and the output is still as expected.
This change is currently only in place on mozilla-central; however, I intend to try to land this change on the branches for the the release cycle following (the soon-to-be-released) Gecko 1.9.2.14/1.9.1.16. Doing so will ensure that all branches are in sync and that tools that only work with “current builds” will not have to maintain code to handle both formats indefinitely; you can follow bug 549958 to keep abreast of branch landings.
For applications that use multiple repositories (mozilla-central and an app repository, for instance), it’s now possible to add the app repository’s revision (or app repositories’ revisions) to the sourcestamp file.
If you’re already calculating your application’s source stamp and repository (for instance, for inclusion in application.ini) and exporting those variables, you need only make one small change to your app’s installer/Makefile.in:
# Add our own changeset information to the MOZ_SOURCESTAMP_FILE make-sourcestamp-file:: @echo "$(APP_SOURCE_REPO)/rev/$(APP_SOURCE_STAMP)" >> $(MOZ_SOURCESTAMP_FILE)
If your application isn’t currently calculating these values, you can copy the MOZ_SOURCE_STAMP and MOZ_SOURCE_REPO rules from toolkit/mozapps/installer/package-name.mk, change the variable names, and substitute the appropriate directory for $(MOZILLA_DIR) in order to calculate the correct values (placing the rules in an appropriate Makefile and exporting the variables as required).
Were Thunderbird, for example, to add this information, its sourcestamp file would look like this:
20110128045924
http://hg.mozilla.org/mozilla-central/rev/a84260b56b08
http://hg.mozilla.org/comm-central/rev/0f313f7b192e
With these changes, your QA team will be able to regression-hunt through old builds and easily know the revisions of all repositories in question before they even download the build!
(Or at least one reason why.)
Wevah stopped by #camino on Sunday to help Sam fix a server migration-related website bug we’d just discovered. Before the day was out, not only had Wevah fixed that site bug (Regex Jesus to the rescue!), but a second one as well.
Even better, he fixed a three-plus-year-old “blocker” Colloquy bug 10 minutes after I mentioned the bug to him (it’s almost as if he scares bugs into fixing themselves).
The best part of it all is that Wevah’s awesomeness rubs off on everyone around him; after Wevah finished his bug-fixing spree, I looked again at a bug that had been stumping me for some time (Wevah had actually given me the hint that allowed me to fix said bug’s predecessor) and was then able to re-arrange some code and get things working.
Fixing bugs is never more fun than when Wevah is around; everyone should be so lucky to work with Wevah on a project sometime.
And that, my friends, is why Wevah is awesome!
As I mentioned previously, I don’t plan to try to continue regular weekly updates this year (though Sam plans to begin once again producing regular updates, in the old Camino Update style, it seems). However, I do plan to post irregular updates as warranted, and although this post is titled in the old style, it is firmly in the new “irregular updates as warranted” camp.
Camino started 2011 off with a bang, as Stuart Morgan landed both of his large, long-awaited patches: the history loading rewrite and the autocomplete performance rewrite (the latter begun originally by Dan Weber). As a result, typing in the location bar is now smooth as silk once again, and the autocomplete results are a lot more awesome. If the poor typing performance in the location bar has kept you away from nightly builds, you can make the jump now without fear (as always when switching to nightlies, be sure to make a backup of your profile first). Stuart also debugged, fixed, and landed his patch for a focus bug that prevented form fields on some pages (such as Google web applications) from being focused, and he dusted off another old Dan Weber patch to partition off the feed and security icons at the far end of the location bar.
Returning after the holidays, I landed Chris Peterson’s patch to finally make the Downloads window use the proper selection color. In addition, I started work on what appeared at first to be a simple follow-up to that patch, a fix to make the selection color behave properly when the Downloads window was in the background. (Alas, it did not end up being simple at all, but with some help from Ilya Sherman and Stuart, I completed my first major code refactoring, and I was able to land the patch late last night.) I also pushed a few website changes and started working on the release-wrangling tasks leading up to Camino 2.1 Alpha 1.
Chris Lawson initiated our first major CLOSEME sweep of old unconfirmed bugs of the year, setting us up to close many abandoned bugs next weekend for a good start to the year.
In addition, we’ve been very happy to meet a few Camino users who are interested in helping with development and triage (perhaps it was a popular New Year’s resolution in the Camino community?
). Regardless of the reason, as an all-volunteer project often limited by the human resources available to us, we’re always grateful for every contributor. If you’re interested in getting involved with Camino development or bug triage, feel free to stop by our IRC channel, let us know what your skills are, and find out how you can help. (Similarly, if you speak a language other than English and want to help with the localization of Camino, please visit the Camino Localization project’s website and subscribe to their mailing list to learn how you can help.)
And that’s it for the first week of 2011. I’m off to continue working on release-wrangling for Camino 2.1 Alpha 1, which we hope to have available soon. In the meantime, enjoy the improved autocomplete performance in the nightlies, and let us know if you find any lingering issues!
For me, 2010 was an exhausting year, and that definitely bled through into my Camino involvement; I had less time to write, so there were fewer and more irregular status updates—and, while Camino Planet was malfunctioning, none at all—fewer forum posts, fewer bug cleanups, and generally less of a public face. As a result of the year, I ended up taking a fairly long hiatus for the holidays, and I’m trying not to jump back into things at full speed.
For Camino, 2010 was an interesting year, a year of many transitions. We had more changes in our teams than in past years, as Sam headed off to travel the world (and most of his responsibilities fell to others) and as successful careers took off for other contributors. Although 2010 was the first year since I began these years-in-review that we did not ship a major new version, we made many significant changes in the hectic first half of the year that laid the foundation for bigger and better things to come.
So there’s a belated look at the many highlights (and some “lowlights”) of Camino in 2010. Although sometimes it seems like less happened in 2010 than in years past, looking back on the year reveals many large changes; they were just sometimes slow to develop and often were not exciting, user-facing changes. Nevertheless, we find ourselves on the cusp of a great new Camino 2.1 Alpha as the new year opens!
Finally, I want to take a moment to extend thanks again to the entire Camino community: our developers, our testers, our localizers, our users—the folks posting in the forum, writing AppleScripts, and filing bugs; those who take time to blog, tweet, and make videos about Camino; and especially those who help out with user support and bug triage—and our friends. All of you make this great little browser possible, and we’re grateful for your contributions, your continued support, and your love for Camino. Here’s to a great 2011!
Just as a brief administrative update, following this post, Camino Planet will switch to pulling the feed that corresponds to my Software category, which includes additional topics such as open-source and other software issues and more general computing-related items. This harmonizes the feed at Camino Planet with what Planet Mozilla already consumes, as well as with the overall feel of Camino Planet.
In addition, I’ve talked with Sam about either sharing or having him take over the Camino update “responsibilities” this year, in order to provide more timely updates than I’ve been able to produce recently.
(Edit: Look, he’s already posted the first one!)
Finally, my annual Camino Year-in-Review post is still coming (if only people would stop interrupting me!), so there is still that to look forward to before I possibly go radio-silent for a while.
This is a late (but not quite as late as last year!) reminder of the “pool” for the 2011 installment of the annual “we break our site for your browser when the new year rolls around” broken browser-sniffing contest (the first 2011 Gecko browsers will be available in about 54 hours from now).
Since perennial contender Yahoo! finally cleaned up its act last year, the 2010 dodo prize went to FCKEditor, the first winner that affected entire swaths of the web rather than just a single website or a collection of an organization’s websites. (FCKEditor is a WYSIWYG text editor implementation for web pages used by many websites and by common web applications/web-based software packages for creating and maintaining websites.)
However, I’m hopeful that, after so many years, this entire contest will soon go the way of the dodo. Between renewed efforts to remove the build date from the Gecko user-agent string, evangelism associated with the many user-agent string changes in Gecko 2.0, and simple exhaustion of the number of possible contenders (after six years, and with the tens place in the year having been filled with a new number last year for the first time since many websites were created), I’m (overly) optimistic that people’s regexps have finally been audited.
Still, get your picks in now for both the site/company/piece of the “web software stack” that will break and the reporter of the Tech Evangelism bug who notices said site/company/piece of web software. No actual prizes will be awarded, but both winners will be recognized in a future entry in this journal.
And remember: only you can prevent bad browser-sniffing!