[Adium-devl] 10.5
David Smith
catfish.man at gmail.com
Sat Aug 9 22:27:31 UTC 2008
So, I've seen a number of proposals for what to do about dropping
Tiger support. I'm going to try to summarize and analyze them a bit to
get the discussion started again.
Upsides from dropping 10.4
Remove expat from the codebase (-13000 lines of code, faster
compiles, smaller binary)
Use fast enumeration (slight speed and safety improvements, more
concise and readable code)
Use properties (Better self-documenting code due to things like copy/
retain/assign in the header, more concise)
Use xcconfig files (Makes managing project configuration
significantly simpler)
Use the new XIB format for nibs (Single file format makes moving nibs
around not mess up svn, eliminates at least one of our custom build
steps, nib warnings/errors in compiler output)
Don't need to #ifdef upcoming reimplementations of AdiumSound and
parts of ShortcutRecorder (the current one is not supported in 64 bit,
the new one won't be supported on Tiger)
Parallel target builds (Faster compiles)
GCC 4.2/GCC-LLVM (not sure if there's any benefit for us here. 4.2
might have some better warnings and such)
-lazy_library/-lazy_framework (again, not sure if we would benefit
from this, but possibly we could lazy-load some of our less frequently
used libraries)
Remove 10.4 compatibility code (searching for calls to
isOnLeopardOrBetter turns up 22 hits, plus there's all the stuff in
AITigerCompatibility.h and IKPictureTakerForTiger)
No weird Tiger-only bugs to deal with like we've had with 1.3
Eliminate some private APIs that we currently have headers for
(NSImagePicker for example)
Other things I'm forgetting?
Downsides:
Drops 10.4 users, duh ;) Currently that's >30%, but going down
Options:
1) Keep 1.3 as a semi-active branch while 1.4 goes Leopard-only.
MSNP15, Sparkle 1.5, etc... would bake in trunk for a while, then
merge to 1.3.x. I think I'm currently in favor of this plan.
Upsides: Trunk goes Leopard immediately, speeding along development.
10.4 users don't get left in the cold.
Downsides: Developer bandwidth and 1.3.x stability concerns.
2) Sharply limit the scope of 1.4 (maybe just MSNP15 and Sparkle 1.5)
and begin beta for it very shortly after 1.3 is released.
Upsides: Avoids the downsides of 1
Downsides: Trunk remains Tiger compatible for at least a month or two
more, during a period where it appears a number of Adium developers
have some time on their hands.
3) As 2, except with a 1.5 branch active in parallel.
Upsides: Avoids the downsides of 2, and the stability concerns of 1
Downsides: Have we ever been able to handle 3 active branches? Not
that I'm aware of.
4) Just drop Tiger in 1.4 and proceed as normal.
Upsides: Easy
Downsides: Leaves a good chunk (maybe 20% at release?) of our
userbase unable to upgrade to the latest version
5) ???
More information about the devel
mailing list