For some time I’ve not been entirely happy with ThinkTwit upgrades – development on ThinkTwit started initially as an internal project for a past employer (Think Consulting Solutions). We had been wanting to contribute to Open Source for some time and this seemed like the perfect solution to both problems: Open Source the code I have written.
When I then left my employer, knowing that there was no development capacity left within the business, I decided to continue maintaining ThinkTwit. From then on I have just been adding new features as I thought of them or as they were requested, as and when I had time. As this was just an aside hobby and I didn’t have much time to contribute a lot of the development was rushed (though as professional as possible in the time constraints) and so upgrades have not been as smooth as I had wished. This has been highlighted by two recent bug reports that I have had (which, though I appreciated the feedback, did not impress me – I felt I had let people down).
After a little bit of searching last night I found an article on the “Top 10 Characteristics of a WordPress Plugin” and it got me thinking a bit about how I can improve ThinkTwit, especially around upgrades. So what I’ll be shortly adding:
- A method of keeping track of all database options to allow for safe removal and updating of all database options
- A method of backing up old options (to allow rollback), adding new options when necessary and transforming options where they are changed during upgrades
- Deprecation of old methods for one version, including keeping the original as a deprecated method when a method is renamed or has additions to it (if not possible to alter the method without causing impact)
- Automated uninstall on request (rather than manual uninstall as is currently offered)
- Better error handling – currently there is an unsightly error thrown when Twitter is blocking excessive requests (this will be fixed separately) – such errors need to be handled better
- Reset options function