Monthly Archives: May 2013

Switching to bzr for tight Launchpad integration

Judging by what the duck says Midori must be the only project in the world migrating from git to bzr. Or maybe, it was just so surprisingly quick and simple that there’s no need to brag about it. In fact Launchpad itself performed the import automagically and the switch is really about updating documentation and a cuple of hyperlinks. It might’ve been harder if I wasn’t familiar with bzr yet; pushing the new trunk and flipping an option to make it the focus branch was all that was needed.

The old world

Why did we actually make this step? To make project management more efficient. Midori as a project roughly might be split into

  • bug triaging
  • reviewing contributions
  • implementing code
  • design decisions
  • roadmap

It turns out a huge bottle neck was the manual effort standing between these separate aspects. For example anyone doing bug triaging wouldn’t have direct access to code. And code review was always separate from both code and bug management. To the point that people end up waiting on, looking for and blocking on each other. And losing contributors, which is the worst thing to happen to any free software project.

The new world

  • There’s an obvious, easy way for anyone to push branches
  • Code review is integrated with branches and bugs
  • Anyone can become a reviewer, merge and push code

bzr vs. git

I do enjoy a proper emotional project bashing as much as the next guy, especially with a beer in front of me. But really, these days bzr and git both have a comparable share, personally I work on either one on and off. And at the end of the day what counts is the health of Midori as a project. Bazaar may well have the weaker storage efficiency and performance compared to git in a benchmark, but in this case git had the higher human cost.

Go ahead and contribute now

And, with a miserable impersonation of River Song I’ll say “There is more exciting changes to come… spoilers”.

WebKit2, downloads, web apps and clang

With a slightly prolongued freeze period Midori 0.5.1 0.5.2 is out of the door. We made a big leap on the promised WebKit2 support – it’s not fully done yet but very, very usable despite not having context menus and some extensions are to be done. Definitely worth giving a go for anyone curious about multi-process goodness who can live without adblock if need be.

Downloads and web app support have both received major refactoring, making the code much more modular and approachable, and fixing buglets and adding polish along the way. Downloads work more reliably across windows and more quality control across panel and toolbar. The way is paved for even more goodness. For the first time you can manage web apps/ launchers created from within Midori graphically. This is also up for even more improvements.

To round it up a whole lot of code improvements have come from static analysis such as clang (LLVM) and other sources and a number of buglets were squashed. Despite all the bigger changes QA is looking very good. Note to self: having strict feature freeze periods before every release is paying off, even if it’s hard in a small team.

Update: I apparently goofed up the release process and 0.5.1 insists it is still 0.5.0. To reduce confusion this is 0.5.2 now, same thing, but with a proper version.

So download Midori v0.5.2 (1.1 MB) (MD5) (ChangeLog) already!

Also Midori v0.5.2 32-bit Portable for Windows (32 MB) or Midori v0.5.2 32-bit Installer for Windows (34 MB) now. You are welcome to join #midori on irc.freenode.net and help testing pre-releases for Windows. You can make the difference by helping out!