What should be fixed in Firebird 0.8

Update Jan 30: see also What's new in Firebird 0.8.

alanjstr listed 11 bugs he thinks should be fixed before Firebird 0.8 is released. I agree with him on 3 bugs:

  • 229600 - Installing 2 extensions without restarting re-launches extension-installer for previous installed extensions. (regression)
  • 228988 - XPInstall - "Installation complete / restart" message always shown. (regression)
  • 230271 - Form autocomplete only works in the first tab. (regression)

I have 2 more bugs that I think should be fixed before 0.8:

  • 217410 - bump skin version. (This would prevent "no scrollbars after upgrade" problem.)
  • 228672 - Installer deletes unrelated folders. (Dataloss. New because Firebird 0.7 didn't have an installer.)

The installer bug is particularly scary because of the potential PR impact. The Firebird installer deletes all files in the installation directory if you check the "Safe Upgrade" box. A few users who installed nightlies into "C:\Program Files" lost that entire directory. I don't know if any users have lost data since the Dec 23 change to make the "Safe Upgrade" box unchecked by default, but if Firebird 0.8 is released with the bug, I'd expect at least a few users who install to weird directories to check the box.

A bug in the iTunes installer that wiped hard disks earned a Slashdot story. If Firebird 0.8 is released with this bug, I would expect it to lead to an even bigger backlash on Slashdot because:

  • The iTunes installer tried to delete iTunes.app (a specific application folder), while the Firebird installer tries to delete whatever directory you were installing to. "Nuke from orbit" upgrades are inherently dangerous, but they're even more dangerous when the user gets to choose the target directory.
  • The iTunes installer deleted more than it intended because of what is arguably a misfeature of the Bash shell: if you don't use quotes carefully, a script's behavior can change unexpectedly when a parameter contains a space. The Firebird installer deletes more than it intends because its developers didn't anticipate users installing Firebird directly to "C:\Program Files". Firebird has nobody else to share the blame.
  • Firebird's development process is open enough that anyone can see that we knew about the problem since at least December 30.
  • "Safe Upgrade" is the worst possible name for a misbehaving nuke-from-orbit feature.

My preferred solution for 0.8 is to relabel the checkbox from "Safe Upgrade" to "Delete all files in [installation directory]". (cf bug 197274, which changed "Enable Automatic Image Resizing" to "Resize large images to fit in the browser window".) I looked at some code but couldn't tell how hard it would be to change the checkbox label to include the installation directory.

I'm not sure what the installer "should" do. It would be nice if installing on top of an old build didn't cause random-seeming problems. Then nuking the installation directory from orbit would not be necessary. If fixing those problems is not feasible, maybe the installer should have a list of files or subfolders to delete, and only delete those.

Flag queries: blocking0.8+ (blocking), blocking0.8? (nominated), blocking0.8- (not blocking). Anyone may nominate bugs, but only a few people may plus or minus. Bugs that are plussed are usually recent regressions or newly discovered security holes. Don't renominate a minused bug unless you're sure you've added something the minuser didn't know.

4 Responses to “What should be fixed in Firebird 0.8”

  1. alanjstr Says:

    I haven’t decided on the skinVer. Part of the problem is that there is a pending change to help simplify the process.

    Yes, “Safe Upgrade” is a very bad name.

  2. Boris Says:

    You mean you don’t agree that the list of “this bug is a regression due to code Firebird forked that didn’t get updated to core api changes and has a patch” bugs really ought to get a good look for 0.8?

  3. Jesse Ruderman Says:

    Which ones were those?

  4. michaell Says:

    commenting on ancient entry –

    Boris is (I guess) referring to the other bugs on Alan’s list which you didn’t agree with – regressions like bug 221899. These are regressions since 0.7 caused by Gecko changes – all that’s needed is to apply the Seamonkey changes to the forked Firebird versions of the files.

    Obviously not going to happen though…