The roads I take...

KaiRo's weBlog

March 2010

Displaying entries published in March 2010. Back to all recent entries

Popular tags: Mozilla, SeaMonkey, L10n, Status, Firefox

Used languages: English, German


March 2021

April 2020

March 2020


March 29th, 2010

Weekly Status Report, W12/2010

Here's a summary of SeaMonkey/Mozilla-related work I've done in week 12/2010 (March 22 - 28, 2010):
  • Releases:
    Some more work on the SeaMonkey 2.0.4 process, release notes should now basically be complete and everything looks good for a release tomorrow. As a fun note, working on this included bug 555555 - nice number! :)
  • Build Infrastructure:
    Landed the patch for upload timeouts we've seen on our Windows slave in Europe. I also filed and help fix a bug on increasing RAM on the Parallels Linux VMs so that linking seamonkey-bin for static builds works well enough there again.
    The problem I had when building SeaMonkey 2.0.4 is now on file and has a patch. I also filed a bug on getting clobberer set up after I needed to manually clobber 10 machines to investigate a test failure. Another bug is up for getting bugzilla components for release engineering and the website.
  • Places:
    After some comments and another Firefox patch from Mano, I updated the history speedup patch for SeaMonkey, it's now waiting for reviews again.
    The places bookmarks patches are up and I created try builds for everyone to test. I asked Neil about how we should progress to get this monster patch series landed, but he still needs to think about that.
    Meanwhile, I filed a followup bug on making icons work with the new implementation.
  • Automated Tests:
    I discussed and investigated a few test failures this week, one could easily be fixed, some others prompted a bug report on making our use of bundled extensions fit what the rewritten extension manager will want when it lands, and one took me a long time of investigating but is still a bit of a mystery to both me and the author of the test.
  • Development Website:
    I made the main page for "human-readable" pushlog feeds a bit nicer and blogged about it.
  • German L10n:
    I fixed a few accesskey bugs, brought SeaMonkey strings up to what trunk has, updated ChatZilla strings, and also brought DOM and security/manager strings up to the current state of trunk.
    I even finally could get L10n-merge to work on my local machine, so that I may be able to dogfood German builds again without fearing that the build process breaks with all kinds of string changes.
  • Various Discussions:
    1.x EOL feedback, build system reviews, media-visible 1.9.2 vulnerabilities that keep coming up at times not fitting Mozilla schedules, tri-license discussions, module ownerships, reducing my TODO list, getting 2.0 contributor interviews going again, lift10, etc.

I'm personally getting quite productive again, moving things I'm involved with forward, but there are unfortunately areas I don't find the time to deal with - like marketing. I'd really like to encourage people who want to help with community marketing to contact me, it would be very nice to get something going there and get out the message to more people that SeaMonkey is the Internet suite for professionals.
With SeaMonkey 2.0, we have a really good product, now we need to see to get it out to the people!

By KaiRo, at 22:18 | Tags: L10n, Mozilla, SeaMonkey, Status | no comments | TrackBack: 0

March 28th, 2010

"Human-readable" Pushlog Feeds

As I'm trying to stay up-to-date with what's going on in the Mozilla source code, I've been reading bonsai in earlier times and them pushlog HTML pages (e.g. the mozilla-central page).

As my communication channels were growing and my becoming overwhelmed with the amount of things going on there as well as clicking around on HTML pages, I sometimes didn't look in for a day or two and couldn't remember where I stopped last time. Some day, and that was months ago, while thinking about this, I figured it would be much nicer if I could subscribe to that information in a feed reader and just mark read what I have seen. I had also figured that I'm faster reading/skimming through entries in SeaMonkey's feed reader than I am with reading HTML web pages.

So, after some weeks of thinking that it would be cool to do that, I finally went and wrote some PHP code that would get the info from, put it in a local MySQL DB on my server and present it to me as a feed I could subscribe to. After using this for some time and refining it a bit, I am not only up-to-date with what's happening in the repositories I want to track, but also feel confident that the system works well enough to have others use it as well. lists all the repositories I'm currently tracking there, with the repository names being linked to those new feeds, while the HTML link points to the pushloghtml page corresponding to this repository.

I intentionally didn't include the whole diff in the feed entry, it's being linked as the "article link", as I usually only want to look at the full patches quite rarely, but they are often quite large and I want to keep both the feed and what I pull from the hg server reasonably light in terms of traffic.
Also, the feeds are updates at most hourly - jobs for pulling new info are being set every hour, but the server lazily processes those jobs depending on the server load. And really, if you're looking at this too often, it probably distracts you from work anyhow. ;-)

If you have any suggestions for improvements, questions, or requests for other repositories to be added, please contact me.
Note though that this is my server and I created those feeds primarily for my own use - it's nice if they are helpful for others, but they most importantly need to fit my own use case.

By KaiRo, at 14:09 | Tags: Mercurial, Mozilla, Pushlog | 6 comments | TrackBack: 0

March 25th, 2010

SeaMonkey Places Bookmarks Try Server Builds

After a few attempts, I have created try server builds with my places bookmarks patches. Note that those are trunk builds with a huge pile of experimental patches on top, so use them with care.

Also note that they should import your bookmarks.html into places.sqlite but that's only done if you have no JSON backups in the "bookmarkbackups" directory of your profile and no bookmarks are in the places database yet (which should be the case in a profile of any previous SeaMonkey version). This also means the import is only done once - if you're using the same profile with other SeaMonkey builds and then use it with a build with places bookmarks again, you need to manually import your bookmarks.html once again - there's an option in the bookmarks manage for that.

Things that should work:
  • Auto-import of HTML bookmarks (see comments above),
  • Microsummaries (e.g. when bookmarking a bug list, you can select a "live title" with the bug count in it),
  • Live Bookmarks (adding feeds as live-updated bookmarks folders),
  • New personal bookmarks toolbar and bookmarks manager,
  • And probably more.
Known issues:
  • Icons of web pages are possibly not fetched when adding bookmarks. If I don't find out how to fix this right now or it's not trivial to fix, this can possibly be done in a followup bug when the main work has landed. Still, it might be trivial, as I think it worked at some stage of my work.
  • No new UI preferences are added, we will look into that in followup bugs. The backend supports a number of the preferences, though, like adding bookmarks to location bar search results or exporting bookmarks.html automatically. We will probably add UI preferences for those things in followups but will not switch those things on by default.
Having said all that, testing and reporting issues is very much appreciated, here are he builds:Please test those builds, ideally with copies of real-world profiles (they might destroy anything as they are highly experimental, don't use them with any profile that has no backups) and report any issues you're seeing.

By KaiRo, at 01:21 | Tags: bookmarks, Mozilla, places, SeaMonkey, SeaMonkey 2.1 | 4 comments | TrackBack: 6

March 22nd, 2010

Weekly Status Report, W11/2010

Here's a summary of SeaMonkey/Mozilla-related work I've done in week 11/2010 (March 15 - 21, 2010):
  • Releases:
    Announced the end of life (EOL) of the 1.x series and released SeaMonkey 1.1.19 as a last version of that series.
    I started the SeaMonkey 2.0.4 process and uploaded candidate builds. A few issues needed to be dealt with in this process, created preliminary release notes, nightlies are now labeled 2.0.5pre.
  • Build Infrastructure:
    I created a patch for upload timeouts we've seen on our Windows slave in Europe, looks like increasing the timeouts is the the only way of fixing this problem.
  • Places:
    I fixed a frecency test to also work in SeaMonkey, the problem was our different default preferences once again.
    Still, the really big news and piece of work is once again places bookmarks - I should have all of it working now, including keywords and HTML import (with a dependency on Marco's toolkit patches that are awaiting review). I have attached patches on the bug and am waiting for a first review pass myself, even though I know I loaded an awful lot of code on Neil's shoulders for those reviews. Once the toolkit patches are in, I'll even do try builds, but the Thunderbird try server doesn't support patches that span multiple repos, I fear. I probably should also port some tests, but I may defer that to a followup bug. The patchset on the suite side alone has "79 files changed, 16364 insertions(+), 12837 deletions(-)" according to diffstat, that is already quite a large change, I think. Though, given that it adds a bunch of additional functionality and some gains can probably still be made when switching history to reuse some of the core places code in there, I'm not unhappy with the difference of added and removed code there.
  • Development Website:
    Worked some more on metrics output to get nicer graphs on there. If you're using a browser that can deal with them (like SeaMonkey 2.x), you'll see canvas-based graphs there that just parse the table on the website to generate the graphs, and those graphs are now available on all subpages of the metrics section.
    I also did correct some links for "human-readable" pushlog feeds because of a comment on last week's status update post.
  • Themes:
    My EarlyBlue and LCARStrek themes should now be up to speed with trunk development in my local trees (and the public repository).
  • German L10n:
    I aligned SeaMonkey with Thunderbird on MDN receipts containing both German and English language in the future.
  • Various Discussions:
    Another 1.9.3 platform alpha being released, 1.x EOL feedback, Thunderbird and Mozilla project communications, Future of Mac builds - 64bit and PPC, SeaMonkey marketing, etc.

I'm really happy with my progress on places bookmarks (see recent post) - while reviews can get tough, as usual, the code worked very nicely in my testing and I'm looking forward to switching my daily work to local trunk builds with that code and my themes, which all are now ready for testing. I'm told that trunk is quite a bit faster than 2.0.x builds, I really hope I'll be able to experience that first-hand in daily usage and dogfood that bookmarks work - maybe even start working on some followups that don't depend on details of the code that might change in reviews.

By KaiRo, at 22:17 | Tags: L10n, Mozilla, SeaMonkey, Status | 2 comments | TrackBack: 0

March 15th, 2010

Weekly Status Report, W10/2010

Here's a summary of SeaMonkey/Mozilla-related work I've done in week 10/2010 (March 8 - 14, 2010):
  • Releases:
    We got some testing on the 1.1.19 candidate builds, the end of life (EOL) of the 1.1.x series will be announced soon and this update for a few known security problems - but not all of them - will be shipped with it.
  • Services.jsm in SeaMonkey:
    I landed the patch for bringing Services.jsm to SeaMonkey. This is a first step to simplify our code, it can now be used in all kinds of other places in SeaMonkey, and it's loaded by default in most SeaMonkey windows as of this patch.
  • Places:
    The interface change has been reviewed as well in its new iteration and I could check it in as well after the toolkit change got in again and did finally stick.
    The places bookmarks progresses as well, I now have almost all of it working, though that import/export still needs that toolkit patch and a bit more tweaking, keywords from the urlbar need to be made to work, and I probably should also port some tests. Generally, a good amount of work is done, as the screenshot in my recent blog post shows. I guess the even harder part, as always, will be to get this code through reviews, even if it has already had at least one pass of reviews when it was created for Firefox...
  • Branding:
    The patch for branding restructuring needed a slight rework, which I've done, but I probably need to do more there, even though I did split off the locales/ part to its own bug.
  • German L10n: has been turned over to Mozilla, I subsequently requested a redirect to for that domain.
  • Various Discussions:
    Removing copyright strings, build system reviews, yet even more improvements for "human-readable" pushlog feeds, next 1.9.3 platform alpha upcoming, L20n planning, etc.

Next to the places work, I have been working to improve the display of the metrics data we get from Mozilla on the SeaMonkey development site, splitting the displays by year and even adding a canvas-driven graph to the overviews (I'm still planning to work on improving that somewhat and making it available on the other sections as well). I hope some people are interested in such statistics. ;-)

Also, Karsten was friendly enough to explain the SeaMonkey situation around Microsoft's "EU browser ballot" on the SeaMonkey blog, thanks for that!

By KaiRo, at 21:19 | Tags: L10n, Mozilla, SeaMonkey, Status | 11 comments | TrackBack: 0

March 14th, 2010

What Places Have You Bookmarked?

Some people might remember that I had worked on the places history support we shipped in SeaMonkey 2.0 (as a side note, congrats to the Camino folks for making the jump as well).

Now I've done work on the next step, converting bookmarks to places:

Image No. 22245

I have the first part of the patch up in the place bookmarks bug report, which doesn't implement anything really visible yet, though.

There's a lot of work in this work I have done here, there are a few flaws left, and even when it lands, this is a start, not a final state of our reworked bookmarks support.
There are a lot of things we can and should improve in followup bugs, I have some ideas on that and I know other people in the community have as well - esp. in those few areas where the old bookmarks system has features the new system can't offer. And we will be working on those and accepting patches, of course.

We will do this change though, as there are a number of things the places bookmarks system can offer that the old system can't.

Here's a some of the improvements I currently know about:
  • Live bookmarks, i.e. displaying feeds as "virtual" bookmark folders,
  • Microsummary support, or "live titles", allowing (optional) bookmark titles that are dynamically being updated with info from the website itself,
  • Bookmark tagging as an additional possibility of organizing bookmarks,
  • More robust storage for bookmarks (including good recovery options),
  • "Smart folders", e.g. "recently bookmarked pages", as well as saving bookmarks queries as virtual folders,
  • Bookmark icons are working much better and not being lost when they expire from the browser cache,
  • More code sharing, meaning code will be actively maintained and developed, which hasn't been fully the case with the older code,
  • Possibility to sync bookmarks (between different SeaMonkey installation, but also Firefox or Fennec ones) via Weave Sync,
  • Easier porting of bookmarks-related Firefox add-ons to SeaMonkey,
  • And probably more.
The following "feature losses" or changes to the old code are noteworthy:
  • "Groupmarks" are being replaced by being able to open any bookmark folder in tabs (middle-clicking a folder title or selecting the "Open All in Tabs" entry from the folder display),
  • The bookmarks.html file can still be exported to, even automatically at application shutdown, but it's not the main storage format any more. Most usages of the file can be replaced, including using it as the homepage (the sidebar panel can be set instead), but what doesn't work is switching between different bookmarks.html files as bookmarks sources. I strongly believe most use cases for that can be somewhat differently be achieved through the means of the places system, but we unfortunately don't yet have too good descriptions of those use cases and why this "feature" (I'd call it "misuse") is quite popular among a number of people.
  • Sharing bookmarks.html between multiple installations doesn't work any more, but using Weave Sync should bring almost the same experience.
Note that it's intentional that we are doing this early in SeaMonkey 2.1 development so we can improve the code further based on feedback from testers. Also, we're not completely mirroring Firefox, as we're keeping history and bookmarks as separate windows, and our bookmarks organizer looks much more like our standard SeaMonkey windows. We keep the bookmarks button in the personal toolbar (which of course can be removed with the customize toolbar feature).

The work in progress I have on my desktop is so far doing quite well, almost everything is working fine, with the exception of HTML import/export (needs the relevant service to move to toolkit) and the keyword feature in the location bar (places supports it, I just haven't yet found out how to hook it up).

We will have places bookmarks in SeaMonkey 2.1, with a good number of additional features, and it's progressing well. We are trying to keep the inconveniences low for people losing something they used, please let's help together to pull this off and make it a good experience for everyone.

A lot of work is still to be done, let's work together, help each other and make it an experience that is as good as it possibly can be!

By KaiRo, at 23:12 | Tags: bookmarks, Mozilla, places, SeaMonkey, SeaMonkey 2.1 | 6 comments | TrackBack: 0

March 8th, 2010

Weekly Status Report, W09/2010

Here's a summary of SeaMonkey/Mozilla-related work I've done in week 09/2010 (March 1 - 7, 2010):
  • Releases:
    I built candidate builds for the last ever SeaMonkey 1.x release. The announcement we'll have in the middle of March will be the end of life (EOL) of the 1.1.x series, actually, but we'll offer SeaMonkey 1.1.19 as an update for a few known security problems - but not all of them. Only SeaMonkey 2.0.x is kept completely secure, and only that series will be maintained and get updates from now on.
  • Build Infrastructure And Automated Tests:
    My small fix for Windows leak stats could land on buildbotcustom and so SeaMonkey could update to the most recent revision and use it completely without local patches again.
  • Places:
    Next to my recent work on porting places history performance fixes and places bookmarks, I did the SeaMonkey part of an interface change that cleans up code a bit and landed twice on mozilla-central this week but has been backed out again both of those times. If it lands again, we have a patch ready so that SeaMonkey trunk doesn't break and can use that work right away.
    On bookmarks front, I did get to sort out some command and key definitions - and I started a thread on m.d.a.seamonkey to find out what style the management window should follow. Looks like the split view with ideally a possibility to tree-like expand folders in the main area seems to be what people there tend to. If you have any arguments to bring on that topic, please do there.
  • Services.jsm:
    As the module gained support for a few more services, I updated my patch for starting to use it in SeaMonkey and also included some more line breaking improvements.
  • Various Discussions:
    Packaging fixes to fix test bustage, emptyText->placeholder switch, build system reviews, places bookmarks FUD, more improvements for "human-readable" pushlog feeds, Mozilla communication channels, commit access policy, planning, "open to choice" and missing choice at the "EU ballot", etc.

The SeaMonkey project is about to turn 5 years old! On March 10, 2005, the Mozilla Foundation posted a transition plan to surrender development, project and release management for the long-lived application suite to the community and therefore paved the road for our project to emerge. On July 2, we announced that our newly formed project would go under the "SeaMonkey" name, on September 15, we released our first Alpha under that brand, on December 2, we announced our new logo, and January 30, 2006, marked the SeaMonkey 1.0 release. While we started development of a toolkit-based really new version shortly after that, we did a 1.1 with only smaller improvements on top of 1.0 a year later. The brand new development version took a quite long time to be ready and stable, but was delivered to the public on October 27, 2009, as the SeaMonkey 2.0 release. Now, we're working on more to come while we're finally stopping support on the old xpfe-based suite code we inherited 5 years ago and which has served as a good base for getting this project set up, thriving on its own and work with more modern code in the end.
I'll do a dedicated blog post about this topic in the next days - probably on the SeaMonkey blog. Let's celebrate the first 5 years of this project and work on many more to come!

By KaiRo, at 20:51 | Tags: L10n, Mozilla, SeaMonkey, Status | 1 comment | TrackBack: 0

March 1st, 2010

Weekly Status Report, W08/2010

Here's a summary of SeaMonkey/Mozilla-related work I've done in week 08/2010 (February 22 - 28, 2010):
  • Build Infrastructure And Automated Tests:
    The new Mac machines are here and working now, I integrated them into the build pool and then requested some Parallels VM restructuring.
    Phong from Mozilla IT already had set up the new minis for us and replaced our previous older mini with one that has 1GB of RAM so it can process build symbols correctly. He also performed that restructuring of VMs on Parallel so that we now have 5 build machines on all three primary platforms. Thanks a lot for all that, this made us finally have the power to run everything we need on trunk and one branch (machines for a second release branch have been requested).
    With all those machines working well, we could finally turn on all test suite for SeaMonkey trunk debug builds. Test runs show up on the SeaMonkey tinderbox page but many of them show failures. We'll need to work on getting that cleared up, even if those are shared or platform tests. We probably need to take care of getting fixes ourselves, platform people usually are satisfied when Firefox tests pass but willing to take patches that other apps pass as well.
    We're failing on many mailnews tests when executing them from the tests packages as told before, I tried to do a patch by using more standard directories to put test files.
    Additionally, I worked with Alice from Release Engineering to get graphs server posting moved to production and it's done now!
  • Places:
    On my local system only, I did some more work on places bookmarks support, and I now have the personal bookmarks toolbar as well as both the main bookmarks menu and the toolbar menubutton showing correctly and calling up saved bookmarks, live bookmarks work and even microsummaries should. A number of the context menu commands still need some work, and I have no support whatsoever for adding or managing bookmarks yet (with the exception of toolbar/menu drag and drop). And then, the files probably need a lot of cleanup, most of them are just directly copied from Firefox with just minor modifications.
    I'm starting to wonder if and how to split up that work into smaller patches though as the work starts to get quite large, a diffstat for the current patch says "30 files changed, 13129 insertions(+), 111 deletions(-)" and I obviously haven't removed any of the old code yet.
    While on the topic of places, I decided to also port some improvements from Firefox places code over to the history places stuff we already have in SeaMonkey. That's also not a small patch (62KB), but with 3 files changed, 631 insertions(+), 507 deletions(-) it's much more manageable for review, I hope, and it already had it's first rough pass of that but needs some answers from places developers as well to get in.
  • Services.jsm:
    Gavin introduced Services.jsm to toolkit this week, and as I think this is a very welcome improvement for reducing code complexity, I did a patch for starting to use it in SeaMonkey right away. The patch is really just a start, but with adding 119 lines and removing 210 (somewhat clouded by breaking some previously too long lines at 80 characters) it shows the direction we're going there: an overall decrease of code lines - and at the same time better understandable code.
    See my two favorite examples from that patch:
    -  const kWindowMediatorContractID = ";1";
    - const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
    - const kWindowMediator = Components.classes[kWindowMediatorContractID]
    - .getService(kWindowMediatorIID);
    - var lastPrefWindow = kWindowMediator.getMostRecentWindow("mozilla:preferences");

    + var lastPrefWindow = Services.wm.getMostRecentWindow("mozilla:preferences");
    -  var observerService = Components.classes[kObserverServiceProgID]
    - .getService(Components.interfaces.nsIObserverService);
    - observerService.removeObserver(offlineObserver, "network:offline-status-changed");
    - var prefService = Components.classes[";1"];
    - prefService = prefService.getService(Components.interfaces.nsIPrefService);
    - var prefBranch = prefService.getBranch(null);
    - prefBranch = prefBranch.QueryInterface(Components.interfaces.nsIPrefBranch2);
    - prefBranch.removeObserver("network.proxy.type", proxyTypeObserver);

    + Services.obs.removeObserver(offlineObserver, "network:offline-status-changed");
    + Services.prefs.removeObserver("network.proxy.type", proxyTypeObserver);
    Of course, a Components.utils.import("resource://gre/modules/Services.jsm"); has been added at the top level before all those calls.
  • German L10n:
    I could get the German language pack listed on the Dictionaries & Language Packs page of the SeaMonkey Add-Ons website.
  • Various Discussions:
    Fixing FTP file upload, How To Drive Away Contributors, go for Gecko and SeaMonkey 1.x EOL-release, web form management, improvements for "human-readable" pushlog feeds, privacy policies, forms management, Mozilla communication channels, etc.

Could make some good progress this week, and build system porting is also progressing a lot, which is really good to see. I hope other SeaMonkey 2.1 work is also progressing so that we can make this a really good release. Meanwhile, a second alpha from the Mozilla 1.9.3 platform is being made, so we hopefully have something to base on once we have some new code to test in an alpha of our own.

By KaiRo, at 17:36 | Tags: L10n, Mozilla, SeaMonkey, Status | 3 comments | TrackBack: 0

Feeds: RSS/Atom