On Jun 24, 2009, at 1:50 PM, Nick Beadman wrote: Assuming we do have access to Snow Leopard seeds, and this question can be answered in a generic enough way to be aired in public without violating the NDA, does any one have any tricks or tips to aid development on a moving target?
Sure. This can be openly discussed, because this has happened with every previous release of the OS; developers typically want -- at least I always do -- to have both Current and Current+1 with some data shared between.
So.... we'll just go back in time and consider Tiger->Leopard.
Now, with that said, keep in mind that Apple puts a huge emphasis on release to release binary compatibility. This includes executables and things like preferences, etc... Quite apart from the completely controllable settings within Xcode to target a deployment target that is different from the one being developed upon there is the issue of continual installation and having the rest of our "digital life" along for the ride. This must be a problem that is at least solved within Apple but I am wondering if anyone is prepared to document how they continually update to a new seed release while maintaining their data. It is not clear to me that installation over a previous version is possible, or more honestly recommended, and doing Archive and Install every time seems fairly time consuming.
I'll describe what I do, and have done since.... uh... hrm... the transition from NeXTSTEP 1.0 to 2.0.
First, I partition my hard drive into three partitions:
Beta Production Data
Then, I build out the Production partition with a fully configured version of the current production OS.
Next, I install all of the various software bits onto said partition-- Aperture, iLife, iWork, LaunchBar, etc.etc.etc...
After that, I make sure that the partition is fully software updated.
Then I move my user account from /Users/bbum to /Volumes/Data/Users/bbum. I do this from my 'admin' account which actually continues to live on the boot partition, never has any non-expendable data in it, and is largely disposable. As a matter of fact, my 'bbum' user account is non-administrative (but has 'sudo' rights -- edit /etc/sudoers to add 'em) and I rarely log into the admin account directly; only to do major administrative work on the system.
Moving the account is easy; copy/move the account to the right spot on /Volumes/Data, then use the advanced functionality in the accounts pane to change the path. Delete the one in /Users/ to prevent confusion, done.
Now, to install the beta OS, I'll do one of two things (it used be that I would only do (1) because (2) wasn't possible until relatively recently -- Panther / Tiger time frame, IIRC??):
(1) boot from the installer DVD and do a clean install into the Beta partition, migrating users / data / system configuration, as desired. The migration assistant is smart enough to recognize when an account is located on a non-boot partition and not copy it.
(2) Boot into the installer and Use Disk Utility to make restore a copy of Production onto Beta (unfortunately, DU doesn't let you rename the volume). Then do an upgrade install onto one of the two partitions (which will be identical unless you boot into one of 'em after the restoration) and rename it back to Beta on first boot.
Of the two, (2) is the far superior option. Not only do you continue to use the same home account -- if something breaks as a result of dual-homing, file a bug!!!! -- but all your applications will be installed into the beta environment, too (if one of 'em breaks.... file a bug!!!!).
It works really really well; I've been eating this particular pile of dog food for 17 years. There have been some hiccups in the past, now fixed (I filed a bug!!!!).
Tiger -> Leopard was really smooth using the above process. Of the hiccups, almost all were constrained to builds that were never seeded.
The Snow Leopard transition is even smoother....
b.bum
|