Permalink
Browse files

Version 0.15 (beta 15)

  • Loading branch information...
1 parent 544118c commit 8fc14aed996d2b68690b2886f8a59e77277659c8 @ginatrapani ginatrapani committed Aug 30, 2011
View
1 docs/source/changelog.rst
@@ -6,6 +6,7 @@ Check out what's new, fixed, and updated in each version release of ThinkUp.
.. toctree::
:maxdepth: 1
+ changelog/0.15
changelog/0.14
changelog/0.13
changelog/0.12
View
35 docs/source/changelog/0.15.rst
@@ -0,0 +1,35 @@
+Beta 0.15 - 30 Aug 2011
+=======================
+
+**New features:**
+
+* Capture Facebook media: Store and display Facebook post links titles, images, descriptions, and captions
+* Capture Facebook "likes": Store and display Facebook post "likes" and sort posts by most-liked, this week and all
+ time
+* Capture Facebook friends' location (when permitted) so that the Geoencoder plugin can plot Facebook replies on a
+ Google Map
+* Add "Recent Activity" dashboard chart: A post-by-post bar chart of replies and likes/retweets
+
+**Improvements:**
+
+* Upgrade Facebook plugin to OAuth 2.0 for more secure authorization flow
+* Improve login security: Enable database-stored per-user password salt (instead of hard-coded single salt)
+* Improve t.co support: The ExpandURLs plugin gracefully handles multiple-shortened URLs, like a t.co link which
+ shortens a bit.ly or instagr.am link
+* On a fresh installation, enable the Twitter, Facebook, and Expand URLs plugins by default
+* Add configurable "cache_lifetime" value to the config.inc.php file to reduce database load on busy installations
+* Sped up dashboard render time by aggressively caching query output to file
+
+**Fixes:**
+
+* Smartly remove deleted tweets from ThinkUp's datastore
+* Reduce failures during database upgrade process
+* Fix broken links to service user pages & restored post listings there
+* Fix missing image thumbnails for t.co-shortened image links
+* Fix RSS feed link for email addresses with a + sign in them
+* Fix broken Facebook post export
+* Simplified and consolidated Twitter dashboard menu
+* Fixed bug where locked user account didn't get unlocked on password reset
+* Fix in-post HTML entities display bug (in an "I <3 NY" tweet, &lt;3 displays as <3)
+* Various CSS/page layout fixes
+
View
4 docs/source/conf.py
@@ -48,9 +48,9 @@
# built documents.
#
# The short X.Y version.
-version = '0.14'
+version = '0.15'
# The full version, including alpha/beta/rc tags.
-release = '0.14 beta'
+release = '0.15 beta'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
View
55 tests/migration-assertions.php
@@ -29,7 +29,7 @@
*
* Database migration assertions to test during WebTestOfUpgradeDatabase
*/
-$LATEST_VERSION = '0.14';
+$LATEST_VERSION = '0.15';
$MIGRATIONS = array(
/* beta 0.1 */
@@ -414,7 +414,7 @@
/* beta 0.14 */
'0.14' => array(
- 'zip_url' => 'file://./build/thinkup.zip',
+ 'zip_url' => 'https://github.com/downloads/ginatrapani/ThinkUp/thinkup_0.14.zip',
'migrations' => 1,
'migration_assertions' => array(
'sql' => array(
@@ -487,4 +487,55 @@
)
)
),
+
+ /* beta 0.15 */
+ '0.15' => array(
+ 'zip_url' => 'file://./build/thinkup.zip',
+ 'migrations' => 1,
+ 'migration_assertions' => array(
+ 'sql' => array(
+ array(
+ // Created first_seen column
+ 'query' => 'DESCRIBE tu_follows first_seen',
+ 'match' => "/timestamp/",
+ 'column' => 'Type',
+ ),
+ array(
+ // Created pwd_salt column
+ 'query' => 'DESCRIBE tu_owners pwd_salt',
+ 'match' => "/varchar\(255\)/",
+ 'column' => 'Type',
+ ),
+ array(
+ // Created description column
+ 'query' => 'DESCRIBE tu_links description',
+ 'match' => "/varchar\(255\)/",
+ 'column' => 'Type',
+ ),
+ array(
+ // Created image_src column
+ 'query' => 'DESCRIBE tu_links image_src',
+ 'match' => "/varchar\(255\)/",
+ 'column' => 'Type',
+ ),
+ array(
+ // Created caption column
+ 'query' => 'DESCRIBE tu_links caption',
+ 'match' => "/varchar\(255\)/",
+ 'column' => 'Type',
+ ),
+ array(
+ // Dropped is_image column
+ 'query' => 'DESCRIBE tu_links is_image',
+ 'no_match' => true
+ ),
+ array(
+ // Created favlike_count_cache column
+ 'query' => 'DESCRIBE tu_posts favlike_count_cache',
+ 'match' => "/int\(11\)/",
+ 'column' => 'Type',
+ ),
+ )
+ )
+ )
);
View
8 webapp/install/sql/build-db_mysql.sql
@@ -229,8 +229,8 @@ CREATE TABLE tu_owner_instances (
CREATE TABLE tu_owners (
id int(20) NOT NULL AUTO_INCREMENT COMMENT 'Internal unique ID.',
full_name varchar(200) NOT NULL COMMENT 'User full name.',
- pwd varchar(256) DEFAULT NULL COMMENT 'Hash of the owner password',
- pwd_salt varchar(256) NOT NULL COMMENT 'Salt for securely hashing the owner password',
+ pwd varchar(255) DEFAULT NULL COMMENT 'Hash of the owner password',
+ pwd_salt varchar(255) NOT NULL COMMENT 'Salt for securely hashing the owner password',
email varchar(200) NOT NULL COMMENT 'User email.',
activation_code int(10) NOT NULL DEFAULT '0' COMMENT 'User activation code.',
joined date NOT NULL DEFAULT '0000-00-00' COMMENT 'Date user registered for an account.',
@@ -425,13 +425,13 @@ CREATE TABLE tu_users (
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Service user details.';
--- Dump completed on 2011-08-30 12:08:55
+-- Dump completed on 2011-08-30 15:07:47
--
-- Insert DB Version
--
INSERT INTO tu_options (namespace, option_name, option_value, last_updated, created)
-VALUES ('application_options', 'database_version', '0.14', NOW(), NOW());
+VALUES ('application_options', 'database_version', '0.15', NOW(), NOW());
--
-- Insert default plugin(s)
View
8 webapp/install/sql/mysql_migrations/2011-08-11_issue_141_unique_salts.sql
@@ -1,8 +0,0 @@
--- Add password salt field
-ALTER TABLE tu_owners ADD pwd_salt VARCHAR( 256 ) COMMENT 'Salt for securely hashing the owner password' AFTER `pwd`;
--- Fill in default value
-UPDATE tu_owners SET pwd_salt = 'ab194d42da0dff4a5c01ad33cb4f650a7069178b' WHERE 1;
--- Should never be null
-ALTER TABLE tu_owners CHANGE pwd_salt pwd_salt VARCHAR( 256 ) NOT NULL COMMENT 'Salt for securely hashing the owner password';
-
-ALTER TABLE tu_owners MODIFY pwd varchar( 256 ) COMMENT 'Hash of the owner password';
View
36 webapp/install/sql/mysql_migrations/2011-08-23_issue_151_facebook_links.sql
@@ -1,36 +0,0 @@
--- Add link fields to support Facebook metadata
-
--- ALTER TABLE tu_links
--- ADD description VARCHAR( 255 ) NOT NULL COMMENT 'Link description.' AFTER title,
--- ADD image_src VARCHAR( 255 ) NOT NULL COMMENT 'URL of a thumbnail image associated with this link.' AFTER description,
--- ADD caption VARCHAR( 255 ) NOT NULL COMMENT 'Link or image caption.' AFTER image_src;
-
-
-
-CREATE TABLE tu_links_b15 (
- id int(11) NOT NULL AUTO_INCREMENT COMMENT 'Internal unique ID.',
- url varchar(255) NOT NULL COMMENT 'Link URL as it appears inside the post, ie, shortened in tweets.',
- expanded_url varchar(255) NOT NULL COMMENT 'Link URL expanded from its shortened form.',
- title varchar(255) NOT NULL COMMENT 'Link title.',
- description varchar(255) NOT NULL COMMENT 'Link description.',
- image_src varchar(255) NOT NULL COMMENT 'URL of a thumbnail image associated with this link.',
- caption varchar(255) NOT NULL COMMENT 'Link or image caption.',
- clicks int(11) NOT NULL DEFAULT '0' COMMENT 'Total known link clicks.',
- post_id bigint(20) unsigned NOT NULL COMMENT 'ID of the post which this link appeared on a given network.',
- network varchar(20) NOT NULL DEFAULT 'twitter' COMMENT 'Network of the post in which the link appeared.',
- is_image tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Whether or not the link represents an image. 1 if yes, 0 if not.',
- error varchar(255) NOT NULL DEFAULT '' COMMENT 'Details of any error expanding a link.',
- PRIMARY KEY (id),
- UNIQUE KEY url (url,post_id,network),
- KEY is_image (is_image),
- KEY post_id (post_id,network)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Links which appear in posts.';
-
-INSERT INTO tu_links_b15 (SELECT id, url, expanded_url, title, null, null, null, clicks, post_id, network, is_image, error FROM tu_links);
-
-RENAME TABLE tu_links TO tu_links_b14;
-
-RENAME TABLE tu_links_b15 TO tu_links;
-
-DROP TABLE tu_links_b14;
-
View
3 webapp/install/sql/mysql_migrations/2011-08-25_correct_tco_links.sql
@@ -1,3 +0,0 @@
--- http://t.co links shorten already shortened links; undo expansion to correct them
-
-UPDATE tu_links SET expanded_url = '' WHERE expanded_URL != '' AND instr(url, 'http://t.co') > 0;
View
8 webapp/install/sql/mysql_migrations/2011-08-26_separate_thumbnail_links.sql
@@ -1,8 +0,0 @@
--- Move image thumbnails to the new image_src field
-UPDATE tu_links SET image_src=expanded_url WHERE is_image=1;
-
--- Set expanded_url equal to '' for images so that ExpandURLs redoes the expansion properly
-UPDATE tu_links SET expanded_url='' WHERE is_image=1;
-
--- Drop deprecated field. From here on in, a link is an image if image_src is set
-ALTER TABLE tu_links DROP is_image;
View
15 webapp/install/sql/mysql_migrations/2011-08-27_post-fav-like-count-cache.sql
@@ -1,15 +0,0 @@
--- Add a field to posts to track fav/like count cache
--- ALTER TABLE tu_posts ADD favlike_count_cache INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'The total number of favorites or likes this post received.';
-
-CREATE TABLE tu_posts_b15 LIKE tu_posts;
-
-ALTER TABLE tu_posts_b15 ADD favlike_count_cache INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'The total number of favorites or likes this post received.';
-
-INSERT INTO tu_posts_b15 (SELECT *, 0 FROM tu_posts);
-
-RENAME TABLE tu_posts TO tu_posts_b14;
-
-RENAME TABLE tu_posts_b15 TO tu_posts;
-
-DROP TABLE tu_posts_b14;
-
View
24 webapp/install/sql/mysql_migrations/2011-08-30_add_first_seen_to_followers.sql
@@ -1,24 +0,0 @@
--- Add first_seen field to tu_follows
--- While we're in there, comment all the fields of the new table
-
-CREATE TABLE tu_follows_b15 (
- user_id bigint(11) NOT NULL COMMENT 'User ID on a particular service who has been followed.',
- follower_id bigint(11) NOT NULL COMMENT 'User ID on a particular service who has followed user_id.',
- last_seen timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last time this relationship was seen on the originating network.',
- first_seen timestamp NOT NULL COMMENT 'First time this relationship was seen on the originating network.',
- active int(11) NOT NULL DEFAULT '1' COMMENT 'Whether or not the relationship is active (1 if so, 0 if not.)',
- network varchar(20) NOT NULL DEFAULT 'twitter' COMMENT 'Originating network in lower case, i.e., twitter or facebook.',
- debug_api_call varchar(255) NOT NULL COMMENT 'Developer-only field for storing the API URL source of this data point.',
- UNIQUE KEY user_id (network,follower_id,user_id),
- KEY active (network,active,last_seen),
- KEY network (network,last_seen)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Service user follow and friend relationships.';
-
-INSERT INTO tu_follows_b15 (SELECT user_id, follower_id, last_seen, last_seen, active, network, debug_api_call FROM tu_follows);
-
-RENAME TABLE tu_follows TO tu_follows_b14;
-
-RENAME TABLE tu_follows_b15 TO tu_follows;
-
-DROP TABLE tu_follows_b14;
-
View
105 webapp/install/sql/mysql_migrations/2011-08-30_v0.15.sql.migration
@@ -0,0 +1,105 @@
+-- 2011-08-11
+-- Add password salt field
+ALTER TABLE tu_owners ADD pwd_salt VARCHAR( 255 ) COMMENT 'Salt for securely hashing the owner password' AFTER `pwd`;
+-- Fill in default value
+UPDATE tu_owners SET pwd_salt = 'ab194d42da0dff4a5c01ad33cb4f650a7069178b' WHERE 1;
+-- Should never be null
+ALTER TABLE tu_owners CHANGE pwd_salt pwd_salt VARCHAR( 255 ) NOT NULL COMMENT 'Salt for securely hashing the owner password';
+
+ALTER TABLE tu_owners MODIFY pwd varchar( 255 ) COMMENT 'Hash of the owner password';
+
+
+-- 2011-08-23
+-- Add link fields to support Facebook metadata
+
+-- ALTER TABLE tu_links
+-- ADD description VARCHAR( 255 ) NOT NULL COMMENT 'Link description.' AFTER title,
+-- ADD image_src VARCHAR( 255 ) NOT NULL COMMENT 'URL of a thumbnail image associated with this link.' AFTER description,
+-- ADD caption VARCHAR( 255 ) NOT NULL COMMENT 'Link or image caption.' AFTER image_src;
+
+CREATE TABLE tu_links_b15 (
+ id int(11) NOT NULL AUTO_INCREMENT COMMENT 'Internal unique ID.',
+ url varchar(255) NOT NULL COMMENT 'Link URL as it appears inside the post, ie, shortened in tweets.',
+ expanded_url varchar(255) NOT NULL COMMENT 'Link URL expanded from its shortened form.',
+ title varchar(255) NOT NULL COMMENT 'Link title.',
+ description varchar(255) NOT NULL COMMENT 'Link description.',
+ image_src varchar(255) NOT NULL COMMENT 'URL of a thumbnail image associated with this link.',
+ caption varchar(255) NOT NULL COMMENT 'Link or image caption.',
+ clicks int(11) NOT NULL DEFAULT '0' COMMENT 'Total known link clicks.',
+ post_id bigint(20) unsigned NOT NULL COMMENT 'ID of the post which this link appeared on a given network.',
+ network varchar(20) NOT NULL DEFAULT 'twitter' COMMENT 'Network of the post in which the link appeared.',
+ is_image tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Whether or not the link represents an image. 1 if yes, 0 if not.',
+ error varchar(255) NOT NULL DEFAULT '' COMMENT 'Details of any error expanding a link.',
+ PRIMARY KEY (id),
+ UNIQUE KEY url (url,post_id,network),
+ KEY is_image (is_image),
+ KEY post_id (post_id,network)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Links which appear in posts.';
+
+INSERT INTO tu_links_b15 (SELECT id, url, expanded_url, title, null, null, null, clicks, post_id, network, is_image, error FROM tu_links);
+
+RENAME TABLE tu_links TO tu_links_b14;
+
+RENAME TABLE tu_links_b15 TO tu_links;
+
+DROP TABLE tu_links_b14;
+
+
+-- 2011-08-25
+-- http://t.co links shorten already shortened links. Undo expansion to correct them
+UPDATE tu_links SET expanded_url = '' WHERE expanded_url != '' AND instr(url, 'http://t.co') > 0;
+
+
+-- 2011-08-26
+-- Move image thumbnails to the new image_src field
+UPDATE tu_links SET image_src=expanded_url WHERE is_image=1;
+
+-- Set expanded_url equal to '' for images so that ExpandURLs redoes the expansion properly
+UPDATE tu_links SET expanded_url='' WHERE is_image=1;
+
+-- Drop deprecated field. From here on in, a link is an image if image_src is set
+ALTER TABLE tu_links DROP is_image;
+
+
+-- 2011-08-27
+-- Add a field to posts to track fav/like count cache
+-- ALTER TABLE tu_posts ADD favlike_count_cache INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'The total number of favorites or likes this post received.';
+
+CREATE TABLE tu_posts_b15 LIKE tu_posts;
+
+ALTER TABLE tu_posts_b15 ADD favlike_count_cache INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'The total number of favorites or likes this post received.';
+
+INSERT INTO tu_posts_b15 (SELECT *, 0 FROM tu_posts);
+
+RENAME TABLE tu_posts TO tu_posts_b14;
+
+RENAME TABLE tu_posts_b15 TO tu_posts;
+
+DROP TABLE tu_posts_b14;
+
+
+-- 2011-08-30
+-- Add first_seen field to tu_follows
+-- While we're in there, comment all the fields of the new table
+
+CREATE TABLE tu_follows_b15 (
+ user_id bigint(11) NOT NULL COMMENT 'User ID on a particular service who has been followed.',
+ follower_id bigint(11) NOT NULL COMMENT 'User ID on a particular service who has followed user_id.',
+ last_seen timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last time this relationship was seen on the originating network.',
+ first_seen timestamp NOT NULL COMMENT 'First time this relationship was seen on the originating network.',
+ active int(11) NOT NULL DEFAULT '1' COMMENT 'Whether or not the relationship is active (1 if so, 0 if not.)',
+ network varchar(20) NOT NULL DEFAULT 'twitter' COMMENT 'Originating network in lower case, i.e., twitter or facebook.',
+ debug_api_call varchar(255) NOT NULL COMMENT 'Developer-only field for storing the API URL source of this data point.',
+ UNIQUE KEY user_id (network,follower_id,user_id),
+ KEY active (network,active,last_seen),
+ KEY network (network,last_seen)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Service user follow and friend relationships.';
+
+INSERT INTO tu_follows_b15 (SELECT user_id, follower_id, last_seen, last_seen, active, network, debug_api_call FROM tu_follows);
+
+RENAME TABLE tu_follows TO tu_follows_b14;
+
+RENAME TABLE tu_follows_b15 TO tu_follows;
+
+DROP TABLE tu_follows_b14;
+
View
2 webapp/install/version.php
@@ -26,6 +26,6 @@
* @license http://www.gnu.org/licenses/gpl.html
* @copyright 2009-2011 Dwi Widiastuti, Gina Trapani, Guillaume Boudreau
*/
-$THINKUP_VERSION = '0.14';
+$THINKUP_VERSION = '0.15';
$THINKUP_VERSION_REQUIRED['php'] = '5.2';
$THINKUP_VERSION_REQUIRED['mysql'] = '5';

0 comments on commit 8fc14ae

Please sign in to comment.