[Release] Installer refactor

Matthew Fulmer tapplek at gmail.com
Thu Oct 9 07:02:54 UTC 2008


You may have noticed me doing something fishy in the Sake repo
with the package Sake-Installer

This package is just a copy of Installer, but named
SakeInstaller. It is in the Sake repo because I'm planning to
rewrite Installer to use Sake, and this is preliminary work for
that. I am dividing Installer up into 14 classes:

Installer (abstract)
InstallerMC
InstallerUniverses
InstallerInternet (abstract)
InstallerWebBased (abstract)
InstallerFile
InstallerUrl
InstallerWeb
InstallerMantis
InstallerSM
InstallerWebSM
InstallerSake
InstallerUpdateStream
InstallerCruft (leftovers)

I have finished all but InstallerFile, InstallerSake, and
InstallerUpdateStream

I am doing the refactore entirely in vim, so that I can easily
compare old and new versions, using vimdiff. Monticello's diff
doesn't work when methods are moved or renamed. I have not
removed any methods, although I did add and modify a few in
order to keep Installer working. Most importantly, Installer
still uses the same syntax as it did before to install stuff,
so, sans bugs, existing Installer scripts will still work.

Once I finish the refactor in the Sake repo, I'll rename the
classes to the names listed above. I'm not sure what to do after
that, though.

I don't want to commit it to the Installer repo, as it is not
stable and may break for anyone who does an Installer upgrade. I
could commit it under a different package name, like
Installer-splitup.

Next, I'll need to test it. I plan to do that by replacing
http://installer.pbwiki.org/f/Installer.st with this split up
version, with a self notify: 'LPF is probably broken. try again
later', then making sure LPF runs in every image I can get hold
of.

After LPF works in all the images, I'll commit the splitup
Installer into the mainline Installer branch.

This will cause some down time for LPF, but I don't know of a
better way to test this and get it into production. Can I do
that?

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/


More information about the Release mailing list