published on Saturday 31 May, 2008 at 11:34 pm. {9 Comments}
Well, it’s been a long time coming, but Sparkle 1.5 is finally available. Except it’s Sparkle 1.5b1. This means I think it’s done, and lots of people have been using it for a while, but it might still have rough edges.
There’s a new site, too, and it’s dramatically simplified. Documentation is… forthcoming, I’m afraid—if you want to use any of the really fancy new features, you’ll have to take a look at the code to see how to do it. Sorry about that. I’ll get to it in a few weeks.
I’m also actively soliciting localizations. All of Sparkle’s old ones are wayyyy out of date. If you’re interested in doing a localization, you should email me so that we can coordinate and not have many people doing one language.
What’s new? Oh goodness, tons of stuff.
continued…
published on Friday 09 May, 2008 at 12:07 am. {3 Comments}
If you click some of the links along the right side of Sparkle’s home page, you might notice that they lead to some new places…

Sorry, Git lovers, my guts took me to Bazaar and Launchpad. It wasn’t really a Git vs. Bzr thing; it was a Launchpad vs. Lighthouse+Github thing. I’m really pleased with the new solution so far, and I hope you’ll follow me to new and maintainable horizons.
Sparkle’s development now has a new home, complete with a new source repository and a new bug tracker.
Soon-ish, I’ll get up a new, simplified Sparkle home page—one that doesn’t have four different nav bars—and wiki. If any of you lovely designers in the audience feel like contributing, I’d love the help. I’m also looking into enabling the translations and blueprints sections for Sparkle on Launchpad.
Update: Some people were saying they were having trouble getting Bazaar going on OS X. It’s actually pretty simple: just get MacPorts and run:
published on Wednesday 07 May, 2008 at 7:10 pm. {8 Comments}
I sent this post to the Sparkle mailing list as well, but I thought I’d post it here to be more certain that I’m not screwing up.
I’ve decided I’m only willing to keep working on Sparkle if it’s not going to annoy me, and there are a few things that are annoying me:
- The state of the codebase. With this refactoring, I’m mostly happy. There’s a little more to do, but not a ton.
- Trac. I hate Trac. I hate it in the face.
- SVN. Someone sends me a patch, but it’s for three versions ago, so I have to apply it by hand. And then projects which have their own modifications are permanently behind, so we get things like Adium 1.1 exploding in a giant fireball.
I think my plan right now is to switch to LaunchPad, using Bazaar for RCS. The alternative is Lighthouse with Git for RCS through GitHub. So here’s the way I see things:
LaunchPad+Bazaar:
- Advantages:
- LaunchPad has “questions” as a separate thing from normal tickets. I like this a lot.
- LaunchPad has an “idea tracking” feature called Blueprints which could be really useful.
- The translations feature on LaunchPad could potentially be very useful.
- It’s one site instead of two.
- Bazaar is a hell of lot easier to use than Git.
- Bazaar has friendly revision numbers.
- Disadvantages:
- Not quite as shiny as the alternative.
- Has a slightly Ubuntu-y taste.
- Feels “bigger”.
- Bazaar doesn’t have as good adoption as Git.
Lighthouse+Git[Hub]:
- Advantages:
- Shiny and in fashion.
- More “powerful” in ways I probably don’t care about.
- Disadvantages:
- Two sites instead of one; users have to register at both places.
- Git is more confusing.
- Doesn’t have translations, blueprints, or questions.
- Lighthouse seems clumsy compared to LaunchPad in ways I can’t describe.
So I’m going to start working on making the former happen, but if there’s a really good reason we should be using Lighthouse+Git[Hub], please let me know.
published on Wednesday 07 May, 2008 at 4:15 pm. {6 Comments}
This has been a long time coming.
I’ve just finished a monster refactoring to Sparkle which will hopefully keep it maintainable for the foreseeable future.
Sparkle now performs updates using drivers—you can see the current varieties on the left. This has let me take SUUpdater from about 1000 lines to 200. All the cases for different update methods are now handled through inheritance.
Along the way, I’ve cleaned everything up and made things as simple as possible. I finally feel like between this and the SUInstaller refactoring, I can actually stand to work on this project.
Anyway, with this comes a great big warning: this is not ready for primetime yet. Please, please test this revision with your app and let me know what you think (even if it’s just to say “everything’s great!”). If we don’t hear anything terrible in a week or two, we’ll say it’s good to go.
More changes may be forthcoming; you probably shouldn’t fork or subclass things for a while. And check out the (somewhat) more detailed changelog here.
Launching with LaunchPad
On another note, I’m planning to move Sparkle the hell away from Trac and SVN, both of which drive me nuts. I need a branching RCS to be efficient as a maintainer.
My current plan is to use LaunchPad because it has bug tracking integrated as well, which means using Bazaar. I may also end up using LaunchPad’s translation and idea-tracking features, which could be neat.
Is this a terrible idea? Should I be moving somewhere else? Git seems promising, but I kind of need an end-to-end project management solution like LaunchPad or Trac. And I’m not paying for Lighthouse—Sparkle has a budget of $0.
published on Friday 21 December, 2007 at 9:55 am. {3 Comments}
Since you’re reading this, you’ve probably also read my post on package management for OS X, in particular the “anti-DLL hell” problem 3rd-party framework developers experience.
When I started Sparkle, it was a weekend-long project that I mostly did for myself. I never expected it to get this kind of adoption rate, so I didn’t really give any thought to scalability or anything, but now it’s a big issue. It’s silly to have this library being distributed a couple hundred times over, in different versions. Also scary.
With that in mind, I want to hold off on big plans for Sparkle 2 as a system-wide updating thing until I think more about a general system-wide package manager, as the latter would solve both problems.
To that end, I’m currently doing a major refactor of Sparkle 1.5 to keep it maintainable and extensible for the future. I’ll let you know how it goes.
Bear with me, folks.