add sparkle updating framework