TweetSharp Preview 17 – And a response to API versioning
Earliery today Joel Spolsky sent these messages out during the DevDays conference:
“Twitter changed API on the fly, breaking TweetSharp, so
tweets were not showing on screen at #devdays. http://is.gd/4HYJe”
(http://twitter.com/spolsky/status/5283936128)
“In the old days, platform vendors used version numbers to
avoid breaking their developers. Today they don’t care.”
(http://twitter.com/spolsky/status/5283940571)
There was speculation that TweetSharp didn’t yet use API versioning announced by Twitter on October 16th and this was the cause of the issue. As a result we have released Preview 17 which does use the V1 endpoint. We apologize for not acting on this announcement sooner.
However, unit testing against both the V1 endpoint and the former endpoint using Preview 16 showed no adverse effects or sudden API changes. We do know that in the past that TweetSharp wouldn’t respond well to Twitter API changes after we went through through the pain of the the geo-tagging features being introduced to small groups of users, causing erratic behavior when our deserialization routines failed.
As a result, we relaxed the deserialization rules to break on the absence of only a handful of defining properties and released those changes as part of Preview 16. So while we don’t yet know what version DevDays was using when the error occurred, we could not reproduce the issues reported as of Preview 16. Either way we are sorry it happened, we love the conference and are thrilled that they chose TweetSharp to power it.
Twitter does care about versioning and has provided the first branch for versioning for its API, we are sorry for the past issues with deserialization when the Twitter API changes, we think we have the right pieces in place to do our best not to break your apps when things do change as of Preview 16 released October 22nd, and Preview 17 released today is using the versioned API endpoint, hopefully ensuring that future changes to Twitter’s API will occur on a new endpoint.
Please update your version of TweetSharp (both the TweetSharp library and JSON.NET that is bundled with it, as they upgraded it to handle null values for required fields without throwing exceptions) or live on the edge by building off the trunk to get changes as soon as we find them. Let us know if you still see discrepancies with returned API entities on Twitter, and send us the raw output so we can test it thoroughly with our unit tests to find the problem quickly.
Keep building great applications!




