Initial public beta release. 0.1.10 - 2010-02-12 - Dustin Bolton Fixed file download URL. 0.1.11 - 2010-02-12 - Dustin Bolton Various fixes. 0.1.12 - 2010-02-12 - Dustin Bolton Fixed importbuddy.php download length issue. 0.1.13 - 2010-02-13 - Dustin Bolton Clarified usage instructions. Various user interface changes. 0.1.14 - 2010-02-16 - Dustin Bolton Many various changes. 0.1.15 - 2010-02-18 - Dustin Bolton Added scheduling. Added email and FTP sending. 0.1.16 - 2010-02-18 - Chris Jean Created directory zipping class. 0.1.17 - 2010-02-26 - Dustin Bolton Various fixes. 0.1.18 - 2010-03-02 - Dustin Bolton Added updating system. 0.1.19 - 2010-03-02 - Dustin Bolton Update system fixes. 0.1.20 - 2010-03-02 - Dustin Bolton Updater fixes. 0.1.21 - 2010-03-03 - Dustin Bolton Various minor fixes. 0.1.22 - 2010-03-03 - Dustin Bolton Updater fixes 0.1.23 - 2010-03-03 - Chris Jean Updated backupbuddy.php: Rewrote code for PHP4 support Fixed clearstatcache warnings Updated lib/zip/zip.php: Added compat functionality for PHP4 0.1.24 - 2010-03-03 - Chris Jean Updated lib/zip/zip.php: Added native zip failure reason output for add_directory_to_zip function 0.1.25 - 2010-03-03 - Chris Jean Updated lib/zip/zip.php: Removed modified timestamp checking for native zip method Added better error messages 1.0.0 - 2010-03-04 - Dustin Bolton Fixed updater reporting upgrades always available. Official version change to 1.0 and public release. 1.0.1 - 2010-03-04 - Dustin Bolton UI improvements. FTP was failing in some situations. 1.0.2 - 2010-03-05 - Dustin Bolton Corrected Internet Explorer styling issues in importer. 1.0.3 - 2010-03-05 - Dustin Bolton Fixed FTP functionality. 1.0.4 - 2010-03-05 - Dustin Bolton Fixed hardcoded temporary password in importbuddy.php 1.0.5 - 2010-03-05 - Dustin Bolton Corrected PHP shorttag in importbuddy.php 1.0.6 - 2010-03-05 - Chris Jean Fixed relative path issue when adding db_0.sql to backup file. 1.0.7 - 2010-03-05 - Chris Jean Fixed problem with Step 2 of backup process hanging at "Backing up files...". Added missing PluginBuddyZip class initialization. 1.0.8 - 2010-03-05 - Dustin Bolton Fixed version numbering & removed PHPdoc from header. 1.0.9 - 2010-03-05 - Dustin Bolton Now hiding passwords on Settings page. 1.0.10 - 2010-03-05 - Dustin Bolton Updated key system. 1.0.11 - 2010-03-06 - Dustin Bolton Import script now pre-fills destination URL based on current url. 1.0.12 - 2010-03-07 - Dustin Bolton Not using standard apostrophe in SQL. (' instead of `) 1.0.13 - 2010-03-09 - Dustin Bolton Fixed curl_init error in updater on some servers. 1.0.14 - 2010-03-09 - Dustin Bolton Fixed managing licenses when using SSL url. 1.0.15 - 2010-03-10 - Dustin Bolton Fixed database only backup problem / empty zip file. Fixed database only import problem. Fixed missing .dat file in database only backup. 1.0.16 - 2010-03-10 - Dustin Bolton importbuddy UI fix. 1.0.17 - 2010-03-10 - Dustin Bolton Fixed HTTPS checking warning. Pre-release version 1.0.18a - 2010-03-12 - Chris Jean Intial rewrite of the backup process Output cleanup needed Laid foundation for multiple backup process to make a single backup Pre-release version - 2010-03-12 - Chris Jean Added a couple tweaks to backupbuddy.php and lib/zip/zip.php 1.1.0 - 2010-03-15 - Dustin Bolton Partial rewrite of importbuddy.php to handle new backup format for full and DB only backups. Legacy mode option in importbuddy.php to support older BackupBuddy backups (1.0.18 or older). FTP password now hidden. 1.1.1 - 2010-03-16 - Dustin Bolton Fixed successful extraction incorrectly returning failure message in importbuddy. Fixed updater $key warning. 1.1.2 - 2010-03-18 - Dustin Bolton Added backup file integrity check to BackupBuddy file listing. 1.1.3 - 2010-03-19 - Dustin Bolton Fixed strange characters being added into database on import by forcing UTF8 with SET NAMES option. Cleared up some warnings in file integrity checking. Pre-release version 1.1.4a - 2010-03-22 - Chris Jean Modified the primary zip process to not require the ZipArchive class Pre-release version 1.1.4b - 2010-03-22 - Chris Jean Removed the FileArchive warnings Pre-release version 1.1.4c - 2010-03-22 - Chris Jean Added diable_compression option for zipping Pre-release version 1.1.4d - 2010-03-22 - Dustin Bolton Added date sorting to backup file listing. Pre-release version 1.1.4e - 2010-03-22 - Dustin Bolton Now using recursive feature for making directories in case parent(s) missing. Using custom function for PHP4 compatability. 1.1.4 - 2010-03-23 - Dustin Bolton Updater now uses built-in WP ajax system. 1.1.5 - 2010-03-23 - Dustin Bolton Version fix. 1.1.6 - 2010-03-23 - Dustin Bolton Converted importbuddy download to using WP-Ajax system for increased compatibility. Fixed situation where only having one backup could cause file listing to now show on some servers. importbuddy UI improvements. 1.1.7 - 2010-03-24 - Dustin Bolton Fixed problem logging into license system on some servers. Backup directory is set on each load rather than only on installation in case this directory changes (ie new host). 1.1.8 - 2010-03-26 - Dustin Bolton Added web resources links to Getting Started page. Added better graphical indicator to display status during backups. 1.1.9 - 2010-03-30 - Dustin Bolton Added mySQL connection settings testing button to importbuddy.php. Improved user interface of importbuddy.php. Added documentation hover question marks '(?)' to importbuddy.php. 1.1.10 - 2010-04-01 - Dustin Bolton Added tutorial and support links to importbuddy.php Fixed condition where scheduled backups could trigger manual backup emails. 1.1.11 - 2010-04-02 - Dustin Bolton Corrected issue with scheduled file uploads & email attachments failing. Fixed issue with custom upload directory locations. 1.1.12 - 2010-04-02 - Dustin Bolton Fixed issue with admin dashboard permissions being denied in some situations when database prefix is changed. 1.1.13 - 2010-04-02 - Dustin Bolton Fixed alert email address setting not changing when settings saved. 1.1.14 - 2010-04-06 - Dustin Bolton Fixed problem with scheduled emails and FTP failing due to file not being passed to cron system. Added FTP connection test button. 1.1.15 - 2010-04-06 - Dustin Bolton Added option to disable compression for non-compatibility-mode backups to improve speed for improved host compatibility. 1.1.16 - 2010-04-12 - Dustin Bolton Fixed manual email notification being triggered by scheduled backups. Corrected flaw in the way cron schedule time periods were being added causing some incompatibility issues with other scheduling plugins. Fixed changing of site name & description in importbuddy.php 1.1.17 - 2010-04-12 - Dustin Bolton Added $force_compatibility option to importbuddy.php to override native zip detection and force compatibility mode. Added improved detection for lack of exec() function to importbuddy.php. 1.1.18 - 2010-04-22 - Dustin Bolton Updater: Fixed unchecked index warnings when curl unavailable. UI improvements to Settings page. Added option to force compatibility mode to settings page. Disabling ZIP compression now available in compatibility mode. No longer limited to native only. 1.1.19 - 2010-04-22 - Dustin Bolton Fixed forced compatibility mode for full backup not working. Flushing full mode status to screen after displaying compatibility mode notice for improved feedback. 1.1.20 - 2010-04-26 - Dustin Bolton Improved detection of native zip in importbuddy.php and compatibility fallback. Changed error message when falling back to compatibility to be less alarming. 1.1.21 - 2010-05-03 - Dustin Bolton Corrected native zip function detection bug caused by previous version. 1.1.22 - 2010-05-03 - Dustin Bolton Added site url to ZIP backup file name. Added option to delete file after scheduled sending via ftp and/or email. 1.1.25 - 2010-05-04 - Dustin Bolton Fixed backup integrity checker to recognize new filename format. 1.1.26 - 2010-05-06 - Dustin Bolton Fixed importbuddy.php to recognize new filename format. 1.1.27 - 2010-05-17 - Dustin Bolton Added Windows native zip compatibility by using http://pluginbuddy.com/wp- content/uploads/2010/05/backupbuddy_windows_unzip.zip 1.1.28 - 2010-05-17 - Dustin Bolton Windows native zip option now only displayed when running on a Windows server. Added more detail warnings for lack of exec functionality on Linux servers. Added option to disable file integrity checking for increased server compatibility. Added option to reset all settings & defaults in the Debugging Information section on the Getting Started page. 1.1.29 - 2010-05-20 - Dustin Bolton Added .htaccess migration to importbuddy.php to handle changes in subdirectories from breaking permalinks. Added warning to Step 2 of importbuddy.php if an existing WordPress installation is found in the directory. 1.1.30 - 2010-05-24 - Dustin Bolton Fixed indices on some checkbox option on settings page. Added directory exclusion ability to non-compatibility mode backups via settings page. Added current server date & time to scheduling page. 1.1.31 - 2010-05-24 - Dustin Bolton Corrected importbuddy debugging defaulting to true. 1.1.32 - 2010-05-28 - Dustin Bolton Updated updater for WP 3.0 1.1.33 - 2010-06-01 - Dustin Bolton Corrected license manager loading issue due to short timeout limit. 1.1.34 - 2010-06-02 - Dustin Bolton Removed legacy mode from importbuddy.php. Improved importbuddy.php unzip failure detection. Improved unzip.exe Windows executable detection and usage. Added prompt for migrating or restoring for improved usability. Added additional information on database settings. 1.1.35 - 2010-06-21 - Dustin Bolton Fixed notice of unexpected output on plugin activation in WordPress 3.0 1.1.36 - 2010-06-21 - Dustin Bolton Added advanced troubleshooting options to importbuddy.php Step 1. Improved directory exclusion usability for all users. Now supports OS X. Improved Getting Started page. 1.1.37 - 2010-06-24 - Dustin Bolton Began added error codes with links to the wiki for more error details and potential fixes. Improved error reporting on mysql errors during backups. 1.2.0 - 2010-06-25 - Dustin Bolton Added Amazon S3 support for remote backups. Added FTPs support for remote backups. 1.2.1 - 2010-06-29 - Dustin Bolton Added directory configuration option for Amazon S3. Various minor fixes. 1.2.3 - 2010-07-07 - Dustin Bolton Fixed improper label-checkbox associations. Added feature to continue in importbuddy even if backup ZIP file is not found. 1.2.4 - 2010-07-14 - Dustin Bolton Corrected updater conflict with 3.0 plugins. 1.2.5 - 2010-07-16 - Skyler Moore Fixed importbuddy.php from excluding differing prefixed tables. 1.2.6 - 2010-07-20 - Dustin Bolton Added additional protection to temporary backup data to prevent failed backups from leaking secure data. Updated siteurl option to end use of deprecated functions. 1.2.8 - 2010-07-21 - Dustin Bolton Fixed problem with subdirectories caused by previous siteurl option update. 1.2.9 - 2010-07-26 - Dustin Bolton Scheduled backups now are set up using local time as set by WP Settings page. Improved backup file sort order. 1.2.11 - 2010-07-27 - Dustin Bolton Fixed issue in updater preventing some other plugins from checking for upgrades. 1.2.12 - 2010-08-04 - Dustin Bolton Fixed issue where backup file listings could be viewed via wp-cron.php under some circumstances. Updated updater to be universal for PluginBuddy & iThemes branded products. 1.2.15 - 2010-08-11 - Dustin Bolton Removed FTP filename announcement for increased security during cron. Email notifications now properly going to specified address. Re-coded large portion of updater to better handle WordPress 3.0 issues better. Updated importbuddy.php to provide more detailed error warnings & links to codex. 1.2.17 - 2010-08-11 - Dustin Bolton Corrected some warnings in debug mode from updater. 1.2.18 - 2010-08-23 - Dustin Bolton Fixed some index warnings on settings page. Amazon S3 support now out of beta. 1.2.19 - 2010-08-25 - Dustin Bolton Directory exclusion would only exclude the last directory on some servers. Trimmed newlines to fix. 1.2.20 - 2010-08-26 - Dustin Bolton Licensing fixes. 1.2.21 - 2010-09-07 - Dustin Bolton Licensing fixes. 1.3.0 - 2010-09-09 - Dustin Bolton Major importbuddy.php rewrite for enhanced compatibility. Added new compatibility mode to importbuddy: ZipArchive Fixed FTP system not sending. Fixed default FTP type on manual FTP sending popup. Added debug logging to importbuddy.php to log into importbuddy.txt. Added new option to optionally select compatibility mode to force to. 1.3.1 - 2010-09-20 - Dustin Bolton Updated importbuddy.php to fail gracefully on non-supported PHP versions. Added additional logging to importbuddy.php for ABSPATH changes. Updated tooltip (?) to use new graphic. Fixed Amazon S3 SSL option to be able to disable. Added 'Get Key' link to Amazon S3 section. Fixed manually sending Amazon S3 failing in some cases. 1.3.2 - 2010-09-23 - Dustin Bolton Implemented fix for glitchy .htaccess file caused by malformed Fantastico .htaccess files. Fixed problem with migrating absolute paths on Windows servers caused by problems with file path format. 1.3.3 - 2010-09-28 - Dustin Bolton Fixed echo of SQL data on import when changing prefix. Added logging of version numbers into importbuddy.php. Fixed not initializing some variables. Added WordPress and PHP version checking to BackupBuddy to better warn of incompatibility issues. Added additional SQL logging to importbuddy.php to help find ninjas better. 1.3.4 - 2010-10-06 - Dustin Bolton Added additional warnings if trying to import to a database and existing WP is found with that prefix. Now blocking database merges in importbuddy.php to prevent data loss or corruption. Added URL migration of both www and non-www domain prefixes to importbuddy.php. 1.3.5 - 2010-10-12 - Dustin Bolton Updated updater to v1.0.1. 1.3.6 - 2010-10-18 - Dustin Bolton Updated updater to v1.0.2. 1.3.7 - 2010-10-18 - Dustin Bolton Fixed problem with FTP test & directory exclusion textarea in IE8. Improved format of Backup Status page. Added additional help question marks to Schedules page. 1.3.8 - 2010-10-27 - Dustin Bolton Fixed missing index on AWS SSL Encryption when not checked. Added option to limit number of stored backup archives. 1.3.9 - 2010-10-29 - Dustin Bolton Fixed non-array error when no backups exist. 1.3.10 - 2010-11-01 - Dustin Bolton Fixed lack of backup directory exclusion if no other directories were excluded. Added dashboard status. Tweaked various styling. 1.3.11 - 2010-12-02 - Dustin Bolton Fixed dashboard status showing for users with Dashboard access that were under admin level. 1.3.12 - 2010-12-08 - Dustin Bolton Amazon S3 now waits until the next page load to send on scheduled sending of full backups. This increases reliability. 1.3.13 - 2011-01-05 - Dustin Bolton Moved directory listing blockers from temp backup directory to wp-uploads root. 1.3.15 - 2011-01-07 - Dustin Bolton Fixed warning being displayed during database backup caused by 1.3.13 fix. 1.3.16 - 2011-01-07 - Dustin Bolton Database backup only fix for Josh. 1.3.17 - 2011-01-10 - Dustin Bolton Corrected problem with missing trailing slash for directory exclusion before wildcard. Could have resulted in too much being excluded. 1.3.18 - 2011-01-11 - Dustin Bolton Temporary security files now only generated for Full Backups. 1.3.19 - 2011-01-17 - Dustin Bolton Increased security of log file when logs are enabled for debugging. (log file moved to /wp-uploads/backupbuddy_backups/ with a unique file name per site) 1.3.20 - 2011-03-03 - Dustin Bolton Added additional debug error logging. Pre-2.0 - Dustin Bolton See history_archived.txt for older history information. 2.0.0 - 2011-02-12 - Dustin Bolton Complete overhaul with a multitude of features & enhancements. 2.0.1 - 2011-04-27 - Dustin Bolton File permissions warning on some servers on the Server Information page. Fatal error on some servers on the Server Information page. Update to 2.0 handles importbuddy password migration in a more stable way. Added ZIP backup serial to reported details during backup. Fixed import link on Getting Started page. 2.0.2 - 2011-04-29 - Dustin Bolton Removed hover to show select destination / edit links for remote destinations. Changed README.txt to readme.txt. Fixed importbuddy incorrectly reporting extraction failure in fallback modes. Fixed directory exclusions failing in some environments. Fixed database table escaping during backups. Fixed database rewrites in importbuddy. 2.0.3 - 2011-05-02 - Dustin Bolton Fixed problem with scheduled events not firing. 2.0.4 - 2011-05-02 - Dustin Bolton importbuddy.php now excluded from root of backups. Editing a full schedule auto-selected database only. Added readme.txt file for Rackspace testing. 2.0.5 - 2011-05-02 - Dustin Bolton Significantly improved compatibility with Alternate WP Cron system. define('ALTERNATE_WP_CRON', true); Removed false error message on scheduled backups with no remote destinations. 2.0.6 - 2011-05-03 - Dustin Bolton Improved directory exclusion migration from pre-2.0 to post-2.0. Added additional index check for adding remote destinations to prevent unkeyed indices. 2.0.7 - 2011-05-04 - Dustin Bolton Added additional alternate cron checks to avoid header already sent warnings on backup page. 2.0.8 - 2011-05-06 - Dustin Bolton Fixed case where editing a schedule could duplicate the edited schedule cron event. 2.0.9 - 2011-05-09 - Dustin Bolton Fixed extra slash being included when blocking directory browsing. Could potentially cause problems on some servers. Added additional index.php file for use in blocking directory browsing for additional redundancy. 2.0.10 - 2011-05-09 - Dustin Bolton Added alternate FTP port support by specifying the FTP address in the format: address:port such as yoursite.com:21. 2.0.11 - 2011-05-11 - Dustin Bolton Added schedule name to email notifications for scheduled backups for easier tracking of what triggered the backup. Added support for future an upcoming remote destination coming soon. 2.0.12 - 2011-05-13 - Dustin Bolton Added more logging to help debug issues. 2.1.0 - 2011-05-16 - Dustin Bolton Added Dropbox.com support for remote destinations. Improved status messages. 2.1.1 - 2011-05-19 - Dustin Bolton Fixed importing database tables including 'non-normal' characters in their name. Reduced status update delays from 5 seconds to 3 seconds. Corrected year in dates in history.txt file. 2010 -> 2011. Added additional cleanup function when loading Backup page to help take care of orphaned files from failed backups. 2.1.2 - 2011-05-23 - Dustin Bolton Added additional detailed information to compatibility options. periodic_cleanup() function subtracted time improperly, resulting in delays in periodic cleanup. Added warning if launching a new backup before the previous one finished. Fixed anti_directory_browsing not creating directory if needed. 2.1.3 - 2011-05-31 - Dustin Bolton importbuddy: Initialized $file_stream variable to false to prevent possible edge case when all possible .sql files are missing. Issue #26. Added log file viewer & option to clear to debugging information on the Getting Started page. Scheduled indices now increment based on an overall variable rather than incrementing based off the largest schedule index. Helps prevent rogue cron schedules from conflicting with a different schedule. Issue #25. Fixed issue where backup listing could list non-existant backups if glob() returned an error. Issue #27. Amazon S3 test did not test SSL option. Adding a remote destination could sometimes display a notice when debug mode was on. Added handling of colon (:) in the site url during backups. 2.1.4 - 2011-06-02 - Dustin Bolton Added additional checks on last index for adding schedules. Issue #33. Added limits for remote destinations. Issue #13. - Skyler Moore Removed casting array on glob for robustness. Issue #34. Added Loopback Detection to Server Info. page. Issue #5. 2.1.5 - 2011-06-06 - Dustin Bolton Updated updater lib to 1.0.3 to fix changelog link being broken. Fixed iThemes.com link on Getting Started page. Editing the first remote destination entered for a service could fail in some situations. Adding the first remote destination entered for a service to a schedule could fail in some situations. Fixed undefined constant notice in importbuddy.php on some servers. Fixed missing Knowledge Base icon. Issue #42. Fixed empty() being used on remote destination indices. Issue #41. Added notification of compatibility mode & codex link to fix it. 2.1.6 - 2011-06-07 - Dustin Bolton Fixed issue where first time visiting the backup page could warn of compatibility mode falsely. 2.1.7 - 2011-06-09 - Dustin Bolton Added robustness to remote limit so that it only deletes backups from the site the limit was set on. Updated backupbuddy.php: Added function backup_prefix() on line 1570. Updated all of the remote send functions to limit backups based on site backup prefix. Updated classes/admin.php to call the backup_prefix function in the backupbuddy.php file. Updated classes/backup.php to use the backup_prefix on line 132. Updated HTTP Loopback Connections warning URL. 2.1.8 - 2011-06-09 - Skyler Moore Fixed scheduled destination check not seeing overall first remote destination created in system. 2.1.9 - 2011-06-15 - Dustin Bolton Broke up database import and migration steps in importbuddy.php to improve chances of importing extremely large databases. Fixed greedy script limits not being called for each backup step. Increases backup time & memory on servers allowing increases. Issue #48. When in alternate cron mode a note is now displayed to verify that it is properly configured. Fixed typo on settings page for backup limits. Multiple improvements to Server Info. page. Importbuddy.php skips extracting a importbuddy.php file during the extraction step to avoid overwriting importbuddy.php with an older version stored in the archive. Fixed status not being updated on database migration step, resulting in user not knowing if page was still loading. 2.1.10 - 2011-06-20 - Dustin Bolton Step 7 of importbuddy was unable to cleanup some files. Issue #55. Removed re-chmod'ing files to delete. Partial fix for issue #56. Fixed new server information values not always being correct. Issue #58. Fixed mail_notify_error php error in one backup error case. Increased email destination character length. Added note about comma separation for sending email notifications to multiple addresses. 2.1.11 - 2011-06-28 - Dustin Bolton Temporarily reverted importbuddy.php to previous version to address potential bug on migrating of some serialized data. 2.1.12 - 2011-06-29 - Dustin Bolton Undid temporary importbuddy.php reversion from 2.1.11. Issues resolved. ImportBuddy script is now able to break up the database import into as many steps as needed for large database imports automatically. Added ImportBuddy option to override detected maximum PHP runtime value. Added ImportBuddy option to skip migration of database in addition to skipping direct import. Fixed function name not beging sent in backup error email. Added additional debugging information to error email when error logging set to debug mode. 2.1.13 - 2011-07-02 - Dustin Bolton Added `Classic Mode` to settings page to emulate to BackupBuddy 1.x backup mode. 2.1.17 - 2011-07-06 - Dustin Bolton ImportBuddy: Moved wp-config.php migration to end of database migration step to allow for hot-swapping site databases. Fixed version number. 2.2.0 - 2011-07-06 - Jesse Clark Added internationalization support. Added German (de_DE) language files. 2.2.1 - 2011-07-06 - Jesse Clark Fixed text domain issues. Renamed German language files. 2.2.2 - 2011-07-08 - Dustin Bolton Fixed remote destination selection for manual offsite transfer from returning a 404. 2.2.6 - 2011-07-14 - Dustin Bolton Fixed editing destinations problem. Issue PBBB-6. Parse error when deleting a file in the FTP manager. Issue PBBB-5. Fixed scheduled backups running in classic mode. Issue PBBB-7. importbuddy: wp_posts URL updating now handled by SQL and not checked for serialized data. Should increase migration speed significantly. importbuddy: Optional home URL is definable for migration. Fixed some `strange` activity with the saving system by bypassing WordPress update_options cache. WordPress was caching some saves creating unpredictable situations in some cases. This should prevent 'double backup syndrome'. Moved greedy_script_limits() function to backupbuddy.php to allow for calling it for remote transfers & server information page. Can increase time available for remote transfers on some servers. importbuddy: Added migration of home URL usage in wp_posts table during Step 6. Fixed call to incorrect error function when unable to create storage directory on Server Info page. Issue PBBB-18. Added schedule ID number to Schedules listing for easier matching to cron. Partial issue PBBB-9. 2.2.8 - 2011-07-19 - Dustin Bolton Fixed incorrect FTP remote destination error email. Issue PBBB-39. Temporary S3 test file was not being deleted after tests. Issue PBBB-40. Excluded backup directories not being listed in the status log. Issue PBBB- 44. Moved greedy_script_limits() on Server Info page to below the Server Configuration section so default values would not be overridden. Issue PBBB-42. greedy_script_limits() now properly returns status information. Added additional logging information for support. Issue PBBB-43. Exec command now displayed properly while in classic mode. Issue PBBB-41. Backup would show two temporary file sizes if exec() failed but the PHP process continued. Issue PBBB-37. 2.2.9 - 2011-07-25 - Dustin Bolton Fixed warning on Server Info page. Added note to email remote destination warning about potential size limitations. 2.2.10 - 2011-07-27 - Josh Benham Removed debugging text(moose) 2.2.11 - 2011-08-22 - Dustin Bolton Fixed HTML glitch on Malware Scan page for Firefox on Mac. Improved .htaccess AddHandler parsing. Now ignores commented out lines and reports the AddHandler line if found. Issue #56. Backup directory path is now updated automatically if the path has changed. Useful if the site was migrated without using BackupBuddy. Issue #64. Preceeding slash is now required and automatically added if missing for FTP remote path if one is defined. Issue #50, #51. Individual destinations may now be removed from a schedule. Issue #21. Added display of the last run time to Schedules listing on Scheduling page. Issue #76. Misc. cleanup of schedules listings. Misc. small updates to Server Info. page. Unnamed remote destinations are now given a default name of [no name]. Sending files to remote destination no longer requires an additional page load to trigger transfer. S3 bucket now created as private for improved security. (files were already stored as private). Issue #79. 2.2.14 - 2011-08-31 - Ronald Huereca, Dustin Bolton, Josh Benham Ronald Huereca Modifications to backup.php functions to accomodate Multisite. BETA: Added Multisite support: Backup entire Multisite network. BETA: Added Multisite support: Export single site from within a Multisite network. BETA: Added Multisite support: Duplicate single site within a Multisite network. BETA: The following Multisite backups / restores are now possible: * Restore full multisite backup. * Migrate entire Multisite network. * Single stand-alone site into Multisite. * Multisite site to a single stand-alone site. * Multisite site into an existing Multisite network. * Duplicate a site within a Multisite network. Dustin Bolton: Improved reporting on inability to create backup directory. Also fixed Server Info page failing due to permissions issues. Added Error Code 9022. Issue #73. Fixed missing status colors on Server Info. page. Updated mail_notice() calls to mail_error(). Issue #66. Last run time is now reset when schedule is edited. Issue #82. Backup directory now displayed in span rather than input for better clarity that it is not modifiable. Issue #86. BETA: New importbuddy available as a link under the normal importbuddy script: General UI cleanup and polishing. Added Server Info. page's Server Configuration section within new 'Server Information' button on Step 1. Added ability to upload backups from local computer to server (only if importbuddy password is set; for security). Added more Advanced Configuration options for fallback unzip modes. Added more detailed status logging to each step in a textarea. Re-arranged and reduced step count for streamlining imports. When 'wipe database' option is selected the mysql test now reports warnings and notes it will wipe if it finds an existing database rather than errors. Rather than ALL rows of ALL databases having URLs and paths 'migrated', known tables/rows where no serialized data should ever show up are skipped for increate migration performance. All unknown tables/rows are scanned and updated if needed. Now also deleting the import directory on cleanup step. Broke out all importbuddy functionality into separate files in the importbuddy directory. This directory and contents are 'extracted' from importbuddy.php if they do not exist. Broke out database migration functions into a new class for easier updating to handle new databases and scenarios. Now using ZipBuddy class for full zip compatibility fallbacks including ZipArchive & PCLZip. Issues #10, #36. PCLZip no longer throws undefined constant notices. Issue #14. No longer re-enabled commented out WP_SITEURL & WP_HOME instances in wp-config.php. Issue #52. Better testing / handling of serialized data. Issue #62, #29. Updated importbuddy to use BackupBuddy's greedy script limits funtionality. Issue #69. Improved ImportBuddy error messages. Issue #38. Better parsing of configurations in wp-config.php. Issue #33. Josh Benham: Added new updater. 2.2.15 - 2011-09-01 - Dustin Bolton is_network_admin() is now only called after verifying the function exists; added in WP 3.1. Misc UI updates for consistency. Added additional directions to new Multisite features. 2.2.16 - 2011-09-09 - Dustin Bolton Fixed adding Dropbox accounts by changing stripping of characters to use strip_tags_deep. 2.2.17 - 2011-09-13 - Dustin Bolton Fixed database import chunking in beta importbuddy script. BackupBuddy now automatically attempts to use command line zip from common paths if it is not found in the default path. Placed emphasis on beta importbuddy on backup page to encourage beta testing. Fixed undefined index on first-time activation while in debug mode. 2.2.18 - 2011-09-16 - Ronald Huereca Fixed Multisite import for subdomains and invalid URL replacements Fixed Multisite import for mapped domains and invalid URL replacements Added Multisite import feature where you can import directly into a mapped domain 2.2.19 - 2011-09-19 - Dustin Bolton Fixed missing space in command line zip warning caused by localization. Fixed new Dropbox destination confirmation saying Amazon S3. Issue #81. Removed S3 video in Dropbox directory tip. ImportBuddy Updates: Updated ABSPATH to use WordPress style with trailing slash. Updated all uses. Issue # Fixed all sites being detected as Multisite instances. Issue #97. Fixed table bruteforcing displaying `Working` seemingly endlessly on very large tables. Could cause mysql to go away also. Issue #98. Post GUIDs are no longer updated during migrations as per http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note .. Issue #96. Added addslashes() into importbuddy status function for javascript passing. 2.2.20 - 2011-09-20 - Ronald Huereca Fixing an updater issue with licensing and sticking. 2.2.21 - 2011-09-22 - Ronald Huereca Fixing an updater issue with licensing and sticking. 2.2.22 - 2011-09-22 - Ronald Huereca, Dustin Bolton, and Jeremy Trask Fixed a duplicate site issue with sub-domains using Multisite Added memory usage to Server Information page. Added Dropbox memory notice to Dropbox remote destination page. Calculates an estimate of backup file limits due to memory exhaustion. Added ZipBuddy alternative 2.2.23 - 2011-09-27 - Ronald Huereca Fixed Multisite Export to Self-hosted with regards to wrong upload directories (users with previous issues will need to re-import and re-download ImportBuddy). Fixed Multisite Import with regards to users and passwords. Fixed Multisite Import bug where a site with a BackupBuddy schedule triggers a network-wide backup Added Multisite Codex information on appropriate pages Fixed Backup Reminders on Multisite 2.2.24 - 2011-09-27 - Ronald Huereca Fixing an "undefined" function call in Multisite import 2.2.25 - 2011-09-28 - Ronald Huereca Miscellaneous bug fixes 2.2.26 - 2011-10-03 - Ronald Huereca Fixed several site duplication issues with Multisite including table structure, media upload directory, user migration, and table migration 2.2.27 - 2011-10-04 - Dustin Bolton Fixed missing spaces in 25 seconds without zip increase warning caused during localization. Added link to codex for error 3382. 2.2.28 - 2011-10-10 - Dustin Bolton Added initial demo mode capabilities. Removed serial logging even when in optional 'log everything' mode for added security. Added randomized serial for debugging log file for added security. Fixed Working.. issue. Re-surfacing of Issue #98 due to repo reversion. Fixed unzip.exe path including an extra slash / in the zipbuddy library. Issue #112. Made RepairBuddy more visible for more extensive beta testing. 2.2.29 - 2011-10-26 - Daniel Harzheim, Dustin Bolton Daniel Harzheim Log file not showing on Getting Started Page. Issue #123. Wrong video on Settings page. Issue #105. Settings indicate sFTP not the correct FTPs. Issue #126. Dustin Bolton importbuddy: Problem with Multisite backup detection in import causing problems for standalone migrations with custom home url. Issue #130. importbuddy: Problem with Multisite backup detection in import causing problems for standalone migrations with split url. Issue #131. importbuddy: Fixed ability to skip database import. Issue #114. importbuddy: Database test incorrectly stated that the database would be wiped even when wiping is not enabled. Issue #103. backupbuddy_temp directory cannot be added to directory exclusion list. It is handled automatically. Issue #57. Dashboard stats overview now hidden in Multisite mode. Partial fix of issue #63. Added support for UK RackSpace network. Issue #110. Added manual file cleanup button to Getting Started page to force cleaning up all files now. Issue #23. Added bucket name compliance checking. All rules should be conformed to. Issue #106 Added display of PHP disable_functions option to Server Info. page. Errors on lack of exec or ini_set currently. Issue #31. importbuddy: Explicitly setting PHP timezone to avoid warnings. Issue #132. 2.2.30 - 2011-11-15 - Dustin Bolton Multisite Import Overhaul (BETA) Complete overhaul of Multisite Import functionality. Rewritten to use libraries and modular code rather than old importbuddy. Major changes to Multisite Import architecture for robustness and usage of modular libraries. MS Import process now displays status logging. MS Import now supports full ZIP compatibility fallback procedure. General UI changes. Many, many more changes. Added additional logging to importbuddy. Added new 'Ignore SQL Errors' advanced option to importbuddy. 2.2.31 - 2011-11-17 - Dustin Bolton Fixed PCLZip low speed compatibility mode not working as of 2.2.30. Issue #142. 2.2.32 - 2011-12-15 - Dustin Bolton Fixed Step 5 of Multisite import looking for database in wrong path in some installations. Log now displays: "Looking for database to import in directory:" Added additional logging to process_backup() function in backup.php. Added BackupBuddy version number in all emails sent. Added better error reporting for failed Amazon S3 sends and updated S3 send error from 9002 to 9024 due to duplicate error number. Added additional detailed return data for failed Amazon S3 transfers. Added new menu icon for WordPress 3.3. Added noindex meta to importbuddy HTML for added security against search engine indexing of importbuddy.php. mySQL server going away mid database dump now halts backup. Added error #9026: http://ithemes.com/codex/page/BackupBuddy:_Error_Codes#9026 Issue #54. Status logs now display `(Started new PHP page load process.)` each time a new PHP process begins logging for additional troubleshooting help. Backup pings are now displayed in same format as other commands: `##:##:##: Ping. Waiting for server . . .` rather than `########|ping`. importbuddy: Log file no longer has htmlentities() and addslashes() applied to messages by status(). Only applied to JS output now. Issue #111. Added additional logging to remote file sending functions where they attempt to delete excess files based on a remote destination limit for debugging. Now also logs if there is no limit to enforce. Help debugging of Issue #122. Backup archive limits (size and number) are no longer enforced by visiting the Backup Listing page. They are now only enforced post-backup. Backup limits will no longer allow deleting of the just-made backup. Worst case if the user sets the limit too low is that only the latest backup will be kept. Issue #70. Dropbox failures did not properly report failing. Now reports failures and logs array of the HTTP response for troubleshooting. Issue #125. Fixed undefined index warning when deleting a remote destination you were editing. Issue #135. ImportBuddy password is now required and no longer optional. It must be provided to even download. Added double ImportBuddy / RepairBuddy password fields for verification. Issue #90. Added instructions to Getting Started page reminding to set email notification and passwords prior to getting started. Removed RepairBuddy page for consistency. Added RepairBuddy download to Backup & Restore page. ImportBuddy log file now included a unique string of characters for added security. Clarified BackupBuddy backup and temporary directory exclusions on settings page. Issue #109. Tables that lack both a PRIMARY key and a UNIQUE key are not able to be updated due to risk to data integrity. Added Error #9029 if this is encountered rather than a nondescript error. Issue #85. Fixed double URL replacements if the new URL included the old URL. Issue #144. Modified Multisite Import to allow full domain import URL rather than just subdomain. Fixed user roles not migrating when importing into Multisite. Issue #146. CSS tweaks on backup listing page. Added advanced Compatibility / Troubleshooting option to skip database dump on backup. Useful if user cannot dump database for some reason. 2.2.34 - 2011-12-16 - Dustin Bolton Updated automatic upgrader to version 1.0.8 to address periodic issues with upgrades. 2.2.35 - 2012-01-25 - Dustin Bolton Multisite beta: Fixed usermeta entries with a key prefixed with the table name not being migrated properly. Multisite beta: Fixed non-network-admins not having access to export individual sites when this option is enabled. ImportBuddy: Split URL migrations modified to update both site URL and home URL in the proper order when doing mass replacements. ImportBuddy: Fixed preg_replace backreference issue with wp-config password replacement. Now filtering password through preg_replace_back(). Multisite beta: Fixed unexpected $end on Step 7 of MS import. Fixed error email sending error about running function ``. Steps array for backup was not being cleared. Due to timing this manifested in some cases. WP 3.3 seems to have started this. Added additional error reporting for Rackspace container handling for better troubleshooting. Fixed duplicate directory separator in error file path in alternate zipbuddy. Issue #166. 2.2.36 - 2012-??-?? - Dustin Bolton Error on migrating comments table data. Issue #165. Fixed javascript error in some browsers in importbuddy.js due to extra array comma. Updated Rackspace Cloud cacert.perm SSL Certificates. Added further UK support for file sending, browsing. Now saving backup step start and finish times to prevent race conditions caused by over-zelous WordPress cron. This is an incomplete solution so far. Missing old home url in DAT file no longer holds up import. Fixed typo in remote destination sending on Rackspace UK servers. Now using ftp_chdir() prior to deleting files. Prevent directory doubling issues. Updated x-zipbuddy files for fixing exclusions on Windows is compatibilty mode. Fixed remote FTP limit failing to trim files on some servers when a path is given. Added server/port information for FTP test errors. Fixed incorrect variable $rs -> $destination in remote_send_rackspace() call. 3.0.00 - 2012-04-04 - Dustin Bolton BackupBuddy ported into new PluginBuddy framework. Massive maintainability improvements, performance, logging, standardization across plugins, massively improved code documentation. Misc. code cleanup, improvements, robustness enhancements. More / clarified code documentation. Refactored various code to fit the style of the new framework better in many (but not all yet) areas. Directory size listing now highlights exclusions and shows excluded sizes. Issue #53. Backup options now hidden from editors/others on publish if they don't have plugin access. Issue #63 ImportBuddy now checks for existing .htaccess / php.ini files and warns of potential issues. Issue #116. Troubleshooting option to delete all backups prior to backup creation added. Issue #118. Added full logging to Multisite functionality. Issue #128. Displaying BackupBuddy versions in all logging now. Issue #136. Added command line based mysql dumping capability with auto-fallback to old method. Issue #147. ImportBuddy now verifies that mysql prefix provided is using valid characters. Issue #148. ImportBuddy will display the new wp-config.php file if it is unable to update it due to permissions or other issues. Issue #149. Remote send and scheduling now has better logging. Issue #153. Directory tooltip added for Dropbox destination with better information. Issue #156. Option for email notification when scheduled events begin added. Issue #158. Manual remote sends would sometimes report failure starting even when proper success respnse was sent to javascript. Trimming response now. Issue #160. FTP client viewer now handles empty directories properly. Issue #161. ImportBuddy checks and warns of odd media directory issues. Issue #170. ImportBuddy now properly warns if a corrupt / incomplete importbuddy.php tries to run. Prompts to re-upload. Issue #171. Fixed Malware scan logo on Malware scan page not displaying properly. Issue #173. Added blog title to notifcation emails for easier filtering. Issue #174. Multisite export was resulting in an extra trailing slash in image links. Issue #175. Server Info page now offers more 'best' recommendations. Issue #180. Added more logging and details to logs during backups for better troubleshooting. Issue #181. Database table inclusion / exclusion feature added. Issue #186. Added command line mysqldump availability to Server Info page. Issue #187. Command line mysql importing added into ImportBuddy for enhanced performance / large database support. Issue #188. Ported ImportBuddy script into framework; able to run in framework standalone outside of WordPress. Issue #195. Added detailed statistics tracking including: time needed to run each step, attempts needed, write speed, memory usage, etc. Helps track down timing and memory usage issues. Issue #199. Added Automated (Magic) Migration for easier migrations / site deployment. Issue #200. ImportBuddy now runs in framework sans WordPress. Issue #201. Added command line mysqldump for backing up with auto-fallback. Issue #204. Massive rewrite of Multisite Export to re-use code and libraries for robustness and sustainability. Issue #205. Database size with exclusions now shown on Server Info page. Excluded tables are now highlighted. Issue #207. Ported Mulitiste Import partially into new framework methodology. Issue #213. Converted Alternate Zip mode into framework methodology. Issue #214. Remote destination sending stats now shown on Server Info page for debugging remote sending issues. Issue #216. Added jQuery date/time picker back onto Scheduling page for easier modification of schedule dates/times. Issue #233. Special thanks to Ronald Huereca for the initial code for BackupBuddy Multisite features and functionality. Added '&clear=true' to end of Malware scan query. Internal transient caches for 1 hour; rescan now bypasses transient so this query should force a re-scan then. Confirmed to fix by Malware scan provider. Issue #223. Fixed off conflict with Simpler CSS plugin. Issue #226. Fixed importbuddy Fails to Load pclzip on Windows Platform. Issue #232. Added support for wp-config.php in parent directory. Copied to temp directory on backup and restored to root on import. Issue #84. Added beta option to enable viewing of files within ZIP archives. ImportBuddy wipe database option changed to wipe database tables that match prefix. Ignore existing WordPress table option in ImportBuddy allows appending to existing database tables. ImportBuddy & RepairBuddy passwords no longer stored in database; only hash is stored. Added BETA Database mass text replace (with serialized data support) feature to bottom of Server Info page. -- ALPHA -- 3.0.0a - 2012-04-05 - Dustin Bolton Fixed full backups excluding temporary directory resulting in bad backups. Added ImportBuddy advanced option to force database import compatibility mode. Fixed download link on backup listing in admin. Security enhancement: Added .htaccess file to prevent ALL access to archive downloads. Clicking to download from the admin temporarily lifts this restriction for 8 seconds before it is is re-created. Prevents brute force attempts. ImportBuddy HTML cleanup for Multisite imports/restores. Fixed Server Info section in ImportBuddy not working. Added changelog information of some changes from tracker. 3.0.0.1a - 2012-04-05 - Dustin Bolton Warning of existing WordPress directories now takes into account directory exclusions. ImportBuddy Server Info button fixed. Fixed hover actions on all backup listing being broken: send file offsite, migrate backup.
3.0.0.2a - 2012-04-06 - Dustin Bolton
Missing write speed now shows unknown on backup listing. Malware scan Malware Found wording updated. Now stripping public_html from migration URL guess. Fixed double URL replacement issue when migrating from / to same domain. Added headings to all Multisite Import steps for clarity on what each step does. Added additional flush()'s to Step 5 DB import of Multisite to try and help browser hanging when backups are large. Added .htaccess high archive directory security mode option to advanced options. Default: off for now until made to work everywhere. Fixed warning of backup with unfinished steps remaining despite being finished.
3.0.0.3a - 2012-04-09 - Dustin Bolton
Updated loopback test to allow for -1 or 0 as valid response in body that loopbacks work. Fixed inability to send to remote destination manually from backup page.
3.0.0.4a - 2012-04-10 - Dustin Bolton
Fixed wording when copying remote backup from a destination to local. Fixed bulk deletion on remote destination clients being broken due to missing nonce. Fixed copying from remote destinations to local for: Dropbox, FTP. Possibly Rackspace and S3 also. Cleanup of remaining $this->_parent references. Cleanup of remaining $this->alert() references. Framework status() method now writes to main log file by calling framework log() method if applicable based on logging level setting.
Cleanup of remaining $this->_pluginPath references. Moved experimental zip - > alternative_zip option. Added erase, getting status options to pb_backupbuddy::get_status(). Fixed Alternative Zip Mode. Fixed PCLZip failing due to log file being deleted mid-zip.
3.0.0.7a - 2012-04-16 - Dustin Bolton
Getting Started page: Fixed Getting Started page columns to not overlap. - re: Chris Sidebar now uses bullets for consistency. - re: Chris Example play icon now links to BB introduction - re: Chris Reference to configuring settings now points to settings page. - re: Chris Backup: Fixed undefined index for finish time in two places. - re: Chris Backup list now properly sorting by modified date, not filename. - re: Chris Settings page: Now setting error notification recipient by default if none provided based on WordPress admin_email. - re: Ronald Fixed additional table inclusion / exclusion tooltip. - re: Ronald Made troubleshooting options not greyed out. - re: Ronald Reworded thickbox modal window title. (also on backup page). - re: Ronald Example password is not valid for ImportBuddy or RepairBuddy password for security. - re: Chris Scheduling Raised hard-coded time/date format for scheduling as an enhancement request. Requires investigation on how to implement. - re: Ronald https://projectpress.net/bugs/backupbuddy/issues/PBBB-236 Form cleared after submission for adding new schedules. ImportBuddy Fixed additional slash in assets URLs. - re: Ronald Fixed assets being included after </head>. - re: Ronald Added new suppress status parameter to set_greedy_script_limits() to hide status output pre-<html>. - re: Ronald Added proper doctype / HTML header. - re: Ronald Magic Migration Added instructions in thickbox popup. - Cody Remote Destinations: Fixed thickbox not auto-resizing to fit window. - re: Chris Added more spacing for video tutorials played within an already open thickbox. - re: Chris Fixed Dropbox PEAR paths to not rely on external PEAR, only included assets. Also addresses open basedir restriction issue with PEAR. - re: Chris Fixed table listing header/footer styling. - re: Chris 'Select this destination' option removed for email except for manually sending file as there is no remote client. - re: Chris FTP testing / sending now automatically creates remote path if it does not exist. Updated tooltip to note this. - re: Chris Fixed remote destination editing / adding dropping back to the main remote destination page. - re: Chris Minimum validation to insure that required fields are entered added until remote destination system is updated into framework. - re: Chris Updated remote destination save message. - re: Chris Added loading spinners for S3 and Rackspace pages. - re: Chris Misc remote destination code fixes. - re: Chris Fixed undefined $rs_path for Rackspace client. - re: Chris Duplicate copying to local now allows local duplicates via insertion of random characters. - re: Chris Fixed duplicate inclusion of S3 section. - re: Chris Server Info page. Fixed missing loading_large_darkbg.gif. - re: Chris No longer showing recent remote file transfers if there are none. - re: Chris Fixed directory listing icicle passing additional action via POST overriding GET action. - re: Chris Added directory size listing anchor to drop page to correct location. Added bug tracker enhancement to move this to using AJAX in the future (issue #237). - re: Chris Misc. All instances of using the color #AFAFAF for descriptions has bene replaced with using the description class for consistency and usability. - re: Chris Fixed class to status method with one param rather than the required two in cron.php. - re: Chris Updated all list tables to not display when empty. Explanation is given that no items of that type have been created. - re: Chris 3.0.0.8a - 2012-04-17 - Dustin Bolton Fixed "{Missing actions method `save`.}" message on post/page editor screen. - re: Ronald Detected mysqldump basedir is first trimmed of trailing slash then /bin/ appended. Avoids missing slash depending on configuration. - re: Jeremy mysqlbuddy class now handles the host being sockets (ie WordPress DB_HOST returning `localhost:/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock`. - re: Jeremy mysqlbuddy Array merging of tables now clears out any phantom blank tables added to the list. mysqlbuddy fixed to properly list specific tables to dump IF not dumping the entire database. Lists specific tables if only this WordPress is set to backup and/or exclusions are listed. - re: Jeremy mysqlbuddy attempted to mail an error if a missing table was set to be backed up. Was calling function on non-existant core class. Removed this feature as I'm not sure we want to throw emails on a non-existant additional table anyways. - re: Jeremy mysqlbuddy compatibility mode now logs status details per table dumped. - re: Jeremy Classic zipbuddy now caches zip testing like alternative zip method. - re: Jeremy Added additional logging to classic zipbuddy zip testing. Added log file viewer into Getting Started page. - re: Jeremy New writable files directory structure. All plugins will be following this structure in the future. - re: Jeremy All logging, status files, etc are now standardized to reside in: ...\uploads\pb_backupbuddy\ Log file names are now standardized as follows: ...\uploads\pb_backupbuddy\log-xxxxxx.txt ...\uploads\pb_backupbuddy\status-xxxxxx.txt ...\uploads\pb_backupbuddy\status-xxxxxx_xxxxxx.txt Upcoming future goal is to get the backups archive and temp directories moved within these as well. This will require a lot of updating and testing due to hard-coding of paths (bad past mistake...): ...\uploads\pb_backupbuddy\backups\ ...\uploads\pb_backupbuddy\temp\ Adjusted some tooltip wording. - re: Jeremy Getting Started page tweaks. - re: Jeremy Fixed backup links on Getting Started page. - re: Jeremy Database table exclusions now logged in DAT file. - re: Jeremy Fixed reversed backup listing sort order. - Dustin Added this WordPress' table prefix for database section tooltip. - re: Jeremy Misc settings page wording tweaks. - re: Jeremy Added better explanation to what Automatied Migration offers. - re: Jeremy Now hiding backup statistics on the migration page. - re: Jeremy Fixed 'undefined' message when leaving the backup page during an AJAX request. - re: Matt Misc. importbuddy tweaks. - re: Josh PHP Info button AJAX not working in thickbox. - re: Elise Misc spelling / grammar. - re: Elise Fixed section separator being missing ( ‹ ) in title. - re: Cory Fixed being able to toggle displaying / hiding graphical directory size map. - re: Cory Misc. text modifications. - re: Cory Added link to discounted Malware scanner packages on Malware page. - re: Cory Fixed upgrade reminder link. - re: Cory Added additional instructions to various pages. - re: Cory Added tip of using S3, Rackspace, or FTP as preferred destinations. - re: Cory Misc tweaking. - re: Cory 3.0.0.9a - 2012-04-23 - Dustin Bolton Fixed excess trailing slash in backup_root in backup.php. - Dustin Cleaned up activation warning if anti_directory_browsing() fails on plugin activation. - re: Jeremy If anti directory browsing files cannot be created in backup page, that error is giving only rather than displaying warnings of existing WP installations, etc also. Added additional details such as directory to check permissions on. - re: Jeremy Settings page is no longer halted if unable to create ani directory browsing files; just warns. - re: Jeremy Added an additional check to verify status log directory is writable in preflight check. - Dustin Fixed missing parameter $serial for final cleanup step. - re: Jeremy Fixed table exclusions not being performed by mysqldump mode. - re: Jeremy mysqldump library now handles duplicate additional inclusions/exclusions cleanly. - re: Jeremy Database connection no longer established if it already exists. - re: Jeremy Added troubleshooting option to force database dump compatibilty mode to settings page. - re: Jeremy 3.0.0.10a - 2012-04-25 - Dustin Bolton Added additional exec() exit code logging to zipbuddy library. - Dustin Misc text updates on settings page. - Dustin Added listing of existing site backups to Multisite import page to make duplicating sites easier. - Dustin 3.0.0.11a - 2012-04-26 - Dustin Bolton Fixed Server Info section notices preventing continuing to next step in importbuddy. Fixed excess slash provided by standalone site_url() in Windows. Fixed keys needing reordering in dbreplace class remove_matching_array_elements() causing undefined index notices in importbuddy. Status log directory creation enforced in periodic_cleanup() now. 3.0.0.12a - 2012-04-30 - Dustin Bolton Misc code cleanup. (housekeeping, mint for pillow, etc). - Dustin Added back (BETA) note next to the titles on the pages for Multisite features. - Dustin Fixed status status log timestamps not being localized to correct time based on WordPress settings. - re: Jeremy If command line length appears long ( > 250 chars ) then a command is run to try to determine max command line length before continuing. If this limit is exceeded then falls back to compatibilty mode. - re: Jeremy On table prefix change, a $file . '.tmp' version is created that is used for import rather than overwriting original .SQL file. - re: Jeremy. 3.0.0.13a - 2012-05-04 - Dustin Bolton Started _docgen.php for internal comment gathering from all PHP files. - Dustin Come code cleanup. - Dustin Properly fixed backup ordering to be based on last modified date. Accidently used size value previously. - re: Chris Changed function names in hover integrity popup to pretty versions instead of function names. - re: Chris All textareas used for displaying information are now set readonly in the plugin ( readonly="readonly" ). - re: Chris Updated all instances of 'it-l10n-backupbuddy' to 'LION' to correct for other modifying BackupBuddy using downloaded versions. - Dustin Mass replace 'LION') to 'LION' ) for consistency. - Dustin Removed DIV wrapper around Dropbox authentication buttons to fix wide-button issue. - re: Chris Remote destination test buttons are now normal anchor buttons instead of submit buttons. No longer interferes with keyboard form submission. - re: Chris Backup list on migration page now only shows full backups. - re: Chris Backup list on migration page no longer lists backup type since all are now full. - re: Chris Added duplicate feature for remote destinations for easier modification / temporary destinations until remote destination system is refactored. - re: Chris Added ability to automatically migrate to a local path on the same server. - re: Chris Removed backup destination suggestions from top of migration destination selector. - re: Chris Added force cleanup button to getting started page for forcing periodic cleanup procedures to occur NOW in-page. - Dustin Updated magic migration bad URL message to inform that you can re-enter the URL without leaving the page / re-starting migration procedure. - re: Chris If http:// is missing in URL for magic migration it is prepended before sending to WordPress HTTP API to avoid invalid URL message. - re: Chris Removed `Status:` from in front of message on magic migration process once importbuddy is displayed in browser as status messages are no longer displayed there once importbuddy loads. - re: Chris Magic migration URL form is now inside a form element to allow keyboard usage to work better. - re: Chris Magic migration URL is now pre-populating with the guess. - re: Chris RE CHRIS NOTES: The backup file listing shows a lot of "Unknown" strings. Considering that some of the listings have seven unknowns, the information becomes muddled and difficult to read. Unknown should only be displayed for old backups (hopefully). Any suggestions on cleaning this up for backups that lack this data? PclZip issue Unable to replicate. This error is thrown here. From your log this means that fopen must have returned a false for some reason for you. 1953 if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) 1954 { 1955 // ----- Error log 1956 PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode'); 1957 1958 // ----- Return 1959 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); 1960 return PclZip::errorCode(); 1961 } After adding a destination, it appears that the only thing that happens is that the inputs empty. I have to scroll to the top of the dialog to see that something has actually happened. The same thing happens when modifying an existing destination except that the inputs do not clear out after submission. If the submission is to be handled by Javascript and not a fresh page load, then the page should be automatically scrolled to the top so that it is clear that the action did something. Unable to replicate. Forms submit without javascript and the action goes back to the same page with an anchor to the same tab so it should be going to the top. When selecting an existing remote destination, what if I want to use a different path? An option should allow for customizing the path without requiring modification of the remote destination (if the destination is used for backups and the user forgets to change it back after the migration, then their new site will start to fill with backups). The feature should support supplying new FTP information without creating a new destination. The entire remote destination system needs refactored and really needs to be done to make this doable without severe rigging. As a workaround I've added the ability to duplicate destinations for now until the destination system is redone. Backup listing actions inconsistent. For example clicking the backup filename on the migration page shouild start migration instead of downloading the archive. @see Chris' suggestions for handling this. - re: Chris 3.0.0.14a - 2012-05-07 - Dustin Bolton Fixed Multisite Network scheduled backups not being marked as a MS backup in DAT file. Added trigger details into DAT file. Misc cleanup. 3.0.0.15a - 2012-05-08 - Dustin Bolton Added '&clear=true' to end of Malware scanner query. Internal transient caches for 1 hour; rescan now bypasses transient so this query should force a re- scan then. Confirmed to fix by Malware scanner. - re: Jeremy; Issue #223. Cleaned up backup.php - re: Chris Updated default widths of pages to fully extend instead of 80%. - re: Chris Fixed div's inside anchor tags on backup page. - re: Chris Local migrations no longer require the destination directory to exist. - re: Chris Automated migrations automatically authenticate to importbuddy for more speedy usage. - re: Chris Fixed broken loading image for database test. - re: Chris Fixed weird character next to loading notification for database test. - re: Chris Adjusted status textarea widths. - re: Chris Made default click of a backup name in a backup listing performs - re: Chris Removed excessive status read reporting for multisite import. - re: Dustin Increased textarea width & height for multisite import. - re: Dustin Added additional logging to mysql exec(). - re: Dustin 3.0.0.16a - 2012-05-10 - Dustin Bolton Updated plugin description and wording. - re: Benjamin Added more detailed instructions for adding a Dropbox remote destination. - re: Benjamin Fixed mismatched capitilization for "Manage Remote Destinations & Archives" button vs thickbox title. - re: Benjamin Added cron information to the scheduling page. - re: Benjamin Added link to Server Info page on scheduling page for cron information. - re: Dustin/Benjamin Added link to WP-Cron Control plugin on scheduling and Server Info page for more cron control. - re: Benjamin Fixed capitilization case on backup status bar to be consistent - re: Benjamin Fixed off conflict with Simpler CSS plugin. Issue #226. Fixed importbuddy Fails to Load pclzip on Windows Platform. Issue #232. Added support for wp-config.php in parent directory. Copied to temp directory on backup and restored to root on import. Issue #84. - re: Jeremy Modified how DB testing works on step 3 of importbuddy. Now requires a successful test to proceed. - re: Chris 3.0.0.17a - 2012-05-11 - Dustin Bolton Removed weird editbox styling and editbox ID from tabbing. Not sure what that was there for. - re: Chris Parent-directory wp-config backups no longer marked as bad. - Dustin Fixed invalid caching of command line zip path location. - re: Chris Fixed Undefined variable: zip_methods in projectbadger/classes/backup.php on line 21. - re: Chris Enhanced URL migration guess URL. - re: Chris Password fields on Settings page now display values and use classes "regular- text code". - re: Chris Added 'classes' option to form settings system to set classes on settings fields. Misc other fixes. I think I may have missed noting some... 3.0.0.18a - 2012-05-12 - Dustin Bolton Now redirecting STDERR to STDOUT when using exec() via '2>&1'. - re: Chris Now pre-loading core class during backups if not already loaded. Added additional logging to failed access to the $wpdb object for cleaner failure and troubleshooting. - re: Chris Now creating PCLZip storage directory if it does not exist. On some systems it seems to be unable to create this itself. - re: Chris "The backup archive file size has not increased in 300 seconds" message delay is now incremented each time it is shown. - re: Chris Fixed Undefined offset: 2 in projectbadger/controllers/filters.php on line 18 - re: Chris Fixed Undefined index: ch02mrmdk0 in projectbadger/classes/core.php on line 1559 - re: Chris Fixed Undefined index: ch02mrmdk0 in projectbadger/classes/core.php on line 1564 - re: Chris Now appending common command paths prior to running exec() commands. - re: Chris Added Brad's updated scheduled destination removing button & directory exclusion button to be larger. - re: Chris 3.0.0.19a - 2012-05-14 - Dustin Bolton Added new GUI graphics. - re: Brad Added error graphic LED when backup fails - re: Chris 3.0.0.20a - 2012-05-15 - Dustin Bolton Fixed compatibility mode database import to support new mysqldump .sql files. - re: Jeremy Changed post-backup download zip link to button. - re: Brad 3.0.0.21a - 2012-05-15 - Dustin Bolton Now setting commandline path per execution. Pulled out calls to exec() into new pb_backupbuddy_commandline class. In the future all commandline executions will be funnelled through this class instead of having handling fallbacks, exec detection, etc in multiple libraries as we have grown to using commandline in multiple places now (zip, mysqldump, textreplace, etc). Only one alert is now displayed if a backup appears to have stalled. Subsequent messages are now displayed in the message box. - re: Chris If the backup stalls for 5 minutes or more a warning is displayed with each update inside the messages box that the backup may have stalled. - re: Chris 3.0.0.22a - 2012-05-15 - Dustin Bolton Fixed extra slash in code causing: Warning: Unexpected character in input: '\' (ASCII=92) state=1 in projectbadger/pluginbuddy/lib/updater/updater.php on line 290. - re: Chris $zip->close() now only called if open succeeded to avoid error Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in importbuddy/lib/zipbuddy/zipbuddy.php on line 497. - re: Chris Added additional code to try to force flushing to work so Step 6 of importbuddy won't have broken CSS / JS due to the files getting deleted before wiping. - re: Chris Migrations to local paths now prompt for optional URL before sending files. - re: Chris Local migration test now warns if WordPress already exists. - re: Chris Local migration test now verifies that URL matches path by placing a temporary test file. - re: Chris Added optional URL field for local migrations so that the path/URL combination can be verified. - re: Chris MINOR ISSUES NOT YET IMPLEMENTED: Magic migration inclusion of importbuddy means the migration no longer matches WordPress styling when still inside WordPress. - Cody Getting Started page far-right column hanging off page edge slightly still. - Dustin It could be helpful to redirect or display help information on using ImportBuddy or RepairBuddy after clicking to download the script. Re-evaluate how this currently works to implement this. This would be helpful for guiding users. Capitalization in S3 bucket names seem to be ignored when copying. Not sure why this would happen yet. - re: Chris Magic migration: If sending to remote destination and the file already exists then don't overwrite without confirmation. @see Chris suggestions on handling this. - re: Chris Ability to resume imports/migrations. - re: Chris
-- BETA --
3.0.0.2 - 2012-05-21 - Dustin Bolton
Released 3.0 beta to existing customers. 3.0.0.3 - 2012-05-22 - Dustin Bolton Added just-in-case FTP test file deletion even if upload returns failed. Cleans up in case test file was created even though it reported a feailure. - re: thewpguy pb::get_status() now returns an empty array instead of false if no log is found. Fixed RepairBuddy not copying password and BackupBuddy version into repairbuddy.php on generation. Step 6 is ImportBuddy now properly shows home URL in confirmation for split url type migrations. - re: Gilbert http://ithemes.com/forum/topic/27929-302- importbuddy-step-6-wrong-assumption-about-where-is-really-the-site-site-address- home-url/ Fixed textareas on Settings page being read only. - re: Gilbert http://ithemes.com/forum/topic/27922-302-settings-cant-edit-fields/ 3.0.0.4 - 2012-05-23 - Dustin Bolton Fixed version number. - re: Gilbert Fixed ImportBuddy reporting import complete on siteurl when it should be homeurl. Step 5. - re: Gilbert 3.0.0.5 - 2012-05-28 - Dustin Bolton Misc PHP cleanup / comments. Added index.php files to directories to prevent browsing when enabled on server. Updated ZipBuddy unzip method to check for either wp-login.php or db_1.sql to exist for exec() command line unzip. Added better error descriptions into importbuddy step 2. Fixed full error message (only short description was showing) from not displaying for some error messages in importbuddy.
-- RELEASE CANDIDATE --
3.0.0.6 - 2012-05-30 - Dustin Bolton
Added additional is_object check into updater to prevent notices on http error getting licensing information when in Multisite on a subsite. Moving to Release Candidate status. 3.0.0.7 - 2012-05-31 - Dustin Bolton Added `View zip contents` feature. Fixed missing options array box on Getting Started page. - re: Jeremy Fixed deleted backups not being cleaned up upon deletion. Periodic cleanup also scans for these now. A minimum of 3 are kept for statistic purposes. - re: Jeremy x-zipbuddy now excludes directory wp-content/uploads/pb_backupbuddy. - re: Jeremy Fixed "PHP Parse error: parse error in ../importbuddy/views/html_2.php on line 22". - re: Jeremy mysqlbuddy library now properly uses db_1.sql.tmp file if the database prefix has changed as this is the location of the modified SQL file. - re: Jeremy Fixed unneeded creation of db_1.txt file in site root. - re: Jeremy Fixed various notices/warnings encountered during certain failured. - re: Jeremy Fixed "PHP Warning: trim() expects parameter 1 to be string, array given in ../wp-content/plugins/projectbadger/lib/zipbuddy/x-zipbuddy.php on line 151". Now directly copying array. No trim needed anymore since no longer parsing a string. - re: Jeremy Periodic cleanup function now deletes logs that are 12 hours old or older. - re: Jeremy 3.0.0.8 - 2012-06-01 - Dustin Bolton Commandbuddy no longer prefixing Windows commands with setting path. - re: Jeremy Fixed framework status method \ slash escaping characters from showing in logging on Windows. - re: Akers Fixed zipbuddy issue with error code 0 throwing a failure in zipbuddy on Windows. - re: Akers Fixed mysqlbuddy spacing issue on importing larger SQL file on "Imported X queries so far." - re: Akers 3.0.0.9 - 2012-06-04 - Dustin Bolton ImportBuddy & RepairBuddy passwords now hidden in response to customer requests. - re: Jeremy Now setting character set to utf8 for command line import (commandline: `-- default_character_set utf8`) to match existing PHP import (query: `SET NAMES 'utf8'`) setting. - re: David All instances of database queries using LIKE now properly escape underscores so they are understood as literals. - re: Bolton discovery. ImportBuddy wipe database option changed to wipe database tables that match prefix. Greater resolution and less risk of accidents. - re: Gilbert 3.0.0.10 - 2012-06-04 - Dustin Bolton Ignore existing WordPress table option in ImportBuddy allows appending to existing database tables. - re: Gilbert 3.0.0.13 - 2012-06-05 - Dustin Bolton Preliminary addition of managewp support. - re: http://ithemes.com/forum/topic/22799-backupbuddy-doesnt-show-as-updatable-in- managewp/ 3.0.0.14 - 2012-06-05 - Dustin Bolton Dropbox directory now less picky and supporting subdirectories. - re: http://ithemes.com/forum/topic/27111-dropbox-destination-directories-and-failed- deliveries/ 3.0.15 - 2012-06-07 - Dustin Bolton Additional modifications to ManageWP implementation. We are working with ManageWP to get this implemented soon. Importbuddy: Reworded `Ignore existing WordPress tables and import (merge tables) anyways.` option. Minor updater to updater lib to address https / http mismatch. Changed version numbering. 3.0.16 - 2012-06-08 - Dustin Bolton ImportBuddy & RepairBuddy passwords no longer stored in database; only hash is stored. ImportBuddy & RepairBuddy passwords are migrated from 2.x password format to 3.0 hash version. Updated ImportBuddy / RepairBuddy download warnings for blank password and file packing functions to handle new hashing. 3.0.17 - 2012-06-08 - Dustin Bolton Added BETA Database mass text replace (with serialized data support) feature to bottom of Server Info page. 3.0.18 - 2012-06-08 - Dustin Bolton Automatic upgrades now available for ManageWP support. 3.0.19 - 2012-06-08 - Dustin Bolton Fixed Multisite Export not showing in the menu even though enabled in some cases. 3.0.20 - 2012-06-11 - Dustin Bolton Fixed post cleanup failing. Fixed scheduled remote destination sending. - re: http://ithemes.com/forum/topic/28539-309-automatic-remote-backup-does-not-work/ Fixed error: "PHP Warning: mysql_ping() expects parameter 1 to be resource, null given in \lib\mysqlbuddy\mysqlbuddy.php on line 488" - re: Kurt [godaddy] 3.0.21 - 2012-06-12 - Dustin Bolton Multisite subsite administrators can now access Multisite Export when enabled. - re: http://ithemes.com/forum/topic/28641-multisite-no-menu-on-sub-sites/ Added updater timeout at 20 seconds. 3.0.22 - 2012-06-13 - Dustin Bolton Modified to use backupbuddy.php as main load file instead of init.php for backward compatibility. To find main plain file call pb_backupbuddy::settings( 'init' ) for return value of 'backupbuddy.php' in this case. - re: Chris Fixed broken migrations of settings from 2.x to 3.x. - re: Chris 3.0.23 - 2012-06-13 - Dustin Bolton Fixed `Notice: Undefined index: archive_file in backupbuddy/classes/core.php on line 1658`. - re: Chris Settings migration no longer requires deactivate/reactivation to upgrade. - re: Chris -- FINAL -- 3.0.25 - 2012-06-13 - Dustin Bolton Updated tutorial videos inside BackupBuddy (play video buttons). - re: Josh Tables rendered with pb_backupbuddy::$ui->list_table() now place a non- breaking space inside empty fields. - re: Chris Final 3.0 version to release. 3.0.26 - 2012-06-13 - Dustin Bolton Fixed 'Undefined variable: pluginbuddy_init' error in ImportBuddy. - re: Chris, Jeremy 3.0.28 - 2012-06-13 - Dustin Bolton Fixed password hash not properly getting set in importbuddy. re: Jeremy Fixed password hash failing to auto-authenticate for automated migration. 3.0.30 - 2012-06-13 - Dustin Bolton Multisite Export is now always available for Super Admins regardless of subsite admin export setting. Multisite Export getting stuck on theme export due to WordPress 3.4 function deprecation fixed. mysqldump command line password is now stripped from all logging. Amazon S3 bucket names now allow underscores. Fixed incorrect S3 bucket name test failure error message to be more descriptive. Added additional security for backup downloading in Multisite installations. Added subsite backup listing to export page to view previously created exports. Fixed CSS rounded corner styling for Firefox. Moved Dropbox section of remote destinations to load last due to some Dropbox errors breaking other destination functionality. Attempting to resolve Step 6 if importbuddy timeouts. Fixed backup status bar styling being a bit off. May have fixed an issue where scheduled backup emails were not being sent. 3.0.31 - 2012-06-15 - Dustin Bolton Fixed missing 'select destination' link for scheduling email destinations. Multisite Import: fixed media files not being imported to the correct path. Multisite Import: fixed imported users not having their old roles applied. Resulted in users importing but not attached to site. Multisite Import: added additional logging to import users step. Multisite Export: cleaned up legacy code for user copying to temporary table. Multisite Export: added cleanup step to remove stray temporary users table. Multisite Export: fixed media export dropping the year in the media uploads directory. High speed command line mysqldump now properly dumping auto increment information. Fixed redefined class errors with Dropbox pear. Fixed Edit scheduling defaulting back to database. Clarified troubleshooting section explanations. Added additional information to Multisite Export for Admins feature. Multisite Export: Fixed PHP Fatal error: Call to undefined function wp_get_theme() caused in WordPress versions pre-v3.4. 3.0.34 - 2012-06-19 - Dustin Bolton Mysql database dump: Fixed null valued fields being exported with empty strings instead of nulls. - re: Jeremy Missing loading_large.gif image re-added. - re: Jeremy Automated migration now creates a specified local destination directory if it does not exist. Multisite Import: Fixed post author ID not being updated properly to match any changed user IDs. Fixed missing file information when backup integrity checks are disabled. - re: Jeremy Multisite: Fixed menu item and Getting Started page still being available to subsite users when export allowed. Multisite: Fixed missing usermeta table; bug introduced in 3.0.31. Multisite: Users missing capabilities cannot be imported. Avoids user count mismatch in subsite user list. Multisite: All usermeta is now copied over on import, such as bio info and first & last name. Multisite: Dashboard widget no longer shown in subsites and now displayed in the network admin dashboard. Dashboard widget URLs fixed. 3.0.35 - 2012-06-20 - Dustin Bolton Fixed problem with some plugins enqueng their javascript on our pages causing conflicts in the Remote Destination popup. - re: Gary Multisite: Users with no capabilities will still be imported into network but not assigned to a blog. mysqldump compatibility mode bug causing doubled up data introduced in 3.0.34 fixed. 3.0.36 - 2012-06-26 - Dustin Bolton Fixed notification emails not sending for scheduled backups. Commented out some implicit flushing on ImportBuddy step 6 to attempt to discover timeout cause. Added pb_backupbuddy_ prefix to all S3 classes to help avoid conflict with other plugins using the same library. Re-added MD5 checksum hash feature to backup listing. ImportBuddy: Re-added advanced feature to wipe ALL database tables prior to import. Use with extreme caution. Multisite Export: If export would create temporary users table matching main network users table temp table is skipped to prevent users loss. Added check to not load core classes in admin init if it is already loaded just in case. Fixed editing schedules resulting in edited schedule immediately running. Renamed querystring variable from backup to backupbuddy_backup to avoid conflicting with incorrectly written wp-db-backup plugin. Updated Dropbox transfer limitation estimate to cap at 150MB due to Dropbox API limitation. 3.0.37 - 2012-07-02 - Dustin Bolton Extended WordPress compatibility back to WordPress v2.6 for basic functionality. - Chris FEATURE: Added `Note` feature in backup listing table to allow users to set backup descriptions on an archive (for servers that support it). - Dustin Stores the note in both the integrity check data structure and the archive zip comments field in the actual file. Requires ZipArchive for storing the note inside the archive comments field currently. If ZipArchive is unavailable the note is only stored in the integrity data structure and an alert notifies the user of this. Only alphanumeric characters are permitted now. Editing an existing note displays existing note text in editing box. Notes should be 175 characters or less. (Actual limit is 200 characters to allow a little wiggle room for the user). Now tracking creation date rather than modified for backup listing so note changes won't change backup date and order. FEATURE: ImportBuddy Step 1 now displays archive note if one exists (and server supports it). - Dustin Regex adjusted for note feature. - re: Jeremy Periodic cleanup function now removes any stray importbuddy directory in site root. ImportBuddy now temporarily renames .htaccess file after unzip until next to last step to prevent WordPress from hijacking import process. 3.0.38 - 2012-07-03 - Dustin Bolton Added troubleshooting option to disable/bypass zip method caching so that zip testing can be seen in all logs at all times. All instantiations of the S3 library now honor SSL settings. - Issue #193. RepairBuddy DB replacement now displays all table prefixes whether starting with wp_ or not. - Issue #202. ImportBuddy: Entering an invalid password now displays an alert indicating invalid password. - Issue #215. ImportBuddy: pb_importbuddy_settings.php moved to importbuddy/_settings_dat.php - Issue #262. ZipBuddy lib: Now checking to verify class and/or Pclzip file exists prior to pushing into available methods stack. mysqlbuddy lib: Fixed invalid argument passed to implode() on line 654. Now checking if array before imploding. 3.0.40 - 2012-07-09 - Dustin Bolton Fixed handling of ImportBuddy compatibility mode mysql import resume functionality. Added stronger BETA warning to Multisite backup page, specifically noting Multisite Network migration troubles. Added more logging to PCLZip loading in zipbuddy libraries. Fixed reporting an update available to ManageWP even if an update was not available. ImportBuddy is now included in FULL backup archives for convenience in the location: wp-content/uploads/backupbuddy_temp/BACKUPSERIAL/importbuddy.php where BACKUPSERIAL is the random characters in the backup name: Example- backup: backup-project3_com-2012_07_09-d17cdsrdbd.zip BACKUPSERIAL: d17cdsrdbd 3.0.41 - 2012-07-23 - Dustin Bolton ImportBuddy: In IE8 and older issue of inability to proceed to next step after DB test even though it succeeded. - Issue #265. [REVERTED & REMOVED] Fixed Dropbox problem with conflicting PEAR files resulting in no Dropbox button for remote destinations. - Issue #268. Added collation column to Server Information page database table listing. Updated German translations. - Dietmar Fixed greedy script limit function reporting increase to 256M even if it was already set to 256M. - Issue #273. Modified Dropbox Memory guesstimate to be more accurate. - Issue #272. Fixed PB framework functions missing public static. Backup process now registers using register_shutdown_function() to help catch fatal errors during the backup process, including those which occur during cron, and write them to logs. Reverted "Fixed Dropbox problem with conflicting PEAR" above. Dropbox PEAR includes are now explicitly called to avoid conflict with host- provided PEAR files on some servers. Updated Automated Migration invalid step error message to give proper error for debugging. Clarified local archive limits section with rewording and additional tip information. - Issue #225. Added missing cleanup of temporary directories/files in wp- content/uploads/backupbuddy_temp/ for failed backups. Added missing cleanup of temporary directories/files in wp- content/uploads/backupbuddy_backups/temp_zip_XXXX/ for failed backups. Added additional logging to periodic cleanup function. Exclusions file now rendered into wp- content/uploads/backupbuddy_temp/XXXXX/exclusions.txt for use with zip excluding. On load of importbuddy.php's login page, if the importbuddy directory already exists it is deleted then re-unpacked. This allows for easily replacing the importbuddy script with a new one (to upgrade or fix a bad password, etc). Fixed escaping of $_POST content when outside WordPress (ie ImportBuddy) AND magic quotes are ENABLED. - Issue #277. Many AJAX calls process $_POST rather than pb_backupbuddy::post() so stripping slashes was not being handled. - Issue #276. Fixed single pipe | or in pb::_POST(). - re: Jeremy ENHANCEMENT: Added file size to listing of recent remote transfers. Zip exclusions files now created within zipbuddy lib. x-zipbuddy lib now uses xclusion file for command line zip exclusions. commandbuddy lib: exec_dir compatibility added. No longer passses PATH assignment if detected. - Issue #266. Directory exclusions file now supported for all command line zip functionality. - Issue #266. Fixed ZipBuddy constructor passing an emptry string instead of empty array on step 2 of importbuddy. - re: Thread #30364. Fixed remote copying from Dropbox to local if Dropbox file is in a directory. - re: Dan Import instructions now display a bolded reminder as step #1 to set an ImportBuddy password until one is set. FEATURE: ImportBuddy can now be transferred to remote destinations from the Import / Migrate page by clicking 'Send Importbuddy' under the button. - Issue #97. Added Download and Send links beneath ImportBuddy and RepairBuddy. Added database kicker prior to scheduling next cron steps since DB was going away for Kerry during ms WP download step. - Re: Thread #30364. Added database ping at end of DB step to verify DB did not go away during the db dump as that could impact integrity of db file. Did not want the later kicking prior to cron scheduling covering up a problem. Exclusions file only includes files/directories that actually exist. Checked pre-backup per backup. - Issue #168. 3.0.42 - 2012-07-30 - Dustin Bolton FEATURE: Added FTP option for passive mode. - Re: Thread #30499. Added additional logging to cron_next_step(). Added additional importbuddy unpack logging for troubleshooting. Added database kicker to kick the DB after remote destination sending in case status cannot be updated due to DB going away. - Issue #274. Fixed typos in zipbuddy error messages. Updated latest German translations. - Graciously provided by Dietmar Added load prior to remote destination send to help keeps settings in sync with anything else happening. - re: Jeremy Fixed over-zelous database prefix replacement on import when: a) using command line mysql import AND b) changing the db prefix. - re: Issue #284. 3.0.43 - 2012-08-27 - Dustin Bolton Added 10 newlines to end of rendered importbuddy script to help servers not sending last byte. Added MIME type detection code into rackspace lib. Also added fallback mime default of 'application/octet-stream' if that also fails. - re: Thread #30775. Fixed double slash causing permissions issue in filesystem class dir_size_map() on opendir() usage. - Re: Thread #30811. Fixed datepicker failure in WP 3.2.1 causing remote destination picker to open full screen instead of in thickbox. Now running greedy script limits prior to ImportBuddy generation to help boost memory as some are hitting memory limits downloading. - Re: Thread #30832. Fixed shutdown function overwriting log file instead of appending. Fixed shutdown function not writing to main log file, only serial. Fixed malfunctioning cleanup step of Multisite Import not cleaning up backup file if enabled. - Issue #285. Increased FTP user and pass field lengths from 45 to 75 per customer request. - Re: Thread #31108. FEATURE: Added URLs and Paths sections to server info page. - Dustin Multisite now prevents exporting of the main Network site as it is tied to the Network DB prefix and may have unpredictable issues. - Dustin, Re: Jeremy. Multisite: Fixed backup listing javascript not working on Export backup listing. - Dustin Multisite Import: Fixed imported users being assigned to main network site in addition to the imported site. - Dustin Mulitiste Import of Exported subsite: Fixed upload path & fileupload_url not being updated properly in this case. - Dustin re: Jeremy Multisite Import of standalone site: Fixed fileupload_url not being updated properly in this case. - Dustin re: Jeremy Multisite Export: Temporary user/usersmeta table now dropped prior to creation in case it already exists. Multisite Export: Any usermeta data for subsites not associated with the exported site is cleared out prior to backup. - Dustin re: Jeremy Multisite Import: Fixed media files not being copied over on some servers due to destination directory not already existing. - Dustin re: Paul Added additional logging to backup step processing to see step name. Backup processing options handling no longer using references as they may become invalid during re-loading of options. - Dustin re: Jeremy Clicking on the backup status (pass or fail) now opens a thickbox with scan details in a textarea for easy copy/pasting. - Dustin re: Issue #260. Multisite Export -> Standalone: Fixed upload path not being reset to default blank value if it was explicitly set in options table. - Dustin re: Thread #31312. 3.1.2 - 2012-10-29 - Dustin Bolton All remote destinations specific code moved to destinations directory. ENHANCEMENT: New remote destinations interface & design. More features to existing destinations. Now including Stash. More intuitive usability. Nice new look and improved interface. Dropbox updated to use Dropbox v1 API (v0 API shutting down Dec 31, 2012). FEATURE: Added button to send file to remote destination after backup completed on backup page. As soon as a backup completes you are given the option to download or send the completed backup to a remote destination (or neither and the backup will stay in your local BackupBuddy backups directory). FEATURE: Added new local destination for use as a remote destination. Easily store backups in other directories on the same server filesystem. Migrate sites to another server directory (ie duplicate on same server). FEATURE: Added `Settings` page option to also display the time in backup filenames in addition to the default date. - Issue #247. Perform multiple backups per day? Now include the time in the filename to more easily identify backups by time in addition to date. Works great combined with the Note feature. Added additional explanatory text noting to use the `Alternative zip system` when falling into compatibility mode which fixes exclusions not working in that case. FEATURE: Individual files can now be excluded from backups (no longer just directories!). Now listing files in exclusions navigator for easier exclusion of individual files. A few giant files clogging up your backups? Not only can you exclude entire directories but now you can also exclude individual files! ImportBuddy: When wp-config.php is unwritable ImportBuddy will notify user & give the content the user may paste into the file. This was only displaying "Array" rather than the config content. mysqlbuddy updated to provide error message when mysql_query() returns false. Upgraded Amazon S3 library to 0.5.0. Added ImportBuddy favicon. FEATURE: Added Amazon S3 support for "Reduced Redundancy" class storage for a more affordable cloud storage option. A more affordable option than S3, reduced redundancy offers lower prices for storage and transfer at the cost of the backup being replicated less across the S3 network. This offers less redundancy in the case of catostrophic failures of the Amazon S3 system but costs less. Added additional logging during S3 destination test. ENHANCEMENT: Error messages now highlighted in backup status for easier visibility AND a new red box slides down with an error count & noting hightlighted lines are in the log above. Also links to the knowledge base. Easily see if anything may have gone wrong. Quick link to the Knowledge Base Codex. Error codes link directly to their wiki entry for details. Now logging BackupBuddy version, WP version and OS during backup. Fixed zip size and ping showing out of order in status log. Cleaned up start of status log for better readability. Cleaned up preflight check warning display to be cleaner and take up less space. Combined MS beta warning into preflight check. Remote preflight check warnings from displaying on actual backup perform page as it was already seen on backup home page. Reduced delays between AJAX actions during backup for speedier backups with less delays. Increased backup status blink rate for better visibility. FEATURE: Added database check and repair features to Server Info page. Sometimes things go wrong and your database gets corrupted. This often means having to use a web hosting tool or something like phpmyadmin to attempt to repair it. BackupBuddy now offers the option to test and run the mysql command to perform a basic repair on database tables. This can be accessed on the Server Information page by hovering over a table name in the list. This is a simple way to check and perform a basic repair. ImportBuddy upload feature no longer redirects back to login screen. Added local destination file manager/client. Fixed Server Info page directory size listing not taking exclusions into account properly. - Issue #289. Directory size listing through large number of warnings to log when open_basedir in effect. - Issue #290. Fixed incorrect call to delete_directory_resursive() in zbzipproc.php. FEATURE: Added iThemes Stash destination. 256mb of storage space currently provided for no additional cost (FREE) to all currently subscribed BackupBuddy customers. Protect your backups by sending them to distributed redundant storage servers (the so-called "Cloud"). All backups are encrypted upon arrival at their storage destination with AES256 encryption. You may store as many backups as your storage alotment allows. Limit the number of archives by site. Backups are organized within their own site folder for easy access. Manage your backups, delete, copy down to local, or get a direct download link good for an hour. FEATURE: PHP Max Execution time tester added (beta) Allows you to actually perform a test to determine your real tested maximum execution time allowed by your server. BackupBuddy attempts to override the execution time allowed to a very high number but almost all hosts cap the number much lower so the reported number can be far too high. This test actually runs a script and keeps trask of the elapsed time to determine the actual maximum execution time limit of your server. FEATURE: Stash now supports multipart uploads (chunking uploads into pieces to allow larger files to be transferred in pieces over time). Extremely large files can now be transferred to Stash than could be before by breaking files up into 'chunks' and sending one piece at a time. User can specify the chunk size that is transferred to Stash at a time. FEATURE: Backup download URL now included in scheduled backup success notifications. Easily download completed scheduled backups from the notification email (if this feature is enabled in settings). Improved automated migration flow. Now prompts for destination URL if none is entered for this destination. Highlights the Migration URL field if empty. Improved URL explanation and error messages to better explain URL / upload directory mismatch problems. User is prompted to test & verify the destination URL prior to selecting. Stash signing expiration set to 12 min. Changed error code #5445589 to #9031. File size now logged for files being sent to destinations. Partially improved some handling of the beta Multisite Network migrations of full Networks in/out of subdirectories (not officially supported; improvements provided as a convenience). Misc tweaks, fixes, styling improvements. Any unknown backup statistics are now left blank rather than multiple "Unknown"s. Fixed missing Malware Scanner warning icon. Multisite export subsite exporting error for main site now includes the prefix in error. Multisite: Malware scan is now available to anyone with access to subsite export capability. Added additional logging just prior to detecting mysqlbuddy availale methods for troubleshooting. Improved error message in importbuddy.php when key files are missing in the backup. Added new Remote Destinations page. Improved UI. ImportBuddy BETA support for importing from Stash backups. Added Stash option on destination creation to disable ability to list all Stash files. Added dismissable alert system via disalert(). Many misc tweaks, modifications, and small fixes. 3.1.3 - 2012-10-30 - Dustin Bolton ImportBuddy UI improvements for Step 1 & Stash. Fixed time not being localized for: time in backup filename, time of backup start and finish, time of destination send start and finish. Backup status now displays SQL dump file size during database dump process. Backup status now displays final SQL dump file size upon SQL dump completion. Additional Stash logging for inability to finalize Stash upload. Updated German translation files -- compliments of the awesome volunteer Dietmar. S3 library reverted to previous version due to problems with new version. Reduced Redundancy option currently unavailable until future version. 3.1.4 - 2012-11-07 - Dustin Bolton FEATURE: Schedules now show when the schedule is expected to run next. Issue #240. This allows for easy identification that the schedule is set up properly and when to expect it to occur. Missing zip functionality and other pre-flight warnings can now be dismissed. They can be revealed by clearing dismissals on the Getting Started page. Issue #1. FEATURE: Alternate cron status is now displayed in the Server section of the Server Information page. Issue #217. This allows for easily verifying that WP Alternate Cron mode is enabled or disabled to verify proper configuration. ImportBuddy auto-sets max PHP time to 30 seconds if server reports 0. Removed remaining S3 reduced redundancy call. Tilde ~ stripped from backup filename now. Fixed inability to delete files from all files Stash page due to requiring authentication. Stash quota now taken into account before scheduled sends to prevent sending files that would exceed quota. This previously was only being checked for manual sends. Reversed order of recent backups to properly show newest down to oldest. Beta feature: Database backups can be broken up into individual chunks. Currently wp_posts and wp_postmeta are broken out if feature enabled during beta of this feature. Minor interface tweaks. FEATURE: Import/Export Settings (Getting Started page). Easily duplicate settings from one BackupBuddy site to another site. Great for quickly setting up additional sites or for client work. Requested by several customers in BackupBuddy Survey. FEATURE: Enable/disable schedules (Scheduling page). Schedules can now be turned on or off via a checkbox when editing a schedule for convenience if you want to temporarily disable a schedule for some reason. FEATURE: http loopback status now listed on Server Info page. Easily see if your server has HTTP Loopbacks enabled to know whether you need alternate cron enabled or not. FEATURE: Restore sites with ImportBuddy from Stash without having to manually upload the backup. Quickly and easily restore a site backed up to Stash. Enter your login, select the backup to restore, and importbuddy handles downloading the file to the server for you for quick easy restores. 3.1.5 - 2012-11-15 - Dustin Bolton FTP sorting prior to limit erasure changed to use artsort instead of just reversing array. Some FTP servers do not return items in proper order. Fixed wp-config not writable error not providing the text to manually update it. Fixed missing button-grad.png and button-grad-active.png references for destination CSS. Tilde ~ stripped from destination Stash directory now. ImportBuddy script will now refuse to render if they somehow got the download link without setting a password first. Warns user and gives diagnostic steps. Download ImportBuddy script if no default password is set: Prompt user to enter a new default password for the importbuddy script. Saves as default. Download ImportBuddy script if a default IS already set: Prompt user to either enter a one-time password to set for this importbuddy OR leave blank to use default. BackupBuddy cleanup procedure now logs BackupBuddy version to more easily see the current version in use via log files. S3 secret key no longer displayed when editing a destination. (password field). Visible only when adding a destination. Can no longer send ImportBuddy script to remote destination if a password has not been set. Fixed BackupBuddy dumping all tables for a site rather than ones just for this site when set to only backup tables with the same prefix under some circumstances due to bug introduced in 3.14. 3.1.5.1 - 2012-11-17 - Dustin Bolton Fixed invalid serial error if ImportBuddy password has not been set. 3.1.5.2 - 2012-11-27 - Dustin Bolton FEATURE: cPanel databases can now be created from within ImportBuddy. To make it easier to perform a restore or migration you can now provide your cPanel login credentials and BackupBuddy will connect to cPanel and create and set up your database and set permissions so you don't have to go to all of the trouble of performing this complicated step that is often a struggling point for many users, especially their first time. Moved --quick to after --skip-opt in mysql command to prevent it from being overrided. Keys not disabled pre-insert and re-enabled post-insert per table in SQL dumps for both mysqldump and phpdump. ENHANCEMENT: Preflight check now scans for any backup files leftover in the site root (ie from a recent restore) and warns. ENHANCEMENT: ImportBuddy now checks for existing index.htm/html file before restore to warn of it potentially blocking WordPress from loading. Sometimes you may have an index.htm/html file in the directory you restored to. On some servers this can prevent the loading of WordPress. Now you will receive a warning as one additional layer of checks we perform to help make imports as smooth as possible. Maximum PHP runtime no longer overriden if it is equal to 0 (unlimited) or greater than the number we would be changing it to (currently 7200 seconds). Incomplete or in-process backups could show the finished time as being far in the past. Fixed to properly denote the backup as unfinished. Status log now displayed again in textarea so copy/pasting to support will not lose newlines. ENHANCEMENT: A one-time user password can be entered upon ImportBuddy download. You also no longer have to enter passwords to start using BackupBuddy as it can be set on the script download. Easier setup, more convenient, quick, one-time-user passwords for clients, etc. ImportBuddy & RepairBuddy password fields now require confirmation to save. Exclude tree for directory exclusions now strips . and .. from file listing prior to processing. Email destination test now displays more details on failure. Dropbox exceptions now caught and reported more consistently. ImportBuddy: Missing .SQL file in backup ZIP now reported. Plugin URL and Path generation improved to use proper WP way if available for robustness. Multisite import blocked if refreshing page & not sending post variables to prevent proceeding with wrong/missing data causing unforeseen issues. ImportBuddy now defaults to full logging for ease in troubleshooting. FEATURE: ImportBuddy log now viewable on Step 5 just before cleanup for advanced users or troubleshooting/support. If you encounter any trouble now you can easily view your log file on Step 5 during the import. This can be easily be copy/pasted to tech support if needed, making troubleshooting and support easier. 3.1.5.3 - 2012-11-27 - Dustin Bolton Fixed FTP limit not taking effect due to previous update. 3.1.5.5 - 2012-12-01 - Dustin Bolton FEATURE: Ability to customize email notification text with variable support. Easily customize what information is or isn't sent in error notification emails (if enabled). You can customize the wording, subject, body, and use variables to determine which information is passed along in the email. Fixed directory exclusion listing displaying exclusion of more directories than actually set to exclude in some cases if directory exclusion pattern partially matched. Fixed File & Directory Exclusions picker failing to show all files in a directory when there were also directories present. Extra 'back to destinations' button removed from Destinations picker main page. 3.1.5.6 - 2012-12-02 - Dustin Bolton Fixed ImportBuddy import errors when importing db via command line mode AND changing prefix due to alter tables prefix not being updated. 3.1.6 - 2012-12-03 - Dustin Bolton Official release of 3.1.5.1-3.1.5.6 updates (see above for their contents). 3.1.6.1 - 2012-12-04 - Dustin Bolton Fix PHP-based database import not handling alter table in some cases. 3.1.6.3 - 2012-12-07 - Dustin Bolton Server Info page Server Settings section removed redundancy in Status/Result columns. Moved "Reset Plugin Settings" button to "Settings" page. Moved "Import/Export Settings" button to "Settings" page. Settings page contents no longer in meta box. Tabbed sections added to Getting Started page. Additional tutorial information added to Getting Started page. Improved UI on Getting Started page. Fixed Scheduling page form submission errors not being displayed. Added scheduling interval tip to Scheduling page. Improved BackupBuddy destination in listing for improved visibility. 3.1.6.4 - 2012-12-07 - Dustin Bolton cPanel DB creation password now urlencoded before sending. Button styling updated to work with WordPress 3.5. Rework of Getting Started page. Unavailable update/check time for database tables on Server Information page now noted as unavailable rather than just blank. 3.1.6.5 - 2012-12-08 - Dustin Bolton Undefined index fix from previous version. 3.1.8 - 2012-12-10 - Dustin Bolton All features from builds 3.1.6.1-3.1.6.5 release. PHP notices fix. Fixed undefined index notice thrown by updater when no license is set in some circumstances. Fixed Stash management PHP notice when viewing all files. 3.1.8.1 - 2012-12-18 - Dustin Bolton Updater notices when no license entered fixed. FTP now defaults to passive rather than active mode for new installs. Added ignore zip archive warnings option to Settings page. Added additional logging for loopback test. Server Info page available zip methods now refreshable. ImportBuddy domain prompt was missing for Multisite Network restore, resulting in missing entry in wp-config.php Multisite fix for WordPress v3.5 PHP notices for $wpdb->prepare() missing second paramter. Moved progress data sent to browser AJAX during backup to also be logged to file for better debugging. (ie temporary zip file size, ping, etc). Cleaned up backup listing tables to be clearer. Added new integrity details option under integrity status on backup listing. FEATURE: Integrity status details now shows improved interface for easier viewing. Easily see integrity status and tests. Easily see backup times, time taken per step, and attempts made per step. Status indicators throughout plugin updates for better visibility & clarity. ngettext() function now emulated for ImportBuddy is not available. Fixed ImportBuddy download password cancel from proceeding to download if no default set. Fixed ImportBuddy download problem when pass hash blank. 3.1.8.2 - 2013-01-24 - Dustin Bolton Server Information page organized with tabbing. Removed beta max execution time test. Minimum recommended WordPress version updated to 3.3.0. Fixed row count inaccuracy with Innodb tables on Server Info page. Fixed missing `Send File` option when viewing zip contents enabled. Backup technical details now lists destination type in textarea for better troubleshooting. Server Info page directory listing now displayed via AJAX. Backup serial information in data structure now stores BackupBuddy version in backupbuddy_version variable. FEATURE: Custom backup storage directory Backups can now be stored in a custom location, even outside of the web directory (such as for added security). Multisite fix: Temporary users table now exported. FEATURE: Daily housekeeping schedule now in place. No longer scheduling per- backup cleanup scheduled events. Improved performance. Full daily cleanups for peace of mind and less server resource usage. FEATURE: Advanced option to skip brute force migration on ImportBuddy import. Skips one of the slow portions of migration that hangs up users on very large sites. New advanced option to skip inclusion of ImportBuddy in full backups. Send file option missing for backups listed when option to view backup file contents enabled. Added Error #9033 when process_backup() runs before pre_backup() function completes. Catches a cause of Error #9031. Database kicker no longer type hintes database object as wpdb class name. Also logs class name of object for troubleshooting. Removed greedy script limits from Step 1 of ImportBuddy. Fixed unknown settings option php_minimum on Step 1 of ImportBuddy Server Info section. Improved error message when automated cPanel db creation fails in ImportBuddy. ImportBuddy DB creation now supports customized port for cPanel URL. Server Information Page Mass DB Replace tool now warns if a prefix with multiple underscores is detected. Also displays current table prefix in all cases. Added additional notice for Multisite users regarding WP 3.5 problems. Misc ImportBuddy error message improvements. Multisite Export: Fixed missing site plugins not being exported. importbuddy.php & importbuddy temp directory are only deleted by periodic cleanup procedure if they of certain age to prevent cleaning up mid-import/restore by a site visit. S3 destination default empty config.inc.php to prevent attempt to set path triggering shell warning on some servers. Coming soon: automatic generation of file if not found. 3.1.8.3 - 2013-02-12 - Dustin Bolton 9010 error that is specifically noting the mysql server has gone away now gives details on this and kills (die()) to prevent flooding user with fatal notices. FEATURE: User role can now be used to define which users have full access to BackupBuddy (based on capability internally). You can now extend BackupBuddy access to lower levels now and not just administrator role. S3 destination default blank config file config.inc.php existance verified on activation & upgrade. Should typically get re-added by devs. Adding schedules: User can no longer select & submit to delete backup after remote send if no remote send has been picked. Post-scheduled backup remote send local file deletion only occurs if at least one of the remote destinations exists. Step 2 now enforces selecting a backup on Step 1. FTP compatibility: ftp_chdir() with path now used to change directory prior to ftp_nlist() without path for compatibility with some FTP servers. FTPs support extended to file management & copying back to local. Dropbox token rejection for existing destination no longer blocks its deletion. Fixed missing 6th param for process_s3_copy cron. MULTISITE IMPORTANT NOTICE: Multisite BETA features no long available by default. Suggest adding the following to your wp-config.php to enable experimental Multisite functionality: define( 'PB_BACKUPBUDDY_MULTISITE_EXPERIMENT', true ); FEATURE: New archive limit option to limit by age, in days. Automatically delete archives during backup that exceed a certain age limit to get rid of backups that are older than desired. Added FTP file read error message when local file exists but it not readable. ENHANCEMENT: Improved directory exclusion picker interface. Database & file exclusion indicator improved. Exclusion background lightened for easier readability. FEATURE: Database table inclusion/exclusion picker. More easily see existing tables to aid in adding additional exclusions or inclusions. Added lines in status log during backup for easier reading. Five dashes before a step starts and after ending: "-----" "--- New PHP process." displayed each time a new PHP process runs. FEATURE: Merged in major ZipBuddy v2 update by Jeremy - Jeremy Trask Systems falling into compabitility mode now support file/directory exclusion automatically. Alternate zip system rolled into main system so no longer needed (setting is unchecked for all users now). All fallback methods now support all zip/unzip functionality except ZipArchive is not supported for zipping. Integrity test can now use all zip methods (command line zip via exec, ziparchive, pclzip fallback). New Setting to Ignore Non-Fatal Errors when building the zip file. Additional logging including Server information / environment, 32 vs 64 bit, etc. Zip methods cached for 60 minutes but auto-refresh on migration, server info page refresh, etc. Renamed php-based on server info page to php-based pclzip. Changed default access requirement to `activate_plugins` from `administrator`. Default setting migrated on activation. Fixed custom backup storage directory reset default option not properly escaping for Windows directories. Multisite: Fix issue with importing sites into a Multisite Network created in WordPress v3.5 or newer having different meda URLs. BackupBuddy custom directory setting now stripping slashes prior to save to avoid WP or magic quotes issues. Data structure archive_file updated upon updating backup directory to reflect path change. Fixed tabbed interface background color not updating to reflect current tab. FEATURE: New Server Info page Server Information items. Added PHP API & PHP architecture (bits) information to Server Info page to better display Server properties & details. Fixed custom backup storage directory slash inconsistency when escaping on Settings page. FEATURE: Server Info page Server results can now be displayed in text format. Easily share your Server Info page Server section in a text format for troubleshooting, etc. Easy copy/paste format. 3.1.8.6 - 2013-02-14 - Dustin Bolton Now suppressing chmod warnings on unlink chmod. Fixed typo Server "Configuruation" on Server Info page. Added additional FTP connection trouble logging. Overall site log file surpassing 10MB (by default; modifiable on Settings page) in size will be deleted to maintain performance / prevent runaway logging. Single event scheduling is now confirmed in all cases. Errors logged on failure. Fixed maximum backup age option being set incorrectly calculating age & overzelous deletion. Now using mtime for calculating when file last modified (rather than ctime) for backup age limiting. All users of 3.1.8.3 should upgrade to 3.1.8.6 or newer. 3.1.8.8 - 2013-02-14 - Dustin Bolton Patch for problems with Windows paths on Settings page. mysql.connect_timeout & default_socket_timeout now temporarily reduced to 5 second timeouts before testing old mysql settings prior to Step 3 of ImportBuddy loading. 3.1.8.9 - 2013-02-15 - Dustin Bolton Fixed database table inclusion icon mismatch. 3.1.8.10 - 2013-02-19 - Dustin Bolton Fixed warning when sending importbuddy.php to Stash manually due to invalid variable holding placeholder size. Fixed undefined index when setting up first Stash destination. Destinations send() now handles empty filename being passed to it and ignores. Core send_remote_destination() no longer passes blank string in array of files to send. remote_send() now logs if ONLY ImportBuddy is to be sent. Now checking file existance in migrate_restore.php of importbuddy.php before unlink. Another cleanup function possibly be cleaning it up before it gets unlink perhaps. ajax.php remote_send() now logs and alerts if a file to send was did not exist. Added check in ajax.php remote_send() to verify file existance before continuing. Added dismissable preflight message noting discovery of activated caching plugin & warning that some configurations for it can potentially cause a problem & suggest clearing cache & disabling to troubleshoot if problem encountered. "One or more caching plugins were detected as activated. Some caching plugin configurations may possibly cache & interfere with backup processes or WordPress cron. If you encounter problems clear the caching plugin's cache (deactivating the plugin may help) to troubleshoot." Expired transients are now cleared out of WordPress automatically. Fixed incorrect slashes on backup download on Windows when custom backup directory in use. Log file setting added to trim log if it surpasses certain size (default: 10mb). Beta zip file contents viewer improved. 3.2.0 - 2013-02-19 - Dustin Bolton Fixed incorrect slashes on Windows for directory exclusion calculation in core class directory exclusion calculation. Public release of all changes from build versions 3.1.8.0 through 3.1.8.10. 3.2.0.2 - 2013-02-20 - Dustin Bolton Renamed "Status" to "Status Log" for better clarity for support purposes on Backup page. Renamed backup storage directory to note that this setting is for LOCAL storage only. Remote storage settings found on the Remote Destinations page. Also updated tip. Removed beta status from custom backup storage directory setting. Added Swedish localization files. 3.2.0.3 - 2013-03-25 - Dustin Bolton Experimental Multisite functionality requires adding the following line to your wp-config.php to access: define( 'PB_BACKUPBUDDY_MULTISITE_EXPERIMENT', true ); Migration now supports double-serialized data, extending existing single- serialized data support. ENHANCEMENT: Integrity check now runs as backup process step. Failed checks result in a failed backup response though the backup file is left in place. File limits ignored when a backup fails to avoid potentially deleting older valid backups. Backup integrity is now verified during all backup processed by default to further insure that your backups are valid. Temporary index.htm created on importbuddy.php access if none exists to help prevent against file browsing before import process gets under way. Not placed on numeric steps unless less than 5. ImportBuddy supporting files no longer unpacked on every authentication page access unless ImportBuddy version and/or password has changed. A 'signature' hash of the version & password is stored in /importbuddy/_signature.php and compared against. Prevents against excess unpacking & loss of code during development. FEATURE: ImportBuddy Step 1 now lists backup type next to backup file selection. Easily identify backup types before restoring. FEATURE: Server Information page now lists active WordPress plugins and helps point out any known conflicts. Some plugins, such as some versions of caching plugins, can cause issues under certain circumstances / configurations. A warning here helps in troubleshooting issues. FEATURE: ImportBuddy now looks for manually unzipped WordPress installations unzipped to the wrong location and suggests how to fix it. Whenever file migration is handled manually it's easy to accidently unzip files into a subdirectory. ImportBuddy now works to seek this out and provide notice of this to help guide you in placing the files in the proper location. FEATURE: Temporary .maintenance file generated during restore to help prevent against viewing partially migrated site. ENHANCEMENT: Improved warnings on Step 5 about potential problems: existance of index.htm, index.html, .maintanence files; lack of wp-config.php or .htaccess files. Helps detect common potential issues and warn user, providing possible solutions. mysql import and dump now shell escapes most parameters to avoid issues with odd characters in password & other settings as well as redirect STDERR to STDOUT to better capture problems in status log. Backup steps now display the attempt number in status log. FEATURE: Backup page now has button to cancel backup. Easily cancel an unwanted backup and halt the backup procedure. Status information is stopped updating and cleanup step is scheduled in the background as the next scheduled step to run to clean up any temporary files or backup zip archive that may have been created. Updated German translations. Thanks to Dietmar Herian for providing these. Fixed error when manually deleting files on FTP via manage page. Fixed changing db settings after testing in ImportBuddy not re-disabling Next button. Fixed file size of recent remote transfers listing as 49kb. Bug introduced 3.1.8.10. ImportBuddy status updating efficiency improved. FEATURE: PHP errors now caught, written to log, and displayed in status area for improved troubleshooting. Better recording and display of any fatal PHP errors encountered during import. Aids in troubleshooting and technical support. FEATURE: Scheduled backups can be manually run from the Scheduling page. You can now test schedules backups, including automated remote destination sending, by hovering a schedule on the Scheduling page and selecting "Run Now". Fixed local file deletion option failing when Stash chunking enabled. Local backup file no longer deleted during schedule if remote transfer fails. Email warning sent. When multiple remote destinations are scheduled for sending to in a single scheduled backup failure of one remote send does not halt the entire process. The next destination(s) will still be sent to. An error message is logged and warning email is sent. ImportBuddy: DAT file contents now displayed on Step 2 for troubleshooting purposes. Old database password hidden. ImportBuddy: All database options moved to Step 3. ENHANCEMENT: ImportBuddy: All advanced options now accessible via "Advanced Options" button on lower left of applicable pages. FEATURE: ImportBuddy: wp-config.php and .htaccess files are checked for non- migrated URLs and user is notified to help warn of potential issues. Includes checking wp-config.php COOKIE_DOMAIN directive. FEATURE: ImportBuddy: Step 5 now displays a small list of common import problems and their solutions. Fixed Server API suggestion to n/a. Fixed cron_schedules filter from overriding any existing custom cron intervals. Invalid destinations are now removed on accessing destinations list to prevent corrupt destinations from getting stuck. Added new pb_backupbuddy::flush() to help force flushing to occur; updated most flush() calls to use this in BackupBuddy and ImportBuddy. ImportBuddy: Added additional checks to pages & AJAX to prevent loading if PHP files accessed directly for more security. ImportBuddy: Authenticating resets any configured options back to defaults. Server Information page now lists latest major and minor BackupBuddy versions, current version, and recommends updating if non-minor version is behind. Multisite: Fixed upload URL problem when importing Network created post- WordPress v3.5. PB flush(): apache_setenv() only called if function apache_setenv() exists. ImportBuddy now loads assets via relative path for increased support for custom environments. Multisite: Fixed some mismatches in upload URL depending on mismatch between WordPress versions combined with custom upload directory. ImportBuddy: Many misc tweaks and improvements under the hood. FEATURE: ImportBuddy: Misc UI improvements for look, feel, and usability. Dropbox destination problem with spaces being replaced with %20 fixed. Site size listing & exclusions now has "Display in Text Format" button for easy copy/pasting. Meta data now stored in ZIP comment field. Comment now stored under "note" key within meta array. Backwards compatible with plain text string comments. FEATURE: Meta information now available under on backup page by selecting "View Details" in the Status column for any new backups made including: WordPress version & BackupBuddy version when the backup was made, serial, date, site URL, and backup type. This information is embedded in the backup ZIP file. FEATURE: ImportBuddy: Now displays backup file size and other meta information such as source site URL, WordPress version, BackupBuddy version, relative path to DAT file (relative to root of zipped files) etc. Increased loopback test timeout time from 5 seconds to help with very slow servers. Fixed reversed Recent Backups order. Restore / Migrate page re-organized. ImportBuddy: Database migration step now logs actual mysql error message if any encountered. 3.2.0.4 - 2013-03-26 - Dustin Bolton Improved Error #9033 explanation. ImportBuddy: Improved ImportBuddy authentication security. Feature: ImportBuddy: Now locks out all access after 4 failed password attempts for added security, requiring a file to be deleted to regain access. Fixed AJAX error popup on failure in automated migration. Automated migration error introduced by 3.2.0.3. 3.2.0.5 - 2013-03-26 - Dustin Bolton ImportBuddy: Fixed authentication error loading Step 5. ImportBuddy: Suppressed warnings on Step 6 closing database connection when database has already gone away prematurely. 3.3.0 - 2013-04-01 - Dustin Bolton Public release of ALL updates included in versions 3.2.0.2 - 3.2.0.5. See version information above if updating from v3.2. ImportBuddy: Backup meta data now displayed on Step 2 in addition to DAT file contents. ImportBuddy: DAT location now retrieved from backup meta data (in comment) as preferred source of DAT location. Falls back to prior methods. ImportBuddy: All ImportBuddy settings reset to defaults whenever authenticating on Step 1 to reset defaults if resuming a partial import. 3.3.0.1 - 2013-04-05 - Dustin Bolton Anti directory browsing added new 3rd parameter to deny from all. Fixed Server Information page reporting warnings even when up to date. Feature: Added 'Twice Daily' scheduling period. 3.3.0.2 - 2013-04-17 - Dustin Bolton Enhancement: File based options storage with file locking added to insure backup step data integrity and enforce protection against concurrent processes overlapping & creating backup problems, especially due to problems such as caching plugin interactions. ImportBuddy typo in login exceeded message. - Elise Backup data information now stored in file with locking rather than database data structure for better reliability and immunity from caching plugins. Fixed Getting Started page Twitter feeds not caching, resulting in excess calls to ithemes.com & twitter feeds while on Getting Started page. Added additional instructions for database only restores. Fixed insufficient command line length forcing database into fallback mode. "unrecognized option" response from mysqldump now forced fallback mode to insure against old or alternative versions of mysqldump from creating faulty database dumps. FEATURE Getting Started wizard makes getting BackupBuddy up and running faster and easier than ever with default presets. Additional instructions for database only restores added. mysqldump now detects unsupported parameter errors and reports them. Misc minor bug fixes. FEATURE Backup now displays an error box with an error count and information on where to find additional information about error codes and the knowledge base. More easily identify and find information about any potential errors encountered. Zip Method Strategy added replacing forcing compatibility mode for greater flexibility and clarity. - Jeremy Setting added for ignoring / not following symbolic links. Enabled by default. - Jeremy set_greedy_script_limits() improvements. - Jeremy Removed Delete button from Automated migration backup list. Backups may be deleted from the main backup page. Quick setup wizard updates. UI tweaks. Current data structure version incremented to version 5 to force data upgrade of fileoptions data. Fixed file display listing error when displaying directories with permission problems. Added advanced debugging button on Backup Status 'View Details' popup to display decoded fileoptions contents array. Fixed Quick Setup wizard URL. 3.3.0.3 - 2013-04-18 - Dustin Bolton Added user ID logging to Multisite user import step for collisions. log_directory verified prior to activiation upgrade to insure log directory is set and saved before fileoptions upgrade commences. 3.3.0.4 - 2013-04-19 - Dustin Bolton Minor fix: Fixed edits since last backup not being updated & last serial since 3.3.0.3. 3.3.0.5 - 2013-04-19 - Dustin Bolton Updated free Stash storage from 512MB to 1GB. Read-only fileoptions mode ignores locks. 3.4.0 - 2013-04-21 - Dustin Bolton Release of all updates from 3.3.0.1 - 3.3.0.5. See above. 3.4.0.3 - 2013-04-22 - Dustin Bolton Downgraded some fileoptions errors to warnings as they are non-fatal. Getting Started wizard UI tweaks. Fixed invalid call to backupbuddy class instead of pb_backupbuddy. 3.4.0.4 - 2013-04-23 - Dustin Bolton Additional error logging for fileoptions system to improve troubleshooting. ZipBuddy library updates addressing Zip Method Strategy problems under certain circumstances. 3.4.0.5 - 2013-04-23 - Dustin Bolton Additional fileoptions error downgrades to warnings. Fixed fileoptions system causing errors during Classic backup mode. 3.4.0.6 - 2013-04-24 - Dustin Bolton Data structure version upgrade to 5 always saved even if no data is migrated into fileoptions system. 3.4.0.7 - 2013-05-02 - Dustin Bolton ImportBuddy: Fixed undefined index warnings when skipping zip extraction. ImportBuddy: When enabling an advanced option on Step 1, proceeding to Step 2, then using the back button to go back and uncheck an option, these new settings were not being saved. Updating advanced options on Step 1 after previously setting them now sticks. 3.4.0.8 - 2013-06-09 - Dustin Bolton 4.0 pre-release. 3.4.0.9 - 2013-06-10 - Dustin Bolton 4.0 pre-release. Now checking if posix_ function calls are disabled in php.ini prior to using them on Server Information page. Added additional warning to file restore page about dangers of restoring over existing files. Misc cleanup. 3.4.0.10 - 2013-06-10 - Dustin Bolton Added eyecon to file view/restore. 4.0.0 - 2013-06-10 - Dustin Bolton ENHANCEMENT: Various user interface and layout improvements for usability and simplification. ENHANCEMENT: Re-organized Settings page. FEATURE: Backup profiles. ENHANCEMENT: Streamlined & simplified Restore / Migrate page. FEATURE: View text-based files within backup archives. Hover over backups on the Backups or Restore / Migrate page for additional options. FEATURE: Restore files from backup archives. Easily "roll back" files. FEATURE: ImportBuddy: Backup meta information now viewable from Step 1 by clicking the 'View Meta' button next to each backup listed. FEATURE: New setting to be notified if no new backups have occured in X number of days. FEATURE: Error Notification email "Test" link added for verifying email-sending functionality properly works on your server. FEATURE: Ability to delete local backup after manually sending to a remote destination. FEATURE: Ability to customize the "from" email address for any email notifications sent by BackupBuddy. ENHANCEMENT: ImportBuddy: Improved readability & look of database test results. Improved testing to help catch database permissions problems. ENHANCEMENT: View database exclusions based on profile on Server Information page. ENHANCEMENT: View file exclusions based on profile on Server Information page. FEATURE: Built-in tutorial/tour added to many pages for additional help in BOTH BackupBuddy AND ImportBuddy. Integrity check details now lists tables broken out in step details. Cleaned up integrity check data structure to be more extendable in future. Fixed framework not handling custom savepoint in item-specific names. Now tracking last backup finish time in data structure in addition to existing start time. Fixed housekeeping cron job not being runnable. ABSPATH now listed on Server Information page URLs and Paths section. Fixed Windows paths causing "Download" link not to show on backups page. Replacing colons in remote path when storing to Stash. (users with custom ports in URLs encountered error) Re-organized Settings page. Backup Statistics moved from backup listing to the Details section available by hovering a backup and selecting "View Details" under the "Status" column. Recent backups Status Details now shows common window shared with backups list. fileoptions no longer deleted due to merely old age. Only removed when corresponding backup is removed. Fixed database mass replace changing tabs whenever beginning. ImportBuddy: Added additional checking on Step 3 controller to verify DAT contents still exist in data structure. This detects an interupted restore process (ie restarting importbuddy in a new tab wiping out DAT array). ImportBuddy: Database test now verifies table creation ability to insure permissions are valid. Also deletes temporarily created table. ImportBuddy: Database test now verified prefix is in proper format. Format: XXXXX_ where X's are alphanumeric and prefix ends in an underscore. ImportBuddy: Database test interface results improved & UI cleaned up. Replaced jQuery live() calls with on() due to deprecation. Fixed scheduled send notification email erroring if fileoptions locked. Now ignores lock and uses read-only mode. New data structure version: 6. Fixed zip system hanging on symbolic links in some cases / configurations. Settings page prompts to save if user navigates away from page or tab after making an unsaved change. Additional information now stored in backup meta data such as profile details. Backup buttons on "Backups" page now list all profiles available for starting a manual backup. Cleaned up & made permissions errors consistent when unable to create any directories. Activation error messages no longer display unexpected error output. Fatal directory error messages no longer show on non-BackupBuddy pages. Fatal directory errors now block the ability for a backup to begin. Anti directory browsing verification now only runs on BackupBuddy pages on frontend and only on scheduled cron runs on backend for better performance. ENHANCEMENT: Loopback connection error now provides server response in textarea within error box to indicate server response and details. ENHANCEMENT: BackupBuddy temp / storage directories now added to Paths & Permissions section of Server Information page for troubleshooting permissions issues. ENHANCEMENT: Added user and group IDs to Permissions section of Server Information page. ENHANCEMENT: Added PHP process username, UID, and GUID to Server Information page. Server Information page file count updating fixed. Removed all embedded videos from Remote Destination pages to avoid JS conflicts / issues. Misc bug fixes. Misc UI cleanup. Misc wording updates. 4.0.0.1 - 2013-06-10 - Dustin Bolton Fixed error downloading backup ZIP file on Windows servers. Fixed javascript error on File Restore page on Windows servers. 4.0.0.2 - 2013-06-11 - Dustin Bolton Fixed directory exclusions not being migrated to v4.0. 4.0.0.3 - 2013-06-12 - Dustin Bolton verify_directories() error in some cases during backup. PHP SSH2, SFTP Support indicatation added to Server Info page for informational purposes on its availability across hosts. 4.0.1 - 2013-06-14 - Dustin Bolton Updated German translations. Fixed a PHP 5.4 strict warning in _pluginbuddy.php Full release of 4.0.0.1-4.0.0.3. Recommended update if running 4.0.0 through 4.0.0.3. 4.0.1.1 - 2013-06-17 - Dustin Bolton Fixed undefined index on profiles editing page under some circumstances. 4.0.1.2 - 2013-06-18 - Dustin Bolton Fixed error when attempting to display/log Stash response error to user. 4.0.1.3 - 2013-06-19 - Dustin Bolton Added warning if user attempts to exclude a WordPress core table on Settings page or in a profile. ImportBuddy: Database test no longer blocks proceeding if database values are invalid when both skipping import AND skipping migration are enabled (Warning only). ImportBuddy: Database test no longer blocks proceeding if WordPress already exists AND set to skip import (Warning only). 4.0.1.4 - 2013-06-21 - Dustin Bolton Active WordPress plugins now logged in status log by pre_backup function for better troubleshooting conflicts. Settings page no longer displays database table size next to tables on table exclusion to improve Settings page performance. 4.0.1.5 - 2013-06-25 - Dustin Bolton Fixed zbzipcore typo to delete_directory__recursive() to delete_directory_recursive(). Fixed two undefined index notices when entering a license key while not logged in. Fixed possible display of buffer-related notice when upgrading WordPress due to reminder problem. Added new warning if BackupBuddy received a negative number response to the max command line length check for database dump. This can be caused if get_conf ARG_MAX failed. Automatically falls back to compatibility database dump mode. Added new advanced settings option to allow bypassing the command line length check to prevent it from falling into compatibility mode. Unsetting reference &$file to prevent PHP oddity from causing issue extracting a list of files when restoring manually within BackupBuddy. Added new error on Scheduling page when calculating the "Next run" time if the scheduled cron event was not found registered with WordPress. Error #874784. WordPress scheduled cron event not found. See "Next Run" time in the schedules list below for problem schedule. This may be caused by a conflicting plugin deleting the schedule or manual deletion. Try editing or deleting and re-creating the schedule. 4.0.1.6 - 2013-06-26 - Dustin Bolton Fixed Error #874784 always displaying. 4.0.1.7 - 2013-06-26 - Dustin Bolton Now outputting DAT file contents prior to writing for troubleshooting. (Sans database user/pass for security). Fixed Windows UNC paths dropping leading backslash when attempting to load activation PHP file. Used copious quantities of escaping via regex. Editing a Dropbox destination could result in credentials being lost and having to delete & recreate destination to fix. 4.0.1.8 - 2013-07-01 - Dustin Bolton Added Server Load Average to Server Information page. Added Http Server Software to Server Information page. Slightly increased maximum amount of retries and time between retries for cron steps pre-maturely running / running out of order. Added Dropbox transfer limitation hypothesis to status log just prior to file transfer. Added size of file to be transferred to status log just prior to Dropbox transfer. ImportBuddy now only strongly warns if prefix includes an embedded underscore rather than completely blocking. Skipped database dump no longer results in backup errors or backups marked as bad. Database skipping is noted as warnings only now. Fixed missing download link on Downloads page when hovering individual backups.s Dropbox issue fixed where editing a Dropbox destination would result in loss of authentication to Dropbox. Fixed activation error on Windows servers when on a network drive. Performance improvements on backup file listing. ImportBuddy now sets timezone earlier to avoid timezone warnings on scarcely configurd servers. dir_size_map() warnings suppressed and checked to be array to insure symlinks breaking it will not be fatal. Automatic updates to the latest minor version are now available by clicking "Update" on the Server Information page BackupBuddy version section next to the latest minor version (if available). You must already have licensing set up properly to use this. Once it is clicked you may update normally to the latest minor version. 4.0.1.11 - 2013-07-02 - Dustin Bolton Fixed Quick Start form directing to wrong URL after completion in Multisite. Fixed javascript error that could cause backup status to stop updating despite backup potentially continuing behind the scenes. 4.0.2 - 2013-07-02 - Dustin Bolton Automatic updates release of minor versions 4.0.1 through 4.0.1.11. 4.0.2.1 - 2013-07-02 - Dustin Bolton Minor changes. 4.0.2.2 - 2013-08-15 - Dustin Bolton See v4.1 release notes ABOVE. 4.0.2.4 - 2013-08-16 - Dustin Bolton ImportBuddy: Fixed problem where a renamed ZIP file could not determine location of database SQL file to restore (even though DAT file location was determined). ImportBuddy unpacking no longer trimming base64 decoded unpack data to avoid risk of altering binary data packed into ImportBuddy such as test files, images, etc. 4.1.0.1 - 2013-08-19 - Dustin Bolton OVERVIEW (since 4.0.2.1-4.1): This update focuses primarily on the Remote Destinations system with major feature additions, enhancements, and bug fixes to it. Remote Destination performance across all destinations has improved, as well as robustness and adding various features such as transfer speed tracking for most destinations. Dropbox destination added for users of PHP v5.3 or newer with _significant_ improvements including but not limited to: No more 150mb API limit, significant memory usage reduction, and multipart chunked sends for breaking up large files. sFTP (beta) destination added. Provide feedback of success or any problems encountered during beta stage. New S3 library in uses to support multipart chunked transfers. Menu icon now has retina support for high resolution version. File restoration temp directory cleanup is now part of periodic cleanup function. ImportBuddy: cpanel database creation verifies valid characters are used. New remote destination additions are now confirmed on next page as inline alert rather than popup javascript alert box. Fixed update link showing minor version available on Server Info page even if on latest minor version. Fixed "Recent Backups" page listing backups out of proper chronological order for some. periodic_cleanup() now has a minimum age limit before orphaned fileoptions files will be purged. This helps keep Recent Backups page properly populated. Deleting a backup via backups_list()'s form no longer immediately deletes its fileoptions file. The cleanup function is now handling all purging of this. Removed call to undefined function on Error #4455484589. Updated zipbuddy library regarding file_exists() issue. Fixed issue where Recent Backups page may not always show all backups. FEATURE: New Dropbox destination available for users of PHP 5.3 or newer with much improved performance. Only displayed to users with PHP 5.3 or newer. Improved performance and large file support. Supports multipart chunking to increase file sizes able to be transferred to Dropbox. ENHANCEMENT: Added new "View Log" link on Remote Destinations "Recent Transfer Status" tab. Ability to view log details specific to a certain send. Useful for troubleshooting. ENHANCEMENT: Write speed information now available under "Transfer Information" column in Recent Remote Destinations send list for most destinations. Remote destination sends now stored within individual fileoptions files prefixed with "send-" to prevent race conditions when multiple destination sends active simultaneously (ie due to chunking). Misc minor destination bug fixes. Misc improvement to logging for troubleshooting remote sends. Updated Malware scan plan URL. Many misc destination improvements behind the scenes. ImportBuddy option to ignore existing WordPress tables now only warns rather than blocking proceeding. S3 instantiation now casting SSL parameter to bool to insure proper passing. FEATURE: Amazon S3 destination updated to new version with support for chunked multipart file transfers for handling larger files. All files transferred to S3 are now automatically encrypted with AES256 encryption on destination server. Rackspace destination now masks API key in edit mode. Fixed file viewer temporary files not being cleaned up after viewing. Fixed "Extract File with Extraction Failure Does Not Clean Up the Backup Specific Temporary Directory". Loopback error notification on Backups page now lists error details for troubleshooting in box. Email destination test button on Settings page allows testing email sending capabilities. When full error logging is enabled, backup error notification emails will include the log file for the backup as an attachment. ImportBuddy: Fixed tooltip being hidden in popup windows due to z-index issue. UI lib call for alert function now pre-initialized pb_backupbuddy::$ui in case it is not yet initialized. Reversed order of history.txt so that newest updates are now at the top. ENHANCEMENT: Updated ZipBuddy library to now support extracting individual files via ZipArchive and Pclzip as fallbacks (in that order). - Jeremy Fixed issue where Stash chunking could prevent backup limiting from ocurring. Added additional check prior to sending to Stash to verify authentication credentials are valid to avoid error cascade. Updated ZipBuddy library files to use pre-built test ZIP file. Amazon S3: Prior to each chunked send any existing multipart transfers stalled will be aborted with S3 if they exceed cerain age to free up resources in S3 account. Amazon S3: Periodic BackupBuddy housekeeping function will look for and cleanup and multipart chunk transfers (for destinations having chunking enabled). This will cleanup backups that stalled by checking they exceed a certain age (72hrs currently). PHP database dump now logs which table it is about to dump. PHP database dump now logs last query attempted on fatal failure (eg. on error mysql server went away). Added additional check for existance of profile index when setting up profile for manually triggered backup. Disabled spawn_cron() call for manual backups. Prevents very odd race condition where an additional spawned process could run concurrently -- but ONLY immediately after the database dump. This may have been the cause of some servers' cron failing to schedule immediately after the Database dump step. Updated Windows ZIP executable ZIP file to include newer zip versions at a new URL: http://ithemes.com/backupbuddy_files/backupbuddy_windows_unzip.zip Updated file_tree() function to handle missing wp-content and other edge cases. Sorts directories first. - Jeremy ImportBuddy: Server Information Server Load no longer displayed in ImpotBuddy information for compatibility. ImportBuddy: "Tour this page" link no longer displayed in Server Information section. FEATURE (beta): New BETA Remote Destination: sFTP (Secure FTP over SSH). Please provide feedback for this new beta feature. Added sFTP icon for Remote Destination. 4.1.0.3 - 2013-08-21 - Dustin Bolton Remote Destination: Amazon S3 re-added support for existing buckets with disallowed characters such as underscores or dashes IF the bucket already exists. New buckets should match s3 naming conventions. Create buckets via the Amazon Console if non-standard naming is required. Remote Destination: Amazon S3 clarified logging of determination whether to chunk or not. Added new constant for mimimum allowed chunk size. Remote Destination: Stash clarified logging of determination whether to chunk or not. Added new constant for mimimum allowed chunk size. 4.1.0.4 - 2013-08-28 - Dustin Bolton New Automatic Upgrades & Licensing System - Complete overhaul Removed old automatic upgrade & licensing system. Fixed Multisite menu icon not displaying since last release due to retina update. Remote destination test details on Recent Transfers section now denotes this as a test and uses the filename 'remote-send-test.php' for test transfers. 4.1.1.0 - 2013-09-04 - Dustin Bolton Improved error reporting on manual file send to Stash if unable to connect to account (ie bad password). Reversed history.txt ordering to display latest updates at the bottom for compatibility with updater repository updating. Fixed S3 file browser being unable to detect backup type since v4.1. S3 file browser no longer displays files within subdirectories deeper than the destination directory/root. S3 file browser no longer displays files that do not match the BackupBuddy filename format. Bug since v4.1: S3 file limit fixed to not delete any files within a deeper subdirectory. Bug since v4.1: S3 file limit fixed to not delete any files for a different site that are both in the same bucket / directory location for safety. Critical S3 fix for bug since vBackupBuddy v4.1 under a SPECIFIC scenario which could result in inadvertant deletion of files within S3 bucket subdirectories deeper than the remote destinations'. Requirements for this to occur: 1) Must be running BackupBuddy v4.1.0.0 - v4.1.0.4. 1) Limits must be enabled for an S3 destination containing subdirectories within said destination's bucket & directory. 2) Subdirectories within this destination's bucket/directory must contain content that pushes the backup limit over the threshold. Fixed undefined index in Dropbox PHPv5.3+ when no backups are available in location yet. Added additional check to Dropbox destinations to not list directories. Also omitted from file limits even if the directory name matches a BackupBuddy filename format for an additional layer of security. 4.1.1.1 - 2013-09-09 - Dustin Bolton Database queries and error retrievals update to reference identifier $wpdb- >dbh. ImportBuddy now stores mysql connection in global $wpdb->dbh for compatibility with libraries using $wpdb->dbh for identifier in BackupBuddy. Fixed remote destination send log being prematurely deleted after short period of time. FTP upload no longer uses full path for send as the path is already in place via chdir(). Editing Remote Destination no longer resets destination name back to default. mysqlbuddy PHP-based import now logs table creation to better indicate SQL import status. mysqlbuddy PHP-based database dump now selects database rows limited to X number of rows at a time to help mitigate memory usage. X currently = 3000 rows. Misc minor changes. 4.1.1.2 - 2013-09-11 - Dustin Bolton Zip file contents viewer now supports viewing .ini file contents as text. Fixed trim_remote_send_stats() warning on remote destinations page due to missing. Default age-limit now set. S3 bucket creation failure now logs server response for troubleshooting. 4.1.1.3 - 2013-09-13 - Dustin Bolton ImportBuddy: Now stores a unique hash cookie for one hour to aid in usage without needing to login as often if re-starting the process or using additional tool pages. Slight redesign adding new toolbar to top for additional pages. Updated Amazon SDK to version 1.6.2. Updated plugin meta information to be consistent across iThemes plugins, including new meta row information for Support & Documentation. 4.1.1.5 - 2013-09-14 - Dustin Bolton S3 SDK rolled back to v1.5.14 due to issues introduced by Amazon's newer version. Fixed ImportBuddy error on Step 3. 4.1.1.6 - 2013-10-02 - Packaging Bot (lib/updater) Big rewrite to the updater in order to make the code more flexible. This improves compatibility with plugins that allow for remote updating of plugins and themes. The updater now supports providing changelog details for plugins and themes that have updates available. These details can be viewed by clicking the "View version **** details" link for the appropriate plugin or theme. 4.1.1.7 - 2013-10-02 - Dustin Bolton ENHANCEMENT: ImportBuddy: Now scans for php.ini file and warns of its existance and potential issues if found, particularly if importing to a new server. FEATURE: ImportBuddy: Ability to view MD5 file hash for backup files added. ImportBuddy: Database test AJAX no longer passes success via HTML comment to prevent problems with comments being stripped server-side. eg by Cloudflare. ImportBuddy: Mass database text replacement tool now available in ImportBuddy via the top menu bar to making replacements on existing WordPress installations. Missing Backup page backup listing "View Hash" option re-added. ENHANCEMENT: Simplified backup listing using backup date & time as primary listing criteria. Recent Backups page added Backup Type. S3 SDK 1.6.2 re-deployed. Updated S3 init and manage files to use modified method of getting bucket region to fix compatibility with some PHP 5.4 versions.s - Jeremy Trask ENHANCEMENT: Backup details now displays start and finish times of the overall backup process. ENHANCEMENT: Added File Size to Recent Backups listing. Updated zbzipexec to use zip -h rather than zip -v for determining version for wider server support. - Jeremy Trask No longer displaying S3 multipart upload cleanup filename & details by default. - Jeremy Trask Fixed issue where file/directory excluder list did not show files for directories containing less than 3 files/directories within. FEATURE: New database table backup option "None" to not backup any database tables by default. A warning will be displayed in all logs to use with caution. Fixed array to string conversion error on FTP management page. Fixed invalid argument for foreach during integrity check when tests array is missing/invalid. FEATURE: Amazon S3 destination now supports setting the region for any new buckets that are created by BackupBuddy. Malware scan affiliate links removed. 4.1.1.12 - 2013-10-03 - Dustin Bolton Fix for `Undefined index: ithemes_updater_path & associated error under some circumstances.`. Server Information page link to force update to latest minor version removed until feature available in updater. Addendum: Re-added Server Information page link to force update to latest minor version. 4.1.1.13 - 2013-10-04 - Dustin Bolton for Updater Enhancement: When releases with four version digits are released (such as 2.1.0.3), by default, the updater will not offer to update if just this last digit is updated. For instance, it will not automatically offer to update 2.1.0.1 to 2.1.0.3; rather, an automatic upgrade will become available when version 2.1.1 or greater is released. If you wish to force an update to these versions, you can add ithemes-updater-force-minor-update=1 to an admin page request (such as http://domain.com/wp-admin/index.php?ithemes-updater-force-minor-update=1) in order to force the updater make these releases available for an hour. If the update is not performed within the hour, the updater reverts back to default behavior. Bug Fix: Corrected source of the following error when updating: Download failed. SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Bug Fix: Corrected source of the following warning: Warning: require_once(/api.php) [function.require-once]: failed to open stream: No such file or directory 4.1.1.14 - 2013-10-07 - Packaging Bot (lib/updater) Bug Fix: Corrected another source of the following warning which occur immediate after updating the plugin or theme: Warning: require_once(/api.php) [function.require-once]: failed to open stream: No such file or directory 4.1.2.0 - 2013-10-07 - Dustin Bolton S3 Remote Destination: Ability to copy remote S3 file back to server via management page. S3 Remote Destination: Ability to get a download link to download remotely stored S3 file to your computer. Links valid for 1 hour. Major version release of updates from 4.1.1.0 through 4.1.1.14. 4.1.2.1 - 2013-10-08 - Dustin Bolton Fixed multiple S3 copy to local issues. Moved bucket region checking/setting to separate function to unify this code into one area so it may be used across multiple functions. Fixed undefined index warning on Backup Details view when fileoptions unavailable. Fixed Javascript warning in Chrome on Remote Destinations page. BETA FEATURE: FTP Destination path browser added. Browse your FTP server directories to help in picking FTP remote path. 4.1.2.2 - 2013-10-14 - Dustin Bolton Fixed cron hook filter not properly accepting existing incoming cron periods for plugins that run before BackupBuddy. S3 destination: Translate returned bucket region of 'EU' to 'eu-west-1'. 4.1.2.3 - 2013-10-28 - Packaging Bot (lib/updater) Enhancement: Added a "Quick Release Updates" setting to the bottom of the licensing page. Enabling this option allows the site to receive automatic update notices for product quick releases (releases that do not have automatic update support by default). Enhancement: Changed how the licensing page works on Multisite. Now it will appear at Settings > iThemes Licensing in the network admin Dashboard and at Settings > iThemes Licensing on sites when the current user is a network admin. This prevents exposing the licensing page to users that don't are not super users and thus should not be performing updates. As this update makes the functionality of the "Licensing Page Access" setting obsolete, the setting has been removed. Enhancement: Using the ithemes-updater-force-minor-update query string variable will now force a data flush, allowing any available quick release updates to appear instantly. Enhancement: Added "License" links to the Plugins and Themes pages for the Network Admin Dashboard of multisite installs. 4.1.2.4 - 2013-10-30 - Dustin Bolton Updated Stash panel links to http://ithemes.com/member/panel/stash.php Fixed undefined notice warning when sending an error email alert based on PHP error reporting level. Added new Stash storage upgrade links to configuration and management pages. Updated suggested minimum WordPress version to 3.5 for maximum best functionality. Note: Older versions should function fine and we work to keep backward compatibility. However, some features may require newer versions. New BETA feature: Files Only backup profile type. Does not include the Database in backups. UI improvements for better consistency. Fixed broken cpanel instruction URLs in ImportBuddy. Various ImportBuddy modifications to support new Files Only type backups and skip database-related steps and verifications. Various BackupBuddy modifications to support new Files Only type backups and improve display of type. Added additional checks and warnings for verifying exclusions of database tables, paths, and files do not get accidently excluded without notification. Fixed Quick Setup Blogger Schedules having incorrect name on Scheduling page. Prepared Files backup type for new inclusions-based file/path selection. Misc minor bug fixes. Misc error message wording improvements. 4.1.2.5 - 2013-10-31 - Dustin Bolton Happy Halloween! ENHANCEMENT: Email destination now includes the site URL in the subject for easier determination of which site is sending the backup in addition to the email body. ImportBuddy: If previous ABSPATH was / then ABSPATH database migrations are skipped as we cannot safely search/replace on simply "/" as it will break many things. 4.1.2.6 - 2013-11-01 - Dustin Bolton ENHANCEMENT: On Remote Destination hover: Remote Destinations page: Text now appears indicating that clicking will allow viewing Remote Files. Backups listing to send backup: Text now appears indicating that clicking will send backup to this destination. Migration page backups listing to migrate backup: Text now appears indicating that clicking will migrate the backup to this destination. Empty parsed fileoptions file contents now returns descriptive error and status logs raw file contents for troubleshooting. 4.2.5 - 2013-12-12 - Dustin Bolton Compilation of quick release versions: 4.1.2.7, 4.1.2.8. FEATURE: New backup type: Files Only (beta) FEATURE: Amazon S3 destination now optionally supports Reduced Redundancy storage class for cheaper storage options. See Amazon for details about this class of storage. FEATURE: Added command line support via WP-CLI < http://wp-cli.org >. Command line backups run in classic mode, outputting status log to command line. FEATURE: FTP path browser out of beta. Easily click to view remote file paths on the FTP server you are adding to easily determine which path to send backups into. ENHANCEMENT: Updated entire BackupBuddy user interface to support WordPress 3.8's new MP6 styling, look, and feel. ENHANCEMENT: Getting Started page removed; default page is now the 'Backups' page for simplifying plugin. Help/instructions added to "Help" tab at upper right of each page. ENHANCEMENT: Profiles are now configured on the 'Backups' page instead of the 'Settings' page for easier configuration. ENHANCEMENT: Contextual help added to BackupBuddy pages. "Help" tab at upper right of pages displays additional help and information, including links to Support & Knowledge Base. ENHANCEMENT: Improved instructions on 'Restore / Migrate' page. ENHANCEMENT: Quick Setup moved to Backup page, popping up on unconfigured sites. Optionally skip & dismiss by clicking the large "Skip Quick Setup" button in the window. Re-open Quick Setup by clicking link on upper right of page. ENHANCEMENT: Added Stash ability to limit number of Files Only backup type. ENHANCEMENT: General overall improvement to BackupBuddy user interfaces. ENHANCEMENT: Backup mode setting (Modern vs Classic mode) now applies to both manual and scheduled backups. ENHANCEMENT: Added BackupBuddy directories (backup storage, logs, temp directory) to Server Tools URLs & Paths page. Files Only backup types no longer require wp-config.php inclusion to pass integrity check. Files Only backup types no longer warn about database not being included. More strings localized for better translations. Fixed bug where cached integrity scan results would not be shown if scanning for that profile type was set as disabled, even if the results were already known. Fixed bug where loading the Backups page would attempt to scan backups created with a profile where integrity scanning was disabled. Added advanced sftp logging when full error logging enabled. ImportBuddy now outputs to status log where it is looking for SQL files at when searching for db_1.sql. Manual temporary file cleanup now cleans up all temporary files regardless of age. Page Tour links now appear in meta links on upper right of pages next to Help links. Quick Setup link on Backup page now appears in meta links on upper right of pages next to Help links. Schedules page modified for better usability. Moved backup reminders option to Advanced Settings tab as most users will never desire to disable this. New BackupBuddy installations now include the backup time in the filename by default. Moved backup time in filename option to Advanced Settings tab. Files only backup type no longer displays 'Database skipped' note as the database backup is not applicable to this type. Fixed portion of integrity check log from not being displayed during backup. A warning is now displayed in the status log noting exclusions if wp- config.php unable to be found in the integrity checked. New methods backupbuddy_core::getBackupDirectory(), backupbuddy_core::getTempDirectory(), backupbuddy_core::getLogDirectory() for retrieving those paths. Fixed {backup_size} item in email notification template from only showing as 0MB. Correctly displays size now. Backup directory, temp directory, and log directory are no longer stored in options if using default locations. A blank value is stored to indicate default. Custom locations are set by defining a path. New options data structure version 8. Upgrade/activation script resets default backup directory set to blank value unless a custom location has been defined. Temp and log directories set to blank value as these are not currently user-definable. Fixed chunking not activating when set to 5MB (the minimum) for Stash or S3 destinations. Remote send now verifies file exists before proceeding to attempt file transfer to prevent errors. Fixed Stash and S3 destination edge case with chunking set to exactly 5mb. Early stages of iThemes Sync implementation. Fixed FTP path picker hover text when hovering the select icon. Transition to using $wpdb class for database interactions. BackupBuddy-side functionality migrated. ImportBuddy side partionally transitioned. ImportBuddy: If database prefix being imported previously contained more than one underscore then a notice is displayed suggesting importing using only one underscore to maximize compatibility and stick with WordPress conventions. ImportBuddy: If existing database tables exist Step 3 provides information that the Advanced Options button has options for deleting existing tables. Multisite: Fixed warning when importing an old Exported backup. Multisite: Tested Multisite compatibility with latest WordPress version to verify compatibility. Remote Destination transfer logs are now kept for 4 days instead of 2 to ease troubleshooting. Added text comment to top of importbuddy.php to notify users that if they are reading this when trying to restore their site, their server is not properly handling PHP files. Various UI fixes for 3.8 compatibility. Fixed remote destination picker on Scheduling page. Reduced font size on Backup page process bar slightly for some Linux OS compatibility issues with overflow. Fixed directory size listing extending off side of page requiring scrolling on smaller screens. Fixed files profile types sometimes showing as Database type due to integrity scan misdetection of type. Misc bug fixes, tweaks, and other small changes. 4.2.6 - 2013-12-12 - Dustin Bolton Version number now included in asset enqueing to prevent caching of old assets after upgrade. 4.2.7 - 2013-12-12 - Dustin Bolton ImportBuddy: Fixed undefined index $rows in mysqlbuddy during command line DB import. 4.2.8.1 - 2013-12-13 - Packaging Bot (lib/updater) Enhancement: Recently updated plugins and themes no longer report that an update is available. Enhancement: Added alternate line styling to the listings on the licensing page. Enhancement: Products with iThemes in the name will now properly capitalize the name. Enhancement: The updater and licensing system now handle iThemes server outages without causing long page delays or by reporting confusing error messages. 4.2.9.2 - 2013-12-17 - Dustin Bolton Fixed bug where character encoding was not forced to UTF8 on database import when in compatibility mode (PHP-based) database import mode. Fixed Backup page 'Send to remote destination as part of backup process.' feature not sending to remote destination. FEATURE: Added new Scheduling period of Twice Weekly. Fixed unintentional error logging of beta iThemes Sync details when using BackupBuddy alongside iThemes Sync. Misc UI adjustments. Fixed 'View Hash' link on backups listing not working. Fixed wrapping of long text on Settings forms. 4.2.9.3 - 2013-12-17 - Dustin Bolton Fixed double semicolon in mysqlbuddy at end of line. Added additional logging to PB flush() function. PB flush() function now only sets ini and env variables once per PHP load. 4.2.9.4 - 2013-12-18 - Packaging Bot (lib/updater) Bug Fix: Removed unneeded check on package-info.ithemes.com which was causing performance issues on some sites. 4.2.10.1 - 2013-12-18 - Dustin Bolton Fixed circular reference in flush() function and status() causing trouble running ImportBuddy. since 4.2.9.3. Fixed database mass text replace tool error in ImportBuddy since v4.2. 4.2.10.2 - 2013-12-19 - Packaging Bot (lib/updater) Bug Fix: Licensing will now be universal across all sites of a multisite network. This means that you will only need to license on one site to have the license apply across the entire network. 4.2.10.4 - 2013-12-19 - Dustin Bolton Fixed deprecated notice ereg_replace when setting backup note. BackupBuddy buffer flushing can be skipped by advanced option OR defining the following in wp-config.php if backup hangs part-way through dumping databases in compatibility mode: define( 'BACKUPBUDDY_NOFLUSH', true ); Fixed modal popups not working on Server Tools page. 4.2.10.6 - 2013-12-20 - Dustin Bolton Updated alpha iThemes Sync functionality. 4.2.11.0 - 2013-12-23 - Dustin Bolton Fixed Profile Add button not working on Backups page. 4.2.12.0 - 2013-12-23 - Dustin Bolton Multisite: Fixed missing icon for subsite Multisite Export menu item & clicking going to a non-existant 404 page. 4.2.12.1 - 2013-12-23 - Dustin Bolton Multisite: Fixed bug where users would be skipped on import even though they did not already exist. 4.2.12.2 - 2014-01-09 - Dustin Bolton Major updates to xzipbuddy library improving performance, compatibility, and aids in troubleshooting server problems. - Jeremy Trask Added enhanced iThemes Sync support for additional BackupBuddy interoperability and features. Backup page no longer waits for document ready to perform AJAX request to check status. Prevents Status page from hanging. ImportBuddy: DBreplace PHP-based replacements now retrieve content to replace 500 rows per query to reduce memory usage. Misc minor bug updates & small performance tweaks. Mysqlbuddy performance improved for PHP-based database dumps. 4.2.12.4 - 2014-01-09 - Dustin Bolton Fixed Sync backup stats not being available. 4.2.12.6 - 2014-01-13 - Dustin Bolton Added new Sync overview verb return data: latestBackupProcess 4.2.12.7 - 2014-01-13 - Dustin Bolton Fixed hardcoded uploads directory for logging in Settings page code. Expired transient deletion now directly deletes in SQL rather than looping for performance boost. Fixed hardcoded access permission based on ability to activate plugins rather configured access level (via Settings page). 4.2.12.9 - 2014-01-13 - Dustin Bolton Removal of remaining hardcoded WP_CONTENT_DIR usages. Added Sync verb backupbuddy-get-latestBackupProcess. 4.2.12.10 - 2014-01-22 - Dustin Bolton Fixed inability to clear out ImportBuddy password on Settings page. ImportBuddy provides more details on failure detecting writability on unpacking. Fixed Database Check & Scan features not working on Server Tools -> Database page. Began updating temp directory calls to all use backupbuddy_core::getTempDirectory() Updated remaining usages of wp-content/uploads to direct to proper uploads directory where applicable. Misc minor fixes & tweaks. Updated Sync download URL for direct linking. 4.2.12.12 - 2014-01-22 - Dustin Bolton Fixed Send Backup to Remote Destination & Stop Backup buttons not working after backup completes. Added beginnings of BackupBuddy API v0. 4.2.13.0 - 2014-01-23 - Dustin Bolton Full release of quick release updates 4.2.12.1 through 4.2.12.12. Fixed non-static API functions. Fixed undefined index warnings on bad backups during integrity scan. Fixed Stash feature 'Copy to Local' not functioning. Improved error differentiation for Multisite failure to find required form data on moving to next step. 4.2.13.1 - 2014-02-03 - Dustin Bolton ImportBuddy: .htaccess and wp-config.php permissions set to be writable prior to writing. Restored to prior permission level after updating. Added additional logging to imoportbuddy generation process to improve troubleshooting. Performance: Removed unused PluginBuddy framework methods & code from PB framework to improve performance. Performance: Added additional is_admin() conditionals into PB framework for slightly performance increase on front-end. ENHANCEMENT: Updated German translations. - Thanks to Thomas Heinrichsdobler. ENHANCEMENT: Updated Swedish translations. - Thanks to Per von Dolwitz. iThemes Sync: If last backup file no longer exists on server, return empty string for this stats value. Adjusted misc colors on Remote Destinations page to better match WordPress 3.8 styling. ENHANCEMENT: Updated BackupBuddy Dashboard widget. - Ty ENHANCEMENT: Now storing additional WordPress information in meta & DAT files such as WordPress version, total pages, posts, users, comments, etc. Performance: Updated dbreplace library to address excess memory usage. - Jeremy 4.2.13.2 - 2014-02-03 - Packaging Bot (lib/updater) Bug Fix: Licensing on SSL-enabled sites now works properly. 4.2.14.0 - 2014-02-06 - Dustin Bolton Added additional logging when seeking database tables' matching prefix. Beta Database Rollback -- New beta feature for rolling back database to a prior backup. ImportBuddy: Fixed permission problems with wp-config.php and .htaccess files caused by recent update in 4.2.13.1. Also now only conditionally updates if file is deemed unwritable. Suppressing alerts on inability to write to status log as they can clutter page. 4.2.14.4 - 2014-02-06 - Dustin Bolton Beta Database Rollback step process shortened. 4.2.14.5 - 2014-02-07 - Dustin Bolton Fixed Quick Setup Destination selection not displaying settings for adding a new destination. 4.2.14.6 - 2014-02-07 - Dustin Bolton Dashboard widget: Fixed backup button overflow. Dashboard widget: Fixed time of last backup not being correct localized time. Settings page: Added Licensing link to more easily find Licensing. Added BackupBuddy version number to the bottom right of each BackupBuddy page. Backups page now notifies if new MAJOR version (non-quick release) is available and instructs to upgrade via the WP Plugins page. Changed some Malware Scan page wording for clarity. 4.2.14.7 - 2014-02-11 - Dustin Bolton Fixed undefined indexes on Dashboard if no backups have been made yet. Notices introduced in 4.2.13.1. 4.2.14.8 - 2014-02-13 - Dustin Bolton Fixed migration destination popup from mentioning non-migration destinations such as Stash, email, etc. Added additional clarification working to denote that addable types in this popup are migration-related. Added additional logging for Multisite export steps. Fixed false failure notices of 9033 errors when in fact it was only being caused by javascript polling too quickly. - Jeremy Quick Setup is now displayed in-page when visiting the Backups page for the first time for usability. Stash destination configuration cleanup. Rollback beta: Now fully imports tables with a temporary prefix prior to renaming to further minimize downtime. Rollback beta: Many misc changes. Rollback beta: Added advanced options. Added additional logging for troubleshooting SQL issues trying to get table listings. 4.2.14.9 - 2014-02-14 - Dustin Bolton Rollback beta: Fixed problems finding SQL file when using full database types. SQL location detection much more robust now. 4.2.14.11 - 2014-02-14 - Dustin Bolton Rollback beta: Not catching PHP errors in advanced log. 4.2.14.12 - 2014-02-25 - Dustin Bolton Backup perform page: Now passes data to and from server via JSON for improved codability. Improved timing of AJAX calls during backup to help reduce race conditions. File trees now display horizontal lines between items for better readability. Fileoptions now logs how many bytes are written to aid troubleshooting. Fileoptions ERROR_EMPTY_FILE_NON_CREATE_MODE errors now re-attempt loading after a 3 second sleep to help reduce the chances of race condition induced problems where a load was happening simultaneously as a write in another process. AJAX for getting backup status now forces log serial to that of the current backup to better record ALL activty happening during that load. Settings page now flushing before log load to increase page load responsiveness. Maximum log size limit default reduced to 5 MB. Increased start polling time to help reduce race conditions. ENHANCEMENT: Backup status now logs functions running out of order as warnings. FEATURE: Backup status displays any incomplete functions or actions it detected upon halting due to fatal error. Displayed at the very end of log. Extended fileoptions initialization to be considered under init waiting when polling AJAX at beginning of backup to even further help prevent race condition issues. Increased wait count from 5 to 8. FEATURE: Added enhanced detections for specific action failures during backup with automated suggestions in status log for failure of actions: cronPass (starts once cron is scheduled and finishes once said cron runs), importbuddyCreation (starts when importbuddy generation begins, finishes at completion), zipCommentMeta (starts prior to setting zip meta comment, finishes at completion). Misc minor fixes. 4.2.14.13 - 2014-02-27 - Dustin Bolton Fixed 'Compatibility mode max rows per select' advanced setting from being required. Improved input validation for numeric fields. Improved input validation for email fields. Fixed mail error warning when backup failed. Settings page no longer loads log file contents by default. Displays log via AJAX on-demand when visiting the Log tab. 4.2.14.14 - 2014-03-03 - Dustin Bolton Several fixes to error detection in new backup page javascript added in 4.2.14.12. Updated wpdbutils lib with preliminary mysqli support. Now using wpdbutils in mysqlbuddy for pinging instead of doing so directly. Removed redundant final database kicking after DB dump as this is only relevant for PHP-based dumping which already checks the connection status after each table dump. Various updates to prepare for mysqli support. Prior to saving the increment of backup steps attempts (when running out of order) fileoptions is now re-loaded immediately prior to save, respecting fileoptions lock, to help reduce chance of race conditions updating fileoptions while the prior step is saving. Pong! replies now show at the beginning of server responses for clarity. Significantly increased maximum input sizes for server addresses, paths, usernames, and passwords for all destinations. Replaced backup perform page jQuery .on() calls with .bind() for backward compatibility. New backupbuddy_core::backupbuddy_core::dbEscape() function for escaping with correct mysql/mysqli method. 4.2.14.16 - 2014-03-04 - Dustin Bolton Fixed warning when running in classic mode related to cronPass as of 4.2.14.14. wpdbutils updated adding _mysql_ping() function for handling appropriate pinging of server based on type throughout wpdbutils lib. 4.2.14.19 - 2014-03-05 - Dustin Bolton Fixed Send to Destination button not working just after completing a backup since 4.2.14.14. Updated saving of edits since last backup statistics to post_backup instead of pre_backup. Fixed undefined cronPass index warning. 4.2.14.21 - 2014-03-10 - Dustin Bolton Fixed integrity scan missing logging information. FEATURE: Added preliminary code for Sync verb: backupbuddy-get-importbuddy. Changed all codex links containing error codes which point to incorrect ImportBuddy pages to point to BackupBuddy error code page. Removed init_public.php as it is not used nor expected to be. If manual backups hang waiting for the next cron step for 15+ seconds then the cron schedule will be checked via AJAX and the next scheduled step run timestamp and time difference will be logged for troubleshooting. Fixed warnings not displaying in status log. 4.2.14.22 - 2014-03-11 - Dustin Bolton Sync verb backupbuddy-get-importbuddy: Fixed password not being passed. Verb v2. Database Rollback feature public beta. Moved querying the database after zip creation to prior to help avoid dealing with database going away. WordPress 3.9 makes DB kicker less useful of a query happens prior to kicking. 4.2.14.23 - 2014-03-12 - Dustin Bolton Sync verb backupbuddy-get-importbuddy: Fixed return data echo'ing instead of returning. Verb v3. 4.2.14.25 - 2014-03-15 - Dustin Bolton Added additional logging to writing SQL file in compatibility mode. 4.2.14.26 - 2014-03-15 - Dustin Bolton ImportBuddy Sync verb now base64 encoded to maintain integrity during transit. 4.2.15.0 - 2014-03-17 - Dustin Bolton Full release of quick release versions 4.2.14.0-4.2.14.26 and all their features. Added additional exception handling for Dropbox2 destination on configure page. Added chunk size setting bytes to Dropbox2 log for each chunk send portion. 4.2.15.1 - 2014-03-18 - Dustin Bolton Database Rollback beta now checks for prior temporary database files from a previous failed rollback attempt before proceeding to prevent error reporting existing tables. 4.2.15.2 - 2014-03-19 - Dustin Bolton Fixed exclusions not working on some Windows systems where WordPress upload path is in slightly different slash format. Symptoms includ zipbuddy exclude beginning in double forward slash. 4.2.15.3 - 2014-03-19 - Dustin Bolton Multisite Import: Fixed PHP error on import since 4.2.14.12. 4.2.15.5 - 2014-03-26 - Dustin Bolton Added French translations. Thanks to Alex de WP Themes Pro. 4.2.15.6 - 2014-03-26 - Dustin Bolton Fixed broken Server Tools link on bottom of Scheduling page. Added microsecond tracking to logs down to 1/100th of a second. Fixed Remote Destination send log not displaying in friendly format. 4.2.16.1 - 2014-04-28 - Dustin Bolton Full release of 4.2.15.x quick release versions. Now including global profile in backup array and DAT file for improved logging and troubleshooting. Changed internal API class to backupbuddy_api. Fixed issue with French translation containing single quotes breaking javascript. Fixed ImportBuddy generation and passing to Sync API. - Jordan backupbuddy-get-importbuddy Sync verb now generated MD5 hash. - Jordan 4.2.16.2 - 2014-04-29 - Dustin Bolton Additional sanitizing login added when calculating backup directory for exclusion purposes to better handle Windows path mismatches & network-based paths. 4.2.16.4 - 2014-05-05 - Dustin Bolton Fixed directory exclusion failing to exclude files/directories with dot (.) in them. Fixed file changed ctime() call to file modified mtime() call for integrity check. 4.2.16.5 - 2014-05-13 - Dustin Bolton Updated xzipbuddy (alternate zip system beta) supporting bursting for improved large site support. - Jeremy Trask Added IT Security dismissible notice to Malware Scan page. FEATURE: All destinations now support the option to disable remote file management. Backup directory was not correct when solely / and some cases of problems with network paths on Windows beginning with \\. Improvements in preventing the backup status from stalling during backup due to long AJAX timeouts. All new destinations now have chunking enabled by default (typically 100mb). Stash & S3 now include options to use included SSL certificate to address problems with some servers using old or incomplete certificate bundles. 4.2.16.7 - 2014-05-14 - Dustin Bolton ImportBuddy: mysql_test.php no longer directly uses $_POST variable to avoid triggering FALSE positives of potential various malware scanners. Fixed missing 4.2.16.5 version history items. 4.2.16.8 - 2014-05-15 - Dustin Bolton ImportBuddy: mysql_test.php typo fix resulting in error. 4.2.16.9 - 2014-07-15 - Dustin Bolton Fixed additional temp directory exclusions missing trailing slash during generation. Added additional logging to rollback to report SQL error when renaming tables fails. Updated zipbuddy library. - Jeremy Burst size reduced to 20 seconds (down from 40). Subsequent busts throttled down as needed. Internally added inclusion/exclusion based backup support as well as PCRE expressions for these for future use. Removed mysqlbuddy echoing to avoid triggering server problems in some rare situations. Possible PHP / server environment issue. ENHANCEMENT: Added additional API methods for calling by 3rd party plugins. See classes/api.txt for details. More documentation coming soon. Added new method backupbuddy_api::runBackup(). Added new method backupbuddy_api::getLatestBackupStats(). 4.2.16.10 - 2014-07-17 - Dustin Bolton Added trailing slash to directory size listing for consistency with actual exclusions when displayed. Removed tests from lib directory. 4.2.16.11 - 2014-07-18 - Dustin Bolton Fixed reversion causing some directory exclusions to not be excluded with periods in them. Introduced in 4.2.16.9. 4.2.16.13 - 2014-08-18 - Dustin Bolton BackupBuddy v5.0 Pre-Release: See changelog for version 5.0.0 below! 4.2.16.15 - 2014-08-19 - Dustin Bolton Fixed integrity check failing for command-line based backups. Removed Deployments page. Fixed integrity scan not pulling in all data for legacy backup files. Fixed PHP notice for integrity scan of older backup files. Improved performance of integrity scan results caching. Fixed checkbox checks not being centered within checkbox on Remote Destinations configuration page. 5.0.0.0 - 2014-08-20 - Dustin Bolton OVERVIEW: This release focuses on improving core functionality to the next level on both the backup and restore side. Performance, robustness, and usability have all been improved in this release. This means that BackupBuddy and ImportBuddy are easier to use & understand as well as better handling larger sites better, especially large databases. More advanced handling of problems and various fallbacks and intelligent checks (eg to handle .htaccess AddHandler issues) help to work around previous issues. If something does go wrong that cannot be worked around BackupBuddy or ImportBuddy will look at the situation and give contextually appropriate information to help you resolve the problem without having to seek outside help or reference. Improved persistant logging helps track processes for troubleshooting if support is still needed. FEATURE Backup interface overhaul. - Bradford Ulrich Continous overview of the process with active updating during its progression. Backup details are displayed as the backup runs, providing help as needed. Upon backup failure the Status log is highlighted for reference. FEATURE: BackupBuddy intelligently attempts to discern common backup issues and provide appropriate help and information for resolving the issue. FEATURE: Improved integrity scanning. Be even more assured of backup integrity as database backup files are now verified to exist in backups at a table level. ENHANCEMENT: Backup progress now shows database file size growing as backup commences. FEATURE: ImportBuddy interface overhaul. Easier to use, more intuitive, many new features. FEATURE: New destinations UI with easier to user tabbed display of destinations. Remote destination files & management are now displayed when viewing the remote destination page tabs for easy viewing and managing remote files. FEATURE: ImportBuddy: Database import step imports in chunks to handle larger databases. FEATURE: ImportBuddy: Database migration step migrates URLs, paths, etc in chunks to handle larger databases. FEATURE: Larger database support. MySQL import & dump now support resumable chunking for working with very large databases. PHP-based dumping is now the default. Both PHP-based and command line now break up dumping individual tables to individual .SQL files for easier importing, optionally selectively importing specific tables. Integrity scan takes this into account for more robust database dump verification (when applicable and available). FEATURE: Database Rollback Easily roll back the database to a prior version from within WordPress. Ability to undo changes on failure. FEATURE: ImportBuddy: Restores of full backups now allow the option to only restore files or only restore the database. FEATURE: Database backups now dump database tables to individual SQL files for easier or selective restoring of tables, especially if manually importing. FEATURE: All destinations which supported remote file management now have the option to disable this capability. ENHANCEMENT: Server Information section now displays whether or not PHP error logging is enabled, whether errors are displayed to screen, and the location of the log file. The error logging can also be tested to verify it is functioning properly. ENHANCEMENT: Timed out backups are now marked as Failed after 24 hours of no activity to the backup. Error notification email is sent of this failed backup is triggered by a schedule. If a step is detected to be timed out then suggestions will be given on fixing the issue. ENHANCEMENT: Remote transfer error notification emails now attach the remote send log to the notification email if available. ENHANCEMENT: Mass deletion of backups by the user on the Backups page now prompts for confirmation before proceeding. FEATURE: wp-content/uploads/backupbuddy_temp directory is now transient -- it will be deleted between uses and only exist temporarily for the backup process. FEATURE: Recent backup logs now persist for a bit to help keep a recent copy of logs from recent backup(s) for potential troubleshooting. Logs of recent backups are viewable (if available) from the backup page by hovering under the Status section. ENHANCEMENT: Remote destination option to lock any future access to viewing the destination's remote files added. ENHANCEMENT: Backup process now tracks zip file write speed during the actual backup process to get an idea of server performance, especially for larger sites. ImportBuddy: iframe-based progression through the backup process combined with Javascript templates and AJAX allows for a fluid experience with better error catching and a persistant status log. ImportBuddy: PHP-based import is now the preferred method due to new chunking. FEATURE: ImportBuddy: New and improved user interface. FEATURE: ImportBuddy: ImportBuddy now intelligently detects .htaccess file AddHandler references which are not needed for PHP to function and alerts the user of potential problems and does not migrate the AddHandler directive by default unless detected to be neccessary. FEATURE: ImportBuddy: Database imports now allow for selectively importing selected database tables for granular control over which database tables are/are not restored. FEATURE: ImportBuddy: New option to select whether to restore files and/or the database during the ImportBuddy restore when dealing with full backups. ENHANCEMENT: Performance improvements. Less registering of AJAX events with WordPress. FEATURE: Most recent backup log file is kept FEATURE: Added new setting to send a notification email upon remote destination file transfers finishing. ImportBuddy: Errors encountered during the import, including PHP errors are caught, logged, and displayed in the user interface to the user for improved visibility. ImportBuddy: Better handling of non-WordPress .htaccess file directives resulting in less chance of damaging custom rules. Changed default mysqlbuddy database method to use PHP rather than commandline. Windows-only: Fixed typo in mysqlbuddy calling msqldump.exe instead of mysqldump.exe. ImportBuddy now uses same JS logging system as BackupBuddy with triggered events from JSON passed from the server. Max execution time now definable for chunked database backups under Advanced Settings -> Database. New core function adjustedMaxExecutionTime() for determining. Selecting a destination to add bumps user back up to top where new content has loaded. Stash & S3 destinations now both have option to use included CA bundle for working around server SSL CA Cert bundle problems. Fixed email notification displaying as error status instead of details. Fixed dashboard overview linking to the latest backup even if it had been deleted / moved offsite. Fixed undefined index warnings for integrity information for deleted backups. Added additional logging of BackupBuddy version number for more easily determining version from log snippets. Fixed recent log files (such as from file transfer) purging far too quickly. Now 48 hours delay before cleanup. Approximate zip and database dump creation speed (in MB/sec) is now logged for helping to determine performance. Fixed logging of destination chunking reporting invalid chunking threshold for some edge cases. Only impacts logging. Fixed option to delete local backup after sending to remote destination failing to delete local copy when multipart chunking is used. Directory exclusion calculation for temp dirs now properly include trailing slash for consistency. Integrity check now verifies all SQL table files exist that were expected to be backed up. Integrity check now displays number of SQL files found passing (for v5.0+ backups). Fileoptions now logs a unique lock ID to help pair errors due to lock collissions with the lock generation. Changed setting to breakout large tables in commandline mode to enabled for better support of larger database tables. Changed default database dump method to PHP-based as it supports both table and row-based chunking & resuming. In Full Logging mode the backup state will be logged to the javascript console during backup for internal variable troubleshooting. (data in backup.php's $this->_backup var). Integrity check now checks that breakout table .sql files all exist. ImportBuddy: Fixed problem where sometimes cleanup step would be missing styling or graphics by using JS to load steps. sFTP destination: Fixed backup trying to send into incorrect path. First the path was changed into and then the file to upload included the path, resulting in doubling up of the path. Fixed typo in Dropbox description (multipark->multipart). Bug: Malware scan now using home_url() to calculate URL rather than site_url(). Setup wizard now calculates which destinations are supported by server and provides all compatibility destinations as options. Eg Dropbox v2. BackupBuddy temp directory is now transient. Failed backups may result in it lingering longer until periodic housekeeping cleanup function removes it. Fixed incorrect background color when restoring a file from backup. File restore from backup now falls back to using copy/unlink combination when restoring files if rename() fails. Added note to not send complete log when seeking support unless requested and instead to send Status Log made during backups. Added tip to set email error notification setting, including background in input. When full error logging is enabled: Serial logging (eg from a running backup) is now directed to a separate log instead of the main for easier access and isolation. Added ability to view backup log if available (eg due to full logging enabled). Flushing (flush() calls) can be disabled by setting the constant BACKUPBUDDY_NOFLUSH to TRUE in wp-config.php for rare server issue or troubleshooting. Fixed potential bug whereby ImportBuddy would seek out the DAT file in the root of the site before checking the temp subdirectory. This could result in using the wrong DAT file loading and thus an import failure with unexpected issues. Added warning suppression to php_uname() calls in zipbuddy to prevent warnings when generating server signature. Removed S3 key retrieval link as this is depricated due to secret keys no longer being supported. Backup steps view now lists steps taking less than 1 second as < 1 second rather than 0. Timed out backups are now examined for potential problems and their status updated appropriately to prevent 'hanging' timed out backups. Bug fix: Deleting a local backup after sending to a remote destination when chunking was enabled was not happening. Fixed. Fixed Server Tools page quick release links being reversed. Fixed additional temp directory exclusions missing trailing slash during generation. Bug: Malware scanner showed site_url() when it should be testing and showing home_url() results. Setup wizard now only shows destinations compatible with the server BackupBuddy is running on instead of all of them. View & restore of files from within an archive now use copy/unlink rather than rename to handle moving between different filesystems. ImportBuddy: Database backup restores no longer dump their contents into the site root for security and instead use a randomly named subdirectory to hold these temporary files. ImportBuddy: importbuddy.php can now be renamed and still run as expected. New Sync verb: backupbuddy-add-schedule New Sync verb: backupbuddy-delete-schedule New Sync verb: backupbuddy-list-destinationTypes New Sync verb: backupbuddy-test-destination New Sync verb: backupbuddy-delete-destination New Sync verb: backupbuddy-get-destinationSettings New Sync verb: backupbuddy-add-destination Now logging list_parts() response for S3 and Stash destinations for better troubleshooting of multipart send failures. WordPress cron schedules for scheduled backups are now periodically audited to check for duplicate schedules. If any are found they are removed. Inability to unschedule will log an error. Cron's destination_send() function now accepts an additional unique identifier to lock running so that the same transfer does not run multiple times due to cron issues. Upon cron.php destination_send() running, a file is created in the BB log directory named cronSend-UNIQUE_ID_HERE.lock if it does not exists with a string of 1 as the contents. If it already exists then the schedule has run more than once and the attempt will be logged with the attempt count and halted. ENHANCEMENT: Added additional API methods for calling by 3rd party plugins. See classes/api.txt for details. More documentation coming soon. API: Added new method backupbuddy_api::runBackup(). API: Added new method backupbuddy_api::getLatestBackupStats(). Fixed FTP transfer mode from saying Active was default as Passive has been default since 3.x. Removed echo in mysqlbuddy during PHP-based dumping which could result in the PHP process ending on some servers. Recently made backups and recently sent files can be viewed on those pages by clicking the new link to the right of the page title at the upper left of the page content. Added check for S3 test to see if CFRuntime class already exists which would indicate another plugin loading S3 libraries on BackupBuddy pages causing a conflict. Added additional logging to remote send function to track where failures may occur. ENHANCEMENT: Multisite Network Migration improvements for moving entire networks. ALPHA TESTING - Jul 16: Fixed all reported issues except: PHP Fatal error: Call to a member function get() on a non-object in [...]/wp-includes/cache.php on line 113 Multisite: Improved notification message on network activating and wp- config.php modification to adjust the message based on which is missing. Improved message when log directory does not exist and cannot be created. Zip method strategy now defaults to 'best available'. ALPHA TESTING - JUL 22: Removed duplicate option to delete file after send for schedules. Added additional logging to importbuddy temp directory usage and additional temp directory calculation locations to help solve writability issues. Fixed log not displaying properly during file restores from an archive. ALPHA TESTING - JUL 23: Fixed the following by caching the getLogDirectory function calculation in BB core class: PHP Fatal error: Call to a member function get() on a non-object in [...]/wp-includes/cache.php on line 113 Updated text in various locations. Minor UI tweaks. ALPHA TESTING - JUL 30: Removed some extra console logging used for debugging new backup process. Some remains for now. Fixed date calculation for edge cases of some timezones. Fixed empty zero-indexed item in default settings on install. Total aggregate SQL dump size now logged after each SQL file dumped. Database aggregate file size in UI & status log now displayed during backup now display to 2-decimal precision. Updated 'Break out big table dumps into steps' being noted as defaulting to disabled to enabled. Misc UI tweaks in ImportBuddy. ALPHA TESTING - AUG 11: Added additional catch for logging fatal PHP errors encountered when grabbing latest backup status information. Fixed remaining issue with wp-cache. ImportBuddy: Fixed cleanup settings & final status not showing after restore completed in some cases due to .htaccess preventing loading. Now pre-caching these templates. ImportBuddy: Fixed rtrim warning. BETA - AUG 14: Multisite Subsite Export: Base database tables to dump always forced to prefix instead of using default profile setting. ENHANCEMENT: Upon authentication failure when viewing Stash destination user is now prompted to re-authenticate instead of requiring deletion & re-creation of destination. New "Re-authenticate" link added to Stash file manager to allow manually re- authenticating or changing which Stash account is being used for the destination. ImportBuddy: After a failed database test changing any settings now clears out prior errors to prepare for next test. ImportBuddy: Database settings page advanced option to select SQL files to restore now always shows scrollbar to make it clearer it is scrollable. Applicable especially to Macs. RC1 Testing - Aug 18: Server Tools disabled PHP function list width now limited to prevent pushing page contents too wide. Changed Server Tools logging to suggest not displaying errors to screen. Added more details to logging ini settings descriptions. Merged preliminary work on Deployment system. Additional Multisite logging. Misc fixes. 5.0.1.0 - 2014-08-20 - Dustin Bolton Fixed syntax error, unexpected T_SL in mysql_test.php caused due to unresolved GIT merge issue pushing despite conflict still existing. 5.0.1.1 - 2014-08-20 - Dustin Bolton Fixed 'Send' link on Restore / Migrate page going to Migration feature rather than allowing sending backups to remote destinations. Fixed having to select to add a destination twice when creating a new destination from the Restore / Migrate page. Sending to a remote destination via the Backup page displays sending confirmation in-page instead of alert box. ENHANCEMENT: Added new advanced option "Reschedule missing crons in manual backups" which has BackupBuddy attempt to reschedule missing cron jobs during manually made backups to prevent the backup from stalling. Via backup_status.php. 5.0.1.2 - 2014-08-20 - Dustin Bolton ImportBuddy: Fixed missing ability to restore from Stash or upload an archive from Step 1 if there was not already a backup in the directory. 5.0.1.3 - 2014-08-20 - Dustin Bolton Improved Javascript performance on backup page resulting in hanging page on Multisite networks with very large numbers of tables. 5.0.1.4 - 2014-08-21 - Dustin Bolton Fixed standalone preloader for wp_upload_dir() to return basedir key value pair instead of just the single string value. ImportBuddy: Error display box no longer scrolls. Expands to unlimited height so errors are not hidden behind overflow. ImportBuddy: 9010 errors are now capped at 10 displayed on screen. After that a single error is thrown indicating that all 9010 errors are logged to ABSPATH . 'importbuddy/mysql_9010_log-' . pb_backupbuddy::$options['log_serial'] . '.txt'. mysqlbuddy: Importing of SQL resulting in 9010 errors now writes to log file for troubleshooting, including logged in header previous and new prefix values. 5.0.1.5 - 2014-08-21 - Dustin Bolton Fix: If post-remote-send deletion is enabled but transfer fails the local file will no longer be deleted. ImportBuddy: Fixed 9010 error when restoring to a new WordPress prefix using PHP-based method caused by invisible character preceeding query line hampering regex matching. 5.0.1.6 - 2014-08-21 - Dustin Bolton ImportBuddy now warns if trying to use an old version of importbuddy.php to restore a newer backup archive. Eg attempting to restore a 5.0 backup with a 4.0 importbuddy.php. ImportBuddy: Fixed unchecking both Files & Database restore from unzipping some files anyway to temp location. ImportBuddy: Fixed wp-content/uploads/backupbuddy_temp/restore_XXXXXX/ directory being crated. Moved to proper temp directory beneath importbuddy folder. 5.0.1.7 - 2014-08-22 - Dustin Bolton Fixed SQL size aggregate in log increasing by the amount of each report of the current SQL file size. Fixed alert box displaying a URL popping up when selecting to create a new destination. 5.0.1.8 - 2014-08-22 - Dustin Bolton Fixed out of date ImportBuddy warning. 5.0.2.0 - 2014-08-22 - Dustin Bolton Restore now attempts to copy instead of move file during restore to prevent cross-link issues. 5.0.2.1 - 2014-08-24 - Dustin Bolton ImportBuddy: On json decode error, if function json_last_error() is available then error code is also logged. ImportBuddy: Added additional encoding to state data passing from browser to PHP to help protect UTF8 data in transfer. Prevents json_decode() failure based on malformed UTF8 despite jslinter saying it's valid. PHP extra sensitive? 5.0.2.2 - 2014-08-25 - Dustin Bolton ImportBuddy: Extended json_decode issue fix to all pages. ImportBuddy: Updated bruteforce lack of primary key to indicate it may only be a non-fatal warning. 5.0.2.3 - 2014-08-25 - Dustin Bolton Malware scan page: Updated links for iThemes Security Pro & Sucuri. Stash destination: Subscriber key now displayed to the right just under file listing. Used by support when troubleshooting potential issues. Significant improvement of javascript performance when logging to status log during backup. Appending to the status log now queued to once per second to prevent hammering DOM which freezes browsers on sites with massive databases. Fixed .htaccess issue where restored site's .htaccess could result in broken URLs / CSS. 5.0.2.4 - 2014-08-25 - Dustin Bolton Fixed wp-cli error about profile being non-numeric. 5.0.2.5 - 2014-08-25 - Dustin Bolton Multisite Import: Fixed inability to import BackupBuddy 5.x sites into Network that consisted of multiple SQL files. 5.0.2.6 - 2014-08-26 - Dustin Bolton Consolidated database dump logging some to reduce number of repeated lines per dump. Now displaying current table being dumped in graphical backup UI. Added US GovCloud support for amazon S3. Fixed dashboard widget backup now URL on Multisite. ImportBuddy now only creates an index.htm on any access if an index.php does not exist. 5.0.2.7 - 2014-08-26 - Dustin Bolton Added additional status logging of current SQL file name. File restore copy() replaced with pb_backupbuddy::$filesystem- >recursive_copy() call to handle directories. 5.0.2.8 - 2014-08-29 - Dustin Bolton ImportBuddy no longer requires password field for database settings to pass test as it is technically possible for it to be blank in mysql. ImportBuddy: Option to select files and/or database no disabled/enabled based on currently selected backup type. Eg files is unchecked for database only backup archives. ImportBuddy: Fixed selecting only to restore database on a Full backup type not working unless files were already unzipped. ImportBuddy: Re-added advanced option on Step 1 to completely skip file unzipping & opening the zip file. User must manually unzip archive prior to using this option. ImportBuddy: Fixed restore state not urlencoding data when database chunking. Could cause problems with special characters such as plus sign (+) in settings getting lost between chunks. ImportBuddy: cPanel database functionality now using API2 json. - Jeremy ImportBuddy: Fixed cPanel username & database name not populating mysql settings fields. Remote Destination settings saving now displays saving indicator & closes configuration on save success. 5.0.3.0 - 2014-09-03 - Dustin Bolton Full release of recent quick release versions. Logging improvements. Fixed directory exclusion count in backup interface always saying zero. Plugin options are verified to be loaded at initiation of activation.php. 5.0.3.1 - 2014-09-03 - Dustin Bolton Changed text wording for toggling display of Status Log during ImportBuddy or Rollback to "Display Status Log". 5.0.3.2 - 2014-09-03 - Dustin Bolton ImportBuddy no longer requires password field for database settings to pass test as it is technically possible for it to be blank in mysql. Fix did not apply in 5.0.2.8. 5.0.3.3 - 2014-09-10 - Dustin Bolton Fixed undefined index in ImportBuddy when restoring a v1.x backup file on Step 1. ImportBuddy now checks for db.sql file for restoring for BackupBuddy v1.x backward compatibility. Error #9029 (warning only for bruteforce) now returns true as to now trigger a secondary error about bruteforce failure. Fixed typo in mysql compatibility setting. Added additional logging for failed cron chunk scheduling for Dropbox2. ImportBuddy: Fixed customer Home URL option in ImportBuddy using siteurl for homeurl. ImportBuddy: Updated existing wp tables error to note the advanced option to ignore SQL errors & existing tables as an option to proceed. Useful when only restoring a subset of wp tables from the advanced options. 5.0.3.4 - 2014-09-27 - Dustin Bolton Multisite Import: Fixed multisite import not updating site URLS. Since v5. Added additional logging during step 6 of Multisite import. Added exit code lookup for 126: 'Command invoked cannot execute. Check command has valid permissions and execute capability.' Ignore command line length check changed to skip this check. ImportBuddy: index.htm/.html file scrubbing now also scrubs index.html. ImportBuddy: Added additional logging for db SQL import to track process. Also additional troubleshooting details logged if hanging between SQL files. ENHANCEMENT: Updated German translations. - Thanks to Thomas Heinrichsdobler. Added new advanced option skip_spawn_cron_call to skip attempt at chaining cron during backups. Fixed Dropbox2 bug where chunked transfers of > 2 parts would fail to complete. 5.0.4.0 - 2014-10-06 - Dustin Bolton IMPORTANT: This upgrade is especially recommended for sites with large database tables which are relying on chunking while in PHP-based database dump mode. BUG: Fixed issue where a chunked database dump in PHP mode for a large database table could miss backing up some data from that table and the suqsequent table. importbuddy periodic cleanup now looks for files of format importbuddy*.php to also catch importbuddy deployment files. Database dump process during chunking updated to be more clear about number of rows dumped per table and its final total. 5.0.4.1 - 2014-10-06 - Dustin Bolton Fixed Mass DB replacement not showing full details in log. 5.0.4.2 - 2014-10-07 - Dustin Bolton Updated Dropbox2 destination SDK library to version 1.1.3 (2014-01-28). Dropbox2: Fixed remote file listing not properly sorting by date (newest to oldest descending). ImportBuddy: SQL file size now reported prior to importing each .sql file in log. ImportBuddy: Fixed potential PHP warning caused by performing addition on possible bool false value if replacements in database failed bruteforce. ImportBuddy: Fixed mass database replacement log not showing in page. Fixed illegal string offset warning in dropbox (legacy) destination when directory is empty. 5.0.4.3 - 2014-10-08 - Dustin Bolton Fixed send_remote_destination() throwing $identifier warning in some locations due to lack of default value. 5.0.4.4 - 2014-10-20 - Dustin Bolton Manual mass database replacement no longer limited to default 30 second chunk time. Fixed Stash copy file to local not copying file. Fixed editing schedule changing next run time/date to first run time/date. These values are the same on new schedules but differ on old ones. 5.0.4.5 - 2014-10-21 - Dustin Bolton Fixed integrity scan on backups received from a remote destination where local fileoptions file is missing. Fixed delayed load time (with the potential for timeouts) when loading the backup page. Removed inadvertant display of remote API information from destinations page. 5.0.4.6 - 2014-10-21 - Dustin Bolton Fixed short opening PHP tag which could cause error when short_open_tag not configured as enabled. 5.0.4.7 - 2014-10-29 - Dustin Bolton Fixed 'Creating default object from empty value' warning for Multisite Network -> Network imports. Misc ImportBuddy wording tweaks. Misc remote destination UI cleanup. 5.0.4.9 - 2014-11-04 - Dustin Bolton Multisite Import: Fixed database migration of URL not running. Multisite: Fixed error message when upload directory is in alternative location. Multisite: Fixed some URLs not being updated when using subdomains. Updated missing DAT file error to indicate that the zip file may not have fully uploaded or may be corrupt. Misc UI adjustments, error message improvements. 5.0.4.10 - 2014-11-14 - Packaging Bot (lib/updater) Enhancement: Reduced caching to allow updates to appear more quickly. Enhancement: Authenticating users now uses the new authentication system. 5.1.0.1 - 2014-11-19 - Dustin Bolton Dropbox Destination Fix: SSL version now forced to v1 (TLS) as per new Dropbox API requirements. ImportBuddy: Added additional logging about current step for better troubleshooting. Updated database replace to also handle replacements of nested array/object/string combinations. fileystem class mkdir() now defaulting to 0755 permissions. Server Tools Page permissions section now uses WP directory constant for listing plugin & theme directory permissions. ImportBuddy: Step 6 typos fixed in tips section. Temporary rollback/deploy database name now uses only first 4 characers of serial for prefixing. ImportBuddy: Fixed .htaccess.bb_temp rename attempt even if that file does not exist. 5.1.0.2 - 2014-11-19 - Dustin Bolton Amazon S3: Added new region endpoint - EU (Frankfurt). 5.1.0.3 - 2014-11-19 - Dustin Bolton Amazon S3, Stash: If CURLOPT_CLOSEPOLICY is not a long data type then this curl option is no longer set to avoid throwing warning. 5.1.0.5 - 2014-11-19 - Dustin Bolton ImportBuddy: Fixed undefined index $restoreData. Fixed updater reversion. 5.1.0.6 - 2014-11-20 - Dustin Bolton ImportBuddy: Fixed array_replace_recursive() error when running under PHP 5.2.x. 5.1.0.7 - 2014-11-20 - Dustin Bolton PHP database dump: Current database size is now displayed every 5 seconds minimum by the same PHP process doing the dumping. PHP database dump: Current database size is displayed every AJAX status check after the first full response notifies the browser of database table name. PHP database dump: Wiggle room for detecting need for chunking increased to 3 seconds up from 1 second to help avoid accidently hitting max runtime. Backup process Status Log tab now has "Download Status Log Text File" button for downloading the current status log as a text file. Useful for seeking support. 5.1.0.8 - 2014-12-19 - Dustin Bolton Improved backup listing action display. Misc UI cleanup. Remote Destinations page GUI improvements. Settings now available by clicking the "Gear" icon next to each destination title in its tab. iThemes Sync: New verb backupbuddy-edit-destination. iThemes Sync: New verb backupbuddy-get-backupStatus. Server Tools page: Added 'Loopback Domain & IP' item for displaying the server-reported IP address for the domain in the site URL to help troubleshoot causes of loopback problems. Added internal API function backupbuddy_api::getBackupStatus(). Fixed alternate cron javascript polling to load from pb_backupbuddy_backup page. iThemes Sync: Fixed backupbuddy-delete-destination verb. iThemes Sync: All destination verbs now return the destination ID number of the destination being manipulated. destination_id- Destination ID number of the destination just deleted. Fixed localization issue with single quotes in text breaking javascript. Changed single quotes in outer wrapping quotes to double quotes. Specifically impacted French translations. trim_remote_send_stats() now uses configurable settings to determine how far back to keep stats logs. Slightly re-arranges advanced settings to be better ranked by popularity. Most used advanced settings bolded for easier discovery. Added new advanced options for controlling how long recently sent remote transfer logs & statistics are stored. Added new scheduling interval: Every other day. Added new scheduling interval: Yearly. Misc minor changes. Set default scheduling interval selected to Daily. Fixed ImportBuddy password confirmation being stored in data structure on save which could cause saving advanced settings to overwrite existing importbuddy hash. On upgrade any existing importbuddy password confirmation stored is erased. 5.1.0.9 - 2014-12-20 - Dustin Bolton Fixed missing zip method strategy settings. 5.1.1.1 - 2014-01-21 - Dustin Bolton Updates to wp-config.php DB_PASSWORD now escape password to prevent special characters from causing a problem due to lack of escpaing. Fixed user-friendly display of backup start time being calculated based on start time. Added nonce security (CSRF) protection to Quick Setup wizard, Database rollback wizard, profile naming, Stash login, resetting plugin settings to defaults. Fixed missing profile configuration modal padding. S3 destination: If bucket region detection fails an additional note is added to the error message: "Note: Since the region could not be detected, if you are using IAM security, verify this resource ALLOWs the action "s3:GetBucketLocation"." Database rollback now takes into account SSL-secured sites without giving error that site URLs do not match. FEATURE: New setting to limit the number of local backups based on backup type. Dropbox2 destination: Fixed option to delete local backup after sending to Dropbox not happening. Support for port number specified in DB_HOST added. mysqlbuddy library now handles custom port in hostname. eg localhost:3306. Fixed modal display in importbuddy not being scrollable if too tall to fit on screen. ImportBuddy: No longer outputting comment about unlinking existing importbuddy directory if a newer version importbuddy.php was found than the contents of the importbuddy directory. Changed all target="_new" to target="_blank" to properly enforce opening in new window. Fixed fatal PHP errors directly output to log text or logged via shutdown function not displaying in status log. ENHANCEMENT: Backup & Restore Status Logs now highlight important information with colors. Errors = red, Warnings = orange, Notices & Other Information = blue. Fixed remote destination configuration gear disappearing upon saving any changes. Added new option "Force cron if behind by X seconds" to force the cron to spawn now. Manual backups only. Fixed cron status check finding cron is missing not logging to status log. Release of all quick releases 5.1.0.1-5.1.0.9. Fixed download Status Log link not working on some browsers. Added additional logging & improved testing for crons passing their run time. Fixed cron missing test not running under some circumstances. 5.1.1.2 - 2014-01-28 - Dustin Bolton Javascript error alert now displays error message, file, and line number of error and also logs to the status log. FEATURE: Added button to download the status log text file to the overview tab. Added http loopback test specific to POSTing to wp-cron.php in the same format as WordPress cron to better simulate testing of actual cron loopback system. Hover "Hover for details" next to the text on Server Tools page to view the returned data & status codes. When editing a schedule, if the next runtime is not able to be determined, set it to current timestamp rather than reverting to 0 which renders as 1970. Database chunking now uses pb_backupbuddy::$start_time to determine elapsed time to better match total elapsed runtime to take into account time used prior to database dump step. Table name in SQL query of primary keys for table during import now wrapped in `` to handle special table characters. Increased integrity checking logging. 5.1.1.3 - 2014-01-28 - Dustin Bolton Added Jetpack Security Reporting code to register BackupBuddy with Jetpack. 5.1.1.8 - 2014-01-29 - Dustin Bolton Fixed WP_error fatal error when loopback test fails. Fixed 'infinite update' problem. 5.1.1.9 - 2014-02-01 - Dustin Bolton Improved Jetpack Security Reporting functionality for more details on warnings or too much time has elapsed since a backup completed. 5.1.1.10 - 2014-02-02 - Dustin Bolton FEATURE: Added Jetpack Security Reporting features to warn if a backup has never been made or if there are no schedules in addition to too much time elapsing between backups. 5.1.1.11 - 2014-02-03 - Dustin Bolton Fixed fatal error when loopback test failed. Resulted in blank backup page if error reporting was suppressed. 5.1.1.12 - 2014-02-04 - Dustin Bolton ENHANCEMENT: Updated Swedish translations. - Thanks to Per von Dolwitz. Fixed javascript error when running in classic mode on server which loads status box slowly. 5.1.1.13 - 2014-02-05 - Dustin Bolton Added additional javascript conditions during classic mode to prevent possible warnings if status box is not yet available. Fixed Stash destination not allowing disabling of chunking by setting chunk size to zero (0). 5.1.1.14 - 2014-02-09 - Dustin Bolton Added additional error number logging to mysql error reporting during mysqlbuddy import and importbuddy mysql test. 5.1.1.15 - 2014-02-17 - Dustin Bolton Missing exec() now only a warning as it is not technically a fatal situation. Fixed database migration chunking from redirecting back to Step 4 if chunking is needed on Step 5. Improved wording on Server Tools explanations. Fixed backupbuddy_transient_delete() not deleting expired WordPress transients since 4.2.12.7 -- transients could build up due to WordPress not culling them appropriately. Added new constants.php backupbuddy_constants class to begin centralizing variables such as numeric variables that are used throughout BackupBuddy. Now using jQuery UI tooltip (provided with WordPress core) for tooltips within BackupBuddy plugin. Fixed scheduled backup having timed out not sending error email notification in periodic cleanup function. If backup does not progress for 72 hours then a notification is sent. 5.1.1.17 - 2014-02-18 - Dustin Bolton BackupBuddy now confirms deletion of any number of backups before proceeding. Previously only confirmed if all were selected for deletion. S3: Added new exception catching for getting bucket information for preparing bucket in _prepareBucketAndRegion(). Changed loopback test result of 'Connected to server but unexpected output' error to warning only. Schedules are now verified when going to the Scheduling page and during periodic cleanup via backupbuddy_core::validateSchedules(). 5.1.1.18 - 2014-02-18 - Dustin Bolton Fixed error when fixing damaged scheduled due to incorrect intercal causing operand error. 5.1.1.19 - 2014-02-23 - Dustin Bolton Scheduled backup timeout detection no longer sends emails if the backup timed out longer than 7 days ago to prevent email notification flood from very old backups. 5.2.0.0 - 2014-03-02 - Dustin Bolton Release of all updates from 5.1.1.1-5.1.1.19. Remote destinations not available due to lacking server requirements are now shown when selecting to add a destination (on remote destinations page or post- backup) but greyed out and indicating why they are unavailable. 5.2.0.1 - 2014-03-25 - Dustin Bolton FEATURE: Added new backup page Status Log checkbox to toggle auto-scrolling of the status log contents. Amazon S3 destination now displays error message indicating lack of curl when adding destination if curl is not available on this server. Remote Destination advanced options now not displayed by default. Click 'Advanced Options' to display them. Added new alternative zip method supporting bursted chunked zip creation for handling very large sites. - Jeremy Trask 5.2.0.4 - 2014-03-26 - Dustin Bolton Added backup status log option to limit to the last 100 lines displayed. Useful for sites generating extremely long status logs resulting in browser issues (eg out of memory). State data is now only output to browser javascript console when full logging mode is enabled. Debugging backup process data only sent to browser javascript console when in development mode. Fileoptions storage of the backup state now clears step arguments for finished functions to prevent buildup of state data once a function has passed (eg for deployment state or new alternate zip method state) to prevent rapid uncontrolled fileoptions file growth. Performance increases to backup page javascript when logging or displaying loading indicator. 5.2.0.5 - 2014-04-06 - Dustin Bolton Removed Stash directory name from displaying in the Stash remote file listing. 5.2.0.6 - 2014-04-07 - Dustin Bolton Deployment beta updates. Google Drive beta updates. All remote destinations: Fixed 'Select all' button for selecting all files stored in a remote destination. Fixed possible javascript error when running in classic mode based on timing. Database chunking is now fully disabled when running in classic mode. Fixed inability to set ImportBuddy password back to the prior password after having cleared it to blank. Fixed ImportBuddy's hash remaining in database after clearing it. Fixed ImportBuddy hash confirmation being populated in plugin options when saving Advanced page. Change of locked archive directory (high security mode) now takes place immediately by running periodic cleanup function to validate the new setting is applied as expected. Server Tools page latest BackupBuddy version now always shows latest, ignoring cached version data. 5.2.0.7 - 2014-04-09 - Dustin Bolton Updates to beta features. 5.2.0.8 - 2014-04-13 - Dustin Bolton Fixed remote send log not being sent in error email went remote send failed. Fixed loadingIndicator potential javascript error when in Classic mode. Fixed typo on Settings page. 5.2.0.9 - 2014-04-15 - Dustin Bolton When backing up is unavailable due to inability to write to backup or temporary directory then the message "Backing up disabled due to errors listed above. This often caused by permission problems on files/directories. Please correct the errors above and refresh to try again." will be displayed in place of the backup buttons to prevent attempts which will certainly fail. Improved security for all AJAX calls. Alternative zip method options are now displayed automatically when changing its setting without requiring refreshing the page. BackupBuddy Deployment & Google Drive features now available for BETA testing. 5.2.0.10 - 2015-04-23 - Packaging Bot (lib/updater) Compatibility Fix: Updated plugin and theme update data format to match changes in WordPress 4.2. 5.2.0.11 - 2015-05-01 - Dustin Bolton Improved remote destination tests. Fixed selecting to Add a new destination from the Schedules page and then adding a new destination within the thickbox resulting in the tabbed display of destinations and having to re-select to add a destination. In progress remote send status now changed to "running". Each time a remote send status is updated now updates "time_updated" entry with current timestamp. Remote destination sends that have not been updated after a period of time are now marked as timed out and send notification email. Old status logs will now be removed after 10 days rather than 2 days. Fixed "File destination send finished email recipient(s)" feature not sending notification emails. Fixed issue 'Manual Backup With Send and Delete After Reports ZIP File Not Found at End' by no longer wiping send_remote_destination step information from fileoptions after function finish. Fixed timing issue / race condition where _getBackupStatus.php retrieving fileoptions could possibly retrieve the file mid-write, resulting in an incomplete serialized array being returned and a fatal error #9031b. If this happens then it will sleep for 1 second, up to 10 times, re-checking the fileoptions file for valid contents prior to proceeding. Classic mode: Fixed possible javascript error when running under Classic Mode due to retrieving scrollHeight of non-existant status box. 6.0.0.0 - 2015-05-04 - Dustin Bolton Deployment New "BackupBuddy Deployment" remote destination allowing pushing or pulling your entire site to or from another existing site, in as few as two clicks. See differences in site server settings, active plugins, theme, versions, and media prior to deploying. Options to transfer the database (all tables, some, or none), plugins, theme, and/or media. Automatic migration of URLs, paths, and other settings just like manual migrations. Watch the deployment progress just like a normal backup, displaying a continuous status including a detailed advanced status log of the entire process, all in one place. Ability to undo the database changes with one click if something goes wrong prior to confirming the deployment once you're satisfied. Automatic chunking of data transferred between servers to support large files or slow servers. Swaps databases only after the entire database and all files have been transferred to attempt to minimize site downtime to mere seconds (or less!). Perfect for developing your site in a different location from the live site. Use staging best practices. Google Drive Destination Intelligent hybrid of chunking & bursting for better handling large files & server performance fluctuations by automatically scaling as needed. Automatic "smart" adjustment during transfers to handle your specific server's speeds and abilities. Directory selector for easily finding where to store files or creating new folders. Per-backup archive limits based on the backup type. List, delete, and download remote backups (remote management may be disabled when creating new destination). Finer Grain Archive Limit Controls for local backup limit by total number of backups all together or by type (full, database, or files) limit by size limit by age Improved limit controls for most destinations Performance & Reliability Significantly improved javascript performance during backups, rollbacks, and deployments for slower computers. Improved server-side performance for slower servers. Timed out scheduled backups are now automatically detected & trigger an email notification. New option added to receive an email notification if no backups succeed in a certain number of days. BETA "Alternative zip system" adds support for chunking zip file creation for supporting large sites and/or slow servers. Troubleshooting & Security Improved Status Log with more descriptive errors, colors highlighting errors, improved preflight checks to detect problems before backups begin, and more. Status Log options added to download it as a text file, stop automatically scrolling, or limit it to the last 100 lines being displayed. These can help with troubleshooting & performance. Enhanced security checks to further ensure you, and only you, have access to BackupBuddy's features and data. Misc Added new S3 region "Frankfurt". Added support for migrating nested data structures used by some plugins. Database backup step regularly displays how much has been backed up of the current database table to help see it progress. Added support for JetPack security. Improved Sync integration. Misc UI improvements. Misc bug fixes. Misc minor features. Fixed stray </span> in localization tooltip. Updated plugin description to note Deployment feature. Official release of quick release updates: Added new backup page Status Log checkbox to toggle auto-scrolling of the status log contents. Amazon S3 destination now displays error message indicating lack of curl when adding destination if curl is not available on this server. Remote Destination advanced options now not displayed by default. Click 'Advanced Options' to display them. Added new alternative zip method supporting bursted chunked zip creation for handling very large sites. - Jeremy Trask Added backup status log option to limit to the last 100 lines displayed. Useful for sites generating extremely long status logs resulting in browser issues (eg out of memory). State data is now only output to browser javascript console when full logging mode is enabled. Debugging backup process data only sent to browser javascript console when in development mode. Fileoptions storage of the backup state now clears step arguments for finished functions to prevent buildup of state data once a function has passed (eg for deployment state or new alternate zip method state) to prevent rapid uncontrolled fileoptions file growth. Performance increases to backup page javascript when logging or displaying loading indicator. Removed Stash directory name from displaying in the Stash remote file listing. All remote destinations: Fixed 'Select all' button for selecting all files stored in a remote destination. Fixed possible javascript error when running in classic mode based on timing. Database chunking is now fully disabled when running in classic mode. Fixed inability to set ImportBuddy password back to the prior password after having cleared it to blank. Fixed ImportBuddy's hash remaining in database after clearing it. Fixed ImportBuddy hash confirmation being populated in plugin options when saving Advanced page. Change of locked archive directory (high security mode) now takes place immediately by running periodic cleanup function to validate the new setting is applied as expected. Server Tools page latest BackupBuddy version now always shows latest, ignoring cached version data. Fixed remote send log not being sent in error email went remote send failed. Fixed loadingIndicator potential javascript error when in Classic mode. Fixed typo on Settings page. When backing up is unavailable due to inability to write to backup or temporary directory then the message "Backing up disabled due to errors listed above. This often caused by permission problems on files/directories. Please correct the errors above and refresh to try again." will be displayed in place of the backup buttons to prevent attempts which will certainly fail. Improved security for all AJAX calls. Alternative zip method options are now displayed automatically when changing its setting without requiring refreshing the page. Compatibility Fix: Updated plugin and theme update data format to match changes in WordPress 4.2. Improved remote destination tests. Fixed selecting to Add a new destination from the Schedules page and then adding a new destination within the thickbox resulting in the tabbed display of destinations and having to re-select to add a destination. In progress remote send status now changed to "running". Each time a remote send status is updated now updates "time_updated" entry with current timestamp. Remote destination sends that have not been updated after a period of time are now marked as timed out and send notification email. Old status logs will now be removed after 10 days rather than 2 days. Fixed "File destination send finished email recipient(s)" feature not sending notification emails. Fixed issue 'Manual Backup With Send and Delete After Reports ZIP File Not Found at End' by no longer wiping send_remote_destination step information from fileoptions after function finish. Fixed timing issue / race condition where _getBackupStatus.php retrieving fileoptions could possibly retrieve the file mid-write, resulting in an incomplete serialized array being returned and a fatal error #9031b. If this happens then it will sleep for 1 second, up to 10 times, re-checking the fileoptions file for valid contents prior to proceeding. Classic mode: Fixed possible javascript error when running under Classic Mode due to retrieving scrollHeight of non-existant status box. 6.0.0.1 - 2015-05-05 - Dustin Bolton Google Drive: Fixed bug where selecting 'Delete file after remote send' during a manual backup resulted in remote file being deleted as well in addition to the expected deletion of the local file. 6.0.0.2 - 2015-05-07 - Dustin Bolton Deployment: Remote API calls now pass referer as the remote site URL to help prevent falsely triggering host-basted security. 6.0.0.3 - 2015-05-08 - Dustin Bolton Deployment: Added additional instructions for enabling the remote API to specify where in the wp-config.php to add the line. Deployment: Added additional instructions when unable to reach remote API on verifying the line enabling the API in the wp-config.php has been placed in the properly location. 6.0.0.4 - 2015-05-11 - Dustin Bolton Changed time before a backup or remote transfer is considered timed out if there is no update to progress in 24 hours. Remote destination failures now include the remote destination name and type in the error details. Includes send failures & detected timeouts. Removed debugging data from displaying when running the periodic cleanup. 6.0.0.5 - 2015-05-12 - Dustin Bolton Changed Error #8483974 to Error #8002. Added additional information on potential causes. 6.0.1.0 - 2015-05-13 - Dustin Bolton Deployment: Added support for deploying Child Themes. Deployment: Fixed minor bug causing inactive plugin files to be deployed. Note: If database is not deployed then it may still shows plugin files as needing transferred as only active plugins on both side are compared. Deployment: Fixed minor bug causing BackupBuddy plugin files to be deployed. mysqlbuddy: Database default charset is now set to match that within $wpdb- >charset for commandline based dumping or importing. DAT file now stores $wpdb->charset (in db_charset) and $wpdb->collate (in db_collate) for use by ImportBuddy for setting default charset details prior to executing SQL. ImportBuddy: Fixed inability to import database rows containing utf8mb4 characters. Better support for utf8mb4 (utf8mb4 encoding added in WordPRess v4.2). Official release of all quick release updates 6.0.0.1-6.0.0.5. 6.0.1.1 - 2015-05-16 - Dustin Bolton Temporary database table name prefixes for rollback or deployment now use bbnew- and bbold- instead of BBnew- and BBold- for some systems that convert uppercase characters in table names to all lowercase, breaking various replacements. 6.0.1.2 - 2015-05-18 - Dustin Bolton filesystem class deepglob() now checks if glob responds with false and changes to empty array to prevent invalid argument warning. This could be caused if a directory is unreadable. 6.0.1.4 - 2015-05-21 - Dustin Bolton ENHANCEMENT: Server Tools page: Directory size listing now displays number of children for each directory (files + directories within the directory and all chidlren) for both total site and taking into account exclusions. Total counts are also displayed at the bottom. ENHANCEMENT: Multiple browser performance enhancements during backup and deployment. ENHANCEMENT: Better handling of smaller screen sizes for improved usability, especially on mobile or other small devices. Periodica cleanup: If temp directory exists (it should normally only be transient) we verify anti directory browsing files exist. Normally this directory will be deleted on cleanup but this helps to insure it's secure in case it cannot be removed for some reason. Improved backup page performance by removing some CSS animations including box-shadow animations which did not receive GPU acceleration. Improved backup page styling when browser window is small but not so small as to reflow to mobile layout. Improved mobile friendliness of remote destinations by making destination pages scrollable horizontally. Added charcode logging to deployment confirmation failure alert to detect possible character encoding issue with confirming response of "1". 6.0.1.5 - 2015-05-22 - Dustin Bolton Fixed typo in DE translations. Deployment Pull: Fixed "Visit Deployed Site" link pointing to the source site rather than the destination. Pull direction only. Deployment: Fixed active plugin list always displaying BackupBuddy version as that of the remote site. All other plugin versions were correct for their respective site. ENHANCEMENT: Deployment: Added indicator displaying the numerical count of tables selected for deployment. Deployment: Added text saying to confirm deployment after satisfaction. 6.0.1.7 - 2015-06-03 - Dustin Bolton Added Error #9038 for loopback issues. Updated codex with more instructions on troubleshooting loopback problems. FEATURE: Deployment: You may now selectively choose which plugins to transfer in deployment rather than just all or none. Deployment: Not deploying the wp_options table no longer results in an error message as deploying only some tables is permitted (for advanced users). ImportBuddy: If _options table was not backed up (its tables_sizes entry is non-existant) then we no longer attempt to modify the options table since it either does not exist or has alreasy been migrated. Deployment: Misc minor bug fixes. Deployment: Minor UI improvements and wording clarifications. Deployment: Some performance improvements for users with large numbers of files. FEATURE: New option (enabled by default) to attempt to re-send transfers officially detected as 'timed out' once per file. An attempt is either the entire file send or a single chunk resend. FEATURE: Remote Destinations: New option under "View recently sent files" to force a retry attempt now for any transfer not marked as a 'success'. 6.0.1.8 - 2015-06-03 - Dustin Bolton Deployment troubleshooting: BACKUPBUDDY_DEV enabled now stores additional debug filename information in returned media data to troubleshoot null value for filenames in some instance. 6.0.1.9 - 2015-06-05 - Dustin Bolton Further debugging enhancements similar to v6.0.1.8. 6.1.0.0 - 2015-06-08- Dustin Bolton Updated cron uptime monitoring text to also mention iThemes Sync Uptime Monitoring as a possible solution to triggering schedules. See https://ithemes.com/sync-pro/uptime-monitoring/ Misc minor bug fixes. Removal of deprecated RepairBuddy script. FEATURE: New 'Recent Activity' tab on Settings page to help track some recent site activity. Fixed remote destination 'delete local file after send' not working for succesfull multipart sends. Official release of quick release items 6.0.1.1-6.0.1.9. Temporary database table name prefixes for rollback or deployment now use bbnew- and bbold- instead of BBnew- and BBold- for some systems that convert uppercase characters in table names to all lowercase, breaking various replacements. filesystem class deepglob() now checks if glob responds with false and changes to empty array to prevent invalid argument warning. This could be caused if a directory is unreadable. ENHANCEMENT: Server Tools page: Directory size listing now displays number of children for each directory (files + directories within the directory and all chidlren) for both total site and taking into account exclusions. Total counts are also displayed at the bottom. ENHANCEMENT: Multiple browser performance enhancements during backup and deployment. ENHANCEMENT: Better handling of smaller screen sizes for improved usability, especially on mobile or other small devices. Periodica cleanup: If temp directory exists (it should normally only be transient) we verify anti directory browsing files exist. Normally this directory will be deleted on cleanup but this helps to insure it's secure in case it cannot be removed for some reason. Improved backup page performance by removing some CSS animations including box-shadow animations which did not receive GPU acceleration. Improved backup page styling when browser window is small but not so small as to reflow to mobile layout. Improved mobile friendliness of remote destinations by making destination pages scrollable horizontally. Added charcode logging to deployment confirmation failure alert to detect possible character encoding issue with confirming response of "1". Fixed typo in DE translations. Deployment Pull: Fixed "Visit Deployed Site" link pointing to the source site rather than the destination. Pull direction only. Deployment: Fixed active plugin list always displaying BackupBuddy version as that of the remote site. All other plugin versions were correct for their respective site. ENHANCEMENT: Deployment: Added indicator displaying the numerical count of tables selected for deployment. Deployment: Added text saying to confirm deployment after satisfaction. Added Error #9038 for loopback issues. Updated codex with more instructions on troubleshooting loopback problems. FEATURE: Deployment: You may now selectively choose which plugins to transfer in deployment rather than just all or none. Deployment: Not deploying the wp_options table no longer results in an error message as deploying only some tables is permitted (for advanced users). ImportBuddy: If _options table was not backed up (its tables_sizes entry is non-existant) then we no longer attempt to modify the options table since it either does not exist or has alreasy been migrated. Deployment: Misc minor bug fixes. Deployment: Minor UI improvements and wording clarifications. Deployment: Some performance improvements for users with large numbers of files. FEATURE: New option (enabled by default) to attempt to re-send transfers officially detected as 'timed out' once per file. An attempt is either the entire file send or a single chunk resend. FEATURE: Remote Destinations: New option under "View recently sent files" to force a retry attempt now for any transfer not marked as a 'success'. Deployment troubleshooting: BACKUPBUDDY_DEV enabled now stores additional debug filename information in returned media data to troubleshoot null value for filenames in some instance. Further debugging enhancements similar to v6.0.1.8. 6.1.0.1 - 2015-06-12 - Dustin Bolton Fixed file size warning when sending to a remote destination an used had selected to delete file after send. Destination send function deprecates sending an array of files to a destination. 6.1.0.2 - 2015-06-12 - Dustin Bolton ImportBuddy: Now checking that importbuddy is not being attempted to be ran inside of the plugin directory. ImportBuddy: Now checking importbuddy file integrity prior to deleting any existing importbuddy subdirectory. 6.1.0.3 - 2015-06-20 - Dustin Bolton Deployment Pull: Fixed Deployment validation url pointing to source site instead of destination. Remote Destinations: Fixed failed multipart sends not being updates to the status of "Failed" upon immediate error. Only got updated after detected as timeout. Dropbox (v2) Destination: Changed default chunk size to 80mb instead of chunking being disabled by default. 6.1.0.4 - 2015-06-22 - Dustin Bolton S3 Destination: Fixed missing file error when chunking sends to Amazon S3. S3 Destination: Added link to codex for help creating S3 destination & finding credentials to enter. Fixed 'Cleanup temporary files now' button changing to the 'Recent activity' tab. Renamed 'Cleanup temporary files now' button to "Cleanup OLD temporary files, logs, & data" to be more precise. Added new "Delete ALL temporary files & logs regardless of age" button to Settings: Other tab. This recursively deletes all temporary file directories including the log directory, all fileoptions files, cached integrity scans, etc. This does NOT run the periodic cleanup function which also cleans up any internal data. Fixed "Extraneous Log" not loading on Settings: Other tab. Fixed redundant 'status-' prefixed extraneous log file. No longer exists. Any existing files will be culled in ~10 days by housekeeping cleanup function. ENHANCEMENT: Added new Advanced setting "Temporarily save full backup status logs". Defaults to enabled. Saves a complete copy of the backup status log in a _sum_ file so users may always view the backup status log for a backup. Periodically trimmed by existing log culling functions in periodic cleanup. Current erasure time is 10 days. View logs on Backups page by hovering backup and selecting "View Log". Orphaned fileoptions file for cached integrity scan that did not have an existing fileoptions file (eg remote backup copied local) was missing archive_file key and thus never deleted. Now deleting old orphaned fileoptions files missing this key if their backup file has been missing for ~10 days. Manual deletion of backup file will delete all their fileoptions files regardless. 6.1.0.5 - 2015-06-23 - Dustin Bolton Fixed ImportBuddy javascript error when restoring and setting database settings. Introduced in yesterday's 6.1.0.4 update. 6.1.0.6 - 2015-07-14 - Packaging Bot (lib/updater) Enhancement: Updated link to iThemes support. 6.2.0.0 - 2015-07-16 - Dustin Bolton Reliability release. Improved reliability, improved troubleshooting, improved logging. ImportBuddy: Fixed import of Google fonts to use https instead of http. Fixed BackupBuddy Deployment button showing "Beta" on it when adding a new destination despite being out of beta. ENHANCEMENT: Scheduled backup timeout email now notes backup zip filename that reported failure. Fixed cleanup of temp DAT file from get file contents hanging in temp directory. Added HTML comments to backup listing page in various locations to debug it stopping. Schedule editing: Fixed saving schedule momentarily hiding list of destinations this schedule is sending to until refresh. Multisite Import: Fixed missing files error #9004 if wp-config.php of course site was in a parent directory. DAT file now includes WP_CONTENT_DIR and WP_CONTENT_URL values. FEATURE: ImportBuddy now migrates custom wp-config.php defines of WP_CONTENT_DIR and WP_CONTENT_URL. Remote send errors in Recently sent files list now are limited in size in a scrollable container as to not make table unreadable. Many misc bug fixes. Improved S3 chunking reliability. Improved remote destination send troubleshooting. 6.2.0.1 - 2015-07-16 - Dustin Bolton Automatic resends of failed remote destination sends will hold off on sending error email until the resend also fails to prevent too many emails from being sent if sends are always timing out. 6.2.0.2 - 2015-07-16 - Dustin Bolton Fixed 'File destination send finished email' notifications being sent to Scheduled backup start email recipient rather than this recipient. 6.2.0.3 - 2015-07-16 - Dustin Bolton Added additional logging details when passing between steps in status log to note the function name of the next step expected to run when in modern mode. 6.2.1.0 - 2015-07-17 - Dustin Bolton Hotfix: Fixed issue where s32 destination error would occur if running earlier than PHP 5.4 when loading some pages. Side effect: Currently this results in unsupported destinations being hidden rather than grayed out. 6.2.1.1 - 2015-07-20 - Dustin Bolton ENHANCEMENT: Active plugins listing during backup now lists total count as well. Deployment: Removed remaining beta terminology. Deployment: Added additional logging for troubleshooting problems getting remote logs. Deployment: Fixed Deployment bug where Deployment was appearing to hang / get stuck trying to finish despite it actually completely finishing. Light status() function cleanup for more clarity. 6.2.1.2 - 2015-07-21 - Dustin Bolton Fixed support for multiple serials in status(). 6.2.1.4 - 2015-07-21 - Dustin Bolton Added additional dropbox2 logging on size mismatch between local and remote upon send completition (chunked mode). Remote Destination send logs now include the BackupBuddy version in the first line to aid in support. First line logged looks like: ----- Initiating master send function for BackupBuddy v6.2.1.2. ... 6.2.1.5 - 2015-07-22 - Dustin Bolton Scheduling: If a destination no longer exists when visiting Scheduling page a notice is displayed. Typically this should not happen as BB cleans up schedules on destination deletions. anti_directory_browsing() no longer creates .htaccess files when running as ImportBuddy to prevent problems with disabling indexes being unsupported on new server. - Glenn Ansley 6.2.1.6 - 2015-07-22 - Dustin Bolton Added additional logging to help troubleshoot when cron runs yet no more steps were found. 6.2.1.7 - 2015-07-23 - Dustin Bolton Changed all backup class instances to be unique instances instead of sharing the same instance. Prevents multiple backups running during the same cron load from having race conditions. Symptoms involve unrun steps showing in steps array logged followed by "No more steps remain." message. fileoptions will show the steps did not run. 6.2.2.0 - 2015-07-29 - Dustin Bolton Multisite: Updated menu title for subsites to BackupBuddy for consistency across areas & future expansion. Fixed Settings page Other tab Clear Log button from taking you to wrong tab on submit. Rackspace Cloud Files: Renamed destination title from "Rackspace" to "Rackspace Cloud Files". ENHANCEMENT: Rackspace Cloud Files: Added improved authentication error handling. Now provides more details on why it auth failed. Rackspace Cloud Files: Added new option to "Use internal service net" to modify the storage URL to prefix with "snet-" so that external data charges may not apply if site is also hosted within Rackspace. Deployment (Pull mode): Fixed not being able to Pull a site when no database tables were selected for pulling. Now skips remote backup & importbuddy steps as expected. Note: Pushing without any tables selected already worked. 6.2.2.1 - 2015-07-29 - Dustin Bolton ENHANCEMENT: Settings: Added new "Force cancel of all backups & transfers" button to Other page. Settings: Hid extraneous log behind a button (click to show) to discourage posting to support as it is almost never needed or desired. ImportBuddy: Made Error #3292373 non-fatal since it may be a result of the user excluding certain tables such as for working around database import issues. Deployment: Fixed issue where pulling/pushing database tables except the wp_options table resulted in a fatal error. ImportBuddy: Fixed bug where on import the _migrate_database.php verifyDatabase() function always thought the options table was not imported so URLs were not verified. 6.2.2.2 - 2015-07-30 - Dustin Bolton Deployment: Now maintains iThemes Licensing data on push/pull from being overwritten by the incoming site when importing options table so that licenses won't need to be re-entered. 6.2.2.3 - 2015-08-10 - Dustin Bolton Fixed global $wp_version being too late during rollback resulting in version not being shown in the status box correctly. - Glenn Ansley Multisite: Fixed Licensing tab on Settings page pointing to wrong URL. - Glenn Ansley Added escaping to remote destination titles. - Glenn Ansley Remote Destinations: Fixed remote archive limiting for files type backups being limited to the full limit count in some destinations. ENHANCEMENT: Added shutdown function logging for remote sends to aid troubleshooting due to PHP errors such as lack of memory. ENHANCEMENT: When viewing backup or remote send logs, the log filename and last modified time (absolute & relative) are displayed below the log. ENHANCEMENT: Schedules: Added new Quarterly interval. Schedules: Added new Twice Yearly interval. Google Drive: Fixed backup limits per type not properly limiting based on the correct type, thinking all remote backups were of the current type being sent. Dropbox2 destination: Updated chunking recommendation to suggest 80mb rather than 0. Default was already 80mb though. ENHANCEMENT: Added new 'Details' link when viewing Recently Sent Files on Remote Destinations page. Fixed PHP warning when cancelling all in progress backups or transfers if there is an unfinished remote send in progress. - Glenn Ansley Updated cron suggestion text on Servers Tools -> Cron page providing information about ways to improve cron reliability. - Glenn Ansley FEATURE: Added new beta s32 destination (Amazon S3 version 2). Supports BURSTING in addition to chunking. Handles variations in server speeds better, uses less memory. Handles server timeouts better. Supports new s3 regions previously unsupported due to new authentication method. Requires PHP v5.3 or newer to be available. Better than previous s3 destination which will become legacy on release from beta. s32 destination supports WordPress proxy set with WP_PROXY_HOST, WP_PROXY_PORT, WP_PROXY_USERNAME, and WP_PROXY_PASSWORD. Only WP_PROXY_HOST is required. Misc bug fixes, UI tweaks. 6.2.2.4 - 2015-08-10 - Dustin Bolton s32 destination: Added support for custom WordPress proxy. 6.2.2.6 - 2015-08-12 - Dustin Bolton Fixed deploy_sendWait() identifier being set too late for logging. - Glenn Ansley Now storing mysql version in backup DAT file. (via $wpdb->db_version()). ImportBuddy: If importing a backup created with mysql < 5.1 and the new server is 5.1+ then a warning #7001 will be logged indicating that there may be SQL syntax problems due to mysql syntax change of TYPE= changing to ENGINE=. Handled in restore.php connectDatabase(). ImportBuddy: If above warning #7001 is thrown then mysqlbuddy will implement hotfix #7001 which replaced TYPE= with ENGINE= in table CREATE statements with PHP- based imports. 6.3.0.0 - 2015-08-17 - Dustin Bolton Remote destinations: New Amazon S3 v2 remote destination. Supports BURSTING in addition to chunking. Handles variations in server speeds better, uses less memory. Handles server timeouts better. Supports new s3 regions previously unsupported due to new authentication method. Requires PHP v5.3 or newer to be available. Better than previous s3 destination which will become legacy on release from beta. Supports WordPress proxy settings. Amazon S3 v1 Improved S3 chunking reliability. Rackspace Cloud Files Added new option to "Use internal service net" to modify the storage URL to prefix with "snet-" so that external data charges may not apply if site is also hosted within Rackspace. Added improved authentication error handling. Now provides more details on why it authentication may have failed. Multiple small bug fixes & UI improvements. Significantly increased troubleshooting capabilities with enhanced error emails, better logging, and PHP error detection and logging. Added new "View Details" option when viewing recently sent files to see more details about the transfer. New option under "View recently sent files" to force a retry attempt now for any transfer not marked as a 'success'. Remote Sends will by default attempt to resend a timed out file transfer ONCE if it fails. Stash, S3, and S32 destinations now display a progress bar under View Recently Sent Files section of Remote Destinations page when a multipart send is currently in progress. Backups: More information now provided within Backup Details including time of last update to the status log. Better handling of multiple backups running at the same time. Active plugins listing during backup now lists total count as well. Multiple browser performance enhancements. Deployment: You may now selectively choose which plugins to transfer in deployment rather than just all or none. Performance improvements for users with large numbers of files. Multiple small bug fixes & UI improvements. Added indicator displaying the numerical count of tables selected for deployment. Scheduling: Added new Quarterly interval. Added new Twice Yearly interval. Scheduled backup timeout email now notes backup zip filename that reported failure to help match error emails to the backup that failed to send. Settings: New "Force cancel of all backups & transfers" button to Settings page's Other tab. Added new "Delete ALL temporary files & logs regardless of age" button to Settings: Other tab. New option (enabled by default) to attempt to re-send transfers officially detected as 'timed out' once per file. An attempt is either the entire file send or a single chunk resend. ImportBuddy: ImportBuddy now migrates custom wp-config.php defines of WP_CONTENT_DIR and WP_CONTENT_URL. Options table is no longer required for restoring a database. ImportBuddy cookie expiration increased from 1 hour to 24 hours. Overall: New 'Recent Activity' tab on Settings page to help track some recent BackupBuddy activity. Better handling of smaller screen sizes for improved usability, especially on mobile or other small devices. By default BackupBuddy no longer attempts to increase maximum PHP execution time by overriding it as this typically is blocked by hosts and prevents detecting available execution time. New Advanced Settings option "Attempt to override PHP max execution time" which when enabled results in functionality as before this update. 6.3.1.0 - 2015-08-19 - Dustin Bolton FEATURE: All destinations now have an Advanced Option to disable the destination. When disabled the destination cannot be sent to and remote files cannot be viewed until re-enabling. Updated changed Google Drive destination setup instructions due to Goggle updating API configuration process. Amazon S2 v2 destination: Fixed issue where backups sent to a folder would appear in the root of the bucket. 6.3.1.1 - 2015-08-20 - Dustin Bolton Fixed remote send retries failing due to blank filename. Caused by trying to load filenames from 'files' key instead of new 'file' key in remoteSendRetry(). Added more details to error messages when forcing a retry of send fails. Added logging to note when a remote send step is triggered due by the automatic retry system. Fixed retry count not incrementing when manually resending a failed remote send. Added a failsafe for remote sends that began over one month ago. Sends started over a month ago will bail rather than attempting to send. This is a failsafe to prevent any potential runaway sends. Added s32 multipart cleanup for any 'hanging' multipart uploads to periodic cleanup function. 6.3.1.2 - 2015-08-21 - Dustin Bolton dropbox2: Removed 64-bit integer requirement from blocking destination from running. 6.3.1.3 - 2015-08-25 - Dustin Bolton Removed redundant saving/loading indicator when saving remote destination changes. Fixed log size trim email incorrectly specifying the log size in KB. ImportBuddy: Fixed issue where chunked imports of tables could result in skipping import of some file portions, resulting in import issues. ImportBuddy: Fixed premature output of greedy script limit logging prior to log function declaration in JS. FEATURE: ImportBuddy: Added button to download Status Log as a .txt file. set_greedy_script_limits() now logs detected execution times even if not modifying them. ImportBuddy: Status log container is now resizable by dragging the lower left handle. 6.3.2.0 - 2015-08-31 - Dustin Bolton ImportBuddy: Prior database settings input form items now set to readonly instead of disabled to prevent some browsers from blocking highlighting and copying. S32 destination: Fixed bucket information retreival not containing error details. Stash destination: Updated manage URL to improved Sync Stash panel: https://sync.ithemes.com/stash/ Server Tools page: Fixed plugins directory calculation. - Glenn Ansley S3 v2 destination: Better verification that a deleted file was actually deleted. Misc minor fixes. Full release of 6.3.1.1-6.3.1.3. 6.3.2.2 - 2015-09-07 - Dustin Bolton Fixed additional text showing in S3 v2 test alert. S3 v2 Destination: Fixed problems sending files to new regisions such as Frankfurt in some cases. S3 v2 Destination: Fixed problem with using buckets with periods in the name. S3 v2 Destination: Bucket is no longer an Advanced Option as it is now reguired to be correct; no longer guessing region. New v4 signature regions require the region be encoded in the signature so it must be known. S3 v2 Destination: Fixed write speed calculation being based off time() instead of microtime(true) resulting in less accurate write speed calculations. Updated many instances of time() with microtime(true) for better resolution on time calculations that may run faster than 1 second for better resolution. Removed majority of styles from legacy jquery ui CSS only used by tooltip. - Glenn Ansley force_single_db_file setting now stored in DAT file as it is needed for regenerating integrity check if caches scan if lost. - Glenn Ansley Maintenance mode (activated via .maintenance file) now sends a 503 HTTP status code with a retry time of 1 hour to better instruct search engines on how to handle the site being down. 6.3.2.3 - 2015-09-09 - Dustin Bolton S3 (v2) Remote Destination: Fixed error when trying to list remote multipart upload parts. 6.3.3.0 - 2015-09-14 - Dustin Bolton Stash destination: Fixed upgrade links to use both https and 10 & 25 GB links pointing to wrong URL. Deployment: Fixed importbuddy step prematurely being killed stating it has been running too long. Time calculation was from Deployment start not importbuddy start. Changed to 48 hours as a failsafe if Deployment stuck in a loop. Reset plugin settings button now has option to skip resetting remote destination settings. Deployment: Fixed issue where utf8 encoded media files would cause problems with deployment. - Glenn Ansley Deployment: Added 503 HTTP status check to AJAX polling to detect Maintenance Mode and wait 6 seconds before retrying up to 5 times. - Glenn Ansley Quick Setup Wizard now makes setting up your Stash destination even easier by just logging in with your iThemes credentials. Requires PHP v5.3.3 or newer. Fixed issue where a Database backup "Maximum time per chunk" setting below ~5 seconds would result in infinite chunking. Rare to be encountered. Additional information to error message regarding being unable to get create table data in the case where the table was defined in the 'additional tables' setting. ENHANCEMENT: Added support for a variable when configuring additional database tables to include or exclude. The variable may be used by placing {prefix} in place of the current site's database prefix as defined by global $wpdb->prefix. IMPORTANT: S3 v2 Destination: Fixed issue where archive limits from another type could be applied to the wrong type (based on which was uploaded), resulting in excess trimming. sFTP Destination: Updated phpseclib library to v1.0 for improved server support. - Glenn Ansley Server Tools: Added display of mysql_connect() availability. Deprecated in PHP 5.5.0 and removed in PHP 7.0.0. Optionally compiled in some versions. - Glen Ansley FEATURE: Added new backup filename date/time format to display the time in 24 hour format. FEATURE: Added new backup filename date/time format to display the date & time in Unix timestamp format (time since Unix Epoch). Dropbox v2 destination: Improved memory performance. One location could double memory usage. 6.3.3.1 - 2015-09-21 - Dustin Bolton FEATURE: New BETA version of the "Stash" Remote Destination, "Stash v2". Stash v2 introduces bursting in addition to chunking, resulting in significant protection against timeouts, even in cases of intermittent server 'slowdowns'. Requires PHP v5.3.3 or newer. The best Stash destination ever. Less memory usage. Maximizes throughput per chunk while at the same time adapting as server conditions change, chunking as needed. By default now stores all backups of all types, not limiting remote numbers. Configure via this destination's settings. FEATURE: New option to include the backup Profile name in the backup zip archive filename. -- Glenn Ansley FEATURE: Quick Setup Wizard now lets you set up your Stash destination faster than ever, just by entering your iThemes login. Easy. Add missing key reference in options array during MS export process. -- Glenn Ansley 6.3.3.2 - 2015-09-22 - Dustin Bolton Fixed undefined index remote path in Stash v2 beta. Changed Stash v2 backup limits to zero instead of blank to match other settings defaults better. Removed depricated class file. Fixed 'long time since last backup' notification emails when running under Multisite. Removed debugging text "banana". 6.3.3.3 - 2015-09-22 - Dustin Bolton Added new safeguard default cap of 50 GB maximum local storage usage to prevent runaway storage of backups if user has not instituted their own cap in Settings. This may be changed in Advanced Settings but is recommended against disabling. 6.3.3.4 - 2015-09-26 - Dustin Bolton Fixed S3 v2 test giving error about deleting temporary object. -- Glenn Ansley 6.3.3.5 - 2015-09-29 - Dustin Bolton ENHANCEMENT: User-disabled remote destination tabs are now displayed with a line through their name and hovering notes that the destination is disabled. ENHANCEMENT: When available and upon successful test, existing Stash v1 destinations will be auto-upgraded to Stash v2 destinations. 6.3.3.6 - 2015-10-01 - Dustin Bolton Stash v2: Fixed extra pipe (|) under usage bar when remote file management is disabled. Stash v2: Fixed extra slash (/) when sending a file of an unknown backup type such as the test file. Doubled loopback test timeout from 4 seconds to 8 seconds for slow hosts. Additional checking and enforacement of data types in various areas. 6.3.3.7 - 2015-10-02 - Dustin Bolton Deployment: ImportBuddy now runs with the max execution time used for chunking based on the max execution time set in the advanced settings just prior to beginning Deployment. 6.3.3.8 - 2015-10-02 - Dustin Bolton Fixed call to wp_mail() if it does not exist yet due to running before WordPress has fully initialized. 6.3.3.9 - 2015-10-02 - Dustin Bolton Fixed BackupBuddy settings import/export thickbox not displaying due to recent update. -- Glenn Ansley 6.3.3.10 - 2015-10-02 - Dustin Bolton Added datestamp to data parameter in init_global.php backupbuddy_sync_add_notices() method for Sync API. 6.4.0.1 - 2015-10-05 - Dustin Bolton New BackupBuddy Stash v2.0 Remote Destination (no longer in beta). New "Stash v2.0" Remote Destination. Stash v2 introduces bursting in addition to chunking, resulting in significant protection against timeouts, even in cases of intermittent server 'slowdowns'. The best Stash destination ever. Less memory usage. Maximizes throughput per chunk while at the same time adapting as server conditions change, chunking as needed. 'Learns' as it goes, adjusting to your server's capabilities on the fly, maximizing transfer speeds while adjusting for bandwidth and storage I/O fluctuations as needed. Requires PHP v5.3.3 or newer. Remote Destinations New Stash v2.0 remote destination. By default now stores all backups of all types, not limiting remote numbers. Configure via this destination's settings. All destinations now have an Advanced Option to disable the destination. When disabled the destination cannot be sent to and remote files cannot be viewed until re-enabling. Many bug fixes and various improvements to reliability and troubleshooting ability. Settings Added support for a variable when configuring additional database tables to include or exclude. The variable may be used by placing {prefix} in place of the current site's database prefix as defined by global $wpdb->prefix. Added new backup filename format options for displaying the time including 24 hour format and Unix timestamp formats. Added new backup filename format option for including the backup profile name in the filename. Other Quick Setup Wizard now lets you set up your Stash destination faster than ever, just by entering your iThemes login. Easy. ImportBuddy: Added button to download Status Log as a .txt file. Importbuddy: Improved reliability when importing chunked database tables. Added failsafes against making too many backps resulting in massive amounts of inadverdtant backup storage. Many misc bug fixes and various improvements. Deployment: Increased remote API call timeout defaults to 30 seconds unless otherwise overridden (up from 10 sec). Dropbox v2 Destination: Removed low transfer speed cutoff resulting in some connections prematurely being terminated. Changed alt cron load URL to load default admin page instead of BackupBuddy Backups page. -- Glenn Ansley 6.4.0.2 - 2015-10-06 - Dustin Bolton Fixed one-time warning for users upgrading that have no remote destinations. Fixed FTP remote destination path picker not working when editing an existing destination. -- Glenn Ansley Updated plugin support URL to point to ithemes.com/support instead of forums. 6.4.0.3 - 2015-10-09 - Dustin Bolton Fixed Remote Destination Stash v2 being unable to manually delete stored backups. 6.4.0.4 - 2015-10-17 - Dustin Bolton Fixed Multisite Export failing integrity check if fileoptions file not found as it deduces backup type as 'full' instead of the correct 'export' type. 6.4.0.5 - 2015-10-20 - Dustin Bolton Fixed undefined index when an old destination is loaded in AJAX destination tab due to lack of 'disabled' key. UTF-8 encoding fixes for Deployment Push & Pull. - Glenn Ansley 6.4.0.6 - 2015-10-21 - Dustin Bolton Fixed undefined URL in Malware scanner due to issue introduced in recent quick release. - Glenn Ansley 6.4.0.7 - 2015-10-22 - Dustin Bolton Fixed Remote Destination send progress status bar size. Stash2: Added delayed upload confirmation verification if initial upload confirmation does not complete within 15 seconds instead of giving up there. - Glenn Ansley, Dustin Bolton Deployment: Fixed UTF-8 file issues during Push/Pull resulting in error halting Deployment. 6.4.0.8 - 2015-10-23 - Dustin Bolton Stash2: Fixed issue where Stash API connection timeout could result in failure when running PHP versions OLDER than v5.3 as string gets inadvertantly cast to array. 6.4.0.9 - 2015-10-27 - Dustin Bolton Cron system now can only run once per PHP page load. 6.4.0.11 - 2015-10-30 - Dustin Bolton Fixed cron issues. Rolling back to 6.4.0.8 contents. 6.4.0.12 - 2015-10-31 - Dustin Bolton Improved performance removing excess crons created by v6.4.0.9. 6.4.0.13 - 2015-11-04 - Dustin Bolton Removed misc. extra unused sftp files. Fixed various issues when adding a schedule as 'disabled' not displaying things properly. -- Glenn Ansley FEATURE: Cron system now only runs one single BackupBuddy operationg per page load to help improve performance. Cron system: BackupBuddy by default will now only run one scheduled BackupBuddy method via cron per PHP page load. New Advanced setting "Limit to single cron method per pass". This prevents a second method from potentially running when there is little to no runtime remaining. Logs into Status Log if encountered for the process_backup method. Applied v6.4.0.9 update with additional fixes to handle migration of all existing cron tags. Additional checks in housekeeping help prevent old tags from lingering/returning including faulty unused tags. Moved cleanup functions into housekeeping class. Server Tools page: Improved cron array value readability. Server Tools page: Cron period now shows user-friendly text. Internal cron tag viewable by hovering the period. ENHANCEMENT: Server Tools page: Added new listing of all registered schedule intervals to Cron section. ENHANCEMENT: Updated most direct mysql calls to support new mysqli methods as available by making use of wpdb class throughout BackupBuddy and ImportBuddy. Remaining items to be updated soon. ImportBuddy mysql test now makes use of wpdb class. -- Glenn Ansley Deployment: Fixed Confirm button returning an error about expected '1' with wrong charcode instead of detailed error message when something goes wrong. Deployment: Made confirmation more robust and provide more error details if it does happen to fail. Stash v2 Destination: Fixed Copy to local site from remote not working. FEATURE: Added new schedule intervals: Twice yearly, Every 3 Months, Every 6 Hours. 6.4.0.14 - 2015-11-09 - Dustin Bolton Changed Error #98328923 to Warning #98328923 as it is often temporary. ImportBuddy: Database connection test now supports mysqli (required for instance by PHP7). -- Glenn Ansley ImportBuddy: Updated wp-db.php class to most recent WordPress version in anticipation of full mysqli support. ImportBuddy: test-db.php now suppresses error logging to PHP error_log when trying to drop temp test table. ImportBuddy: Added additional error catching and logging when database test returns a non status 202 HTTP response, including displaying raw error data. Rollback Undo: Updated _rollback_undo.php to support mysqli (required for instance by PHP7). Rollback Undo: Various improvements to error logging, wording, and status messages. Multisite Export: Fixed problem where users may not always be exported as expected. FEATURE: Support for PHP7 and MySQLi through BackupBuddy in preparation for PHP7's official release. 6.4.0.15 - 2015-11-10 - Dustin Bolton ImportBuddy: Fixed mysqli_real_escape_string() missing parameter when using mysqli. 6.4.0.16 - 2015-11-10 - Dustin Bolton PHP7 compatibility updates removing deprecated constructor calls. Updates to pclzip, sftp phpseclib. 6.4.0.17 - 2015-11-11 - Dustin Bolton ImportBuddy: Fixed potential fatal error of call to undefined function mbstring_binary_safe_encoding() under some situations. 6.4.0.18 - 2015-11-11 - Dustin Bolton Amazon S3 destination v1: Fixed undedined CURLOPT_CLOSEPOLICY in PHP v5.6+. 6.4.0.19 - 2015-11-11 - Dustin Bolton Fixed three instances of issues involing constructor updates for PHP7 in phpseclib library. 6.4.0.20 - 2015-11-12 - Dustin Bolton ImportBuddy: Fixed wp-db missing did_action() call in some situations. 6.4.0.21 - 2015-11-12 - Dustin Bolton Fixed data version update to 13 in activation. 6.5.0.0 - 2015-11-17 - Dustin Bolton Full release of all changes found in 'Quick Release' versions 6.4.0.1- 6.4.1.21. Updated Malware Scan link URL. -- Glenn Ansley Full support for PHP7 and Mysqli. Better cron reliability by limiting BackupBuddy actions to one per page load. Server Tools Page: Improved Cron section. Added new schedule intervals: Twice yearly, Every 3 Months, Every 6 Hours. Misc Multisite fixes. 6.5.0.2 - 2015-11-17 - Dustin Bolton Fixed page title being to small as of WordPress v4.4. Changed h2 to h1 for title function. - Ty Carlson 6.5.0.3 - 2015-11-17 - Dustin Bolton ImportBuddy: WP_CONTENT_DIR now set to handle check in wp-db class on failure. 6.5.0.4 - 2015-11-24 - Dustin Bolton Added check for empty options in pb_backupbuddy::load() and retries database again after short wait to help prevent loss of settings if database was missing. WordPress returns false for both no data found as well as a DB error. -- Glenn Ansley 6.5.0.5 - 2015-12-01 - Dustin Bolton Google Drive Destination: Fixed archive limiting problems when Google Drive did not respond with directory listing of uploaded files. -- Glenn Ansley ImportBuddy: Changed data from ARRAY_N to ARRAY_A for 'SHOW TABLES' in _dbreplace.php; Removed GTA testing from db test. -- Glenn Ansley 6.5.0.6 - 2015-12-01 - Dustin Bolton ImportBuddy: Removed collation check on import of query. Since this data was already in database it does not need a new check. -- Glenn Ansley 6.5.0.7 - 2015-12-08 - Dustin Bolton Fixed tab styling on Settings page for WordPress v4.4 trunk. - Ty Carlson Fixed undefined index when importing an older backup with a newer ImportBuddy due to unknown previous Mysql version. - Jeremy Trask Fixed file permissions error on Windows when deleting files in some cases due to permissions. - Glenn Ansley Removed ending ?> at bottom of several files with whitespace after to reduce introducing unexpected whitepsace. 6.5.0.8 - 2015-12-09 - Dustin Bolton Fixed missing limit_single_cron_per_pass default and settings option. 6.5.0.9 - 2015-12-09 - Dustin Bolton S3 v2 Destination: Added pagination and option to configure the max number of items to show during file listing. S3 v1 Destination: Limited to only showing 200 files. Please upgrade to S3 v2 if you want to see more files in the file listing. 6.5.0.10 - 2015-12-10 - Dustin Bolton Fixed cron action limiting title on Advanced Settings page. 6.5.0.11 - 2015-12-22 - Dustin Bolton Removed stale transient cleanup as it did not work properly, deleting timeout setting but leaving actual transient. 6.5.0.12 - 2015-12-28 - Dustin Bolton Fixed migration error due to file transfer taking a long time. - Glenn Ansley 6.5.0.13 - 2015-12-28 - Dustin Bolton Fixed undefined index for schedule on_off for old schedules. FEATURE: Added new Advanced Option "Force Internal Cron" which forces uses of BackupBuddy's own simulated cron instead of the WordPress cron to attempt to work around web host caching. This may be limited to manual backups only. 6.5.0.14 - 2016-01-09 - Dustin Bolton Disabled cron pass limiting until next version. 6.5.0.15 - 2016-01-13 - Dustin Bolton Removed cleanup_temp_tables() call. 6.5.0.16 - 2016-01-18 - Dustin Bolton Fixed AJAX compatibility with WPML 6.5.0.18 - 2016-01-01 - Dustin Bolton Quick Release of upcoming core functionality improvements in next version. 6.5.0.19 - 2016-01-02 - Dustin Bolton Removed next version alert notices and settings. 6.5.0.20 - 2016-01-03 - Dustin Bolton Fixed wp-config.php existing in parent directory resulting in it being omitted from backup and failing integrity check as a result. 6.5.0.21 - 2016-01-03 - Dustin Bolton Added random parameter to end of download link to prevent .zip from being at end of URL due to some hosts blocking that. Merged browse-files-fix. - Glenn Ansley Disable Browse & Select for FTP destinations with File Management disabled. Merged disable-browse-select. - Glenn Ansley 7.0.0.0 - 2016-02-08 - Dustin Bolton FEATURE: BackupBuddy Stash Live Requires PHP v5.3 or newer. PHP v5.3 was released June 30th, 2009. The easiest to use, most shared hosting-friendly backup solution, without sacrificing any power. Live backup of all content, snapshots stored to Stash, and all files scanned for malware and viruses. Mirrors your complete site including files, database, and all WordPress content offsite to BackupBuddy Stash Live servers, keeping your backup in sync with your site. Live backup of WordPress database changes as they occur, including periodic full database dumps to insure nothing gets out of sync. Backup of all site files to Live servers, scanned regularly for changes, new, or deleted files. Schedule to regularly snapshot zip files of all the data stored on the BackupBuddy Stash Live servers. Option to manually create a snapshot of the stored data. Snapshotting results in a full backup zip file, database only backup zip file, a zip of the theme directory, and a zip of the plugin directory. Snapshots are fully BackupBuddy compliant zip files. Snapshots are fully scanned for malware and viruses, able to catch infections not normally found by front-end only scanners. Automatically requests BackupBuddy Stash Live servers 'ping' the site during Live activity to prevent delays between steps for low activity sites. Your latest snapshot zip file is stored for a week regardly of whether it is also set to save into Stash. Snapshots may be stored indefinitely in your Stash storage, limited only by your Stash quota. Advanced options to control additional inclusions or exclusions beyond your BackupBuddy defaults. Easy to use. Sign in with your iThemes login and BackupBuddy Stash Live immediately starts backing up your site. Incremental: only changed files are transferred, saving server resources and time. Regular file auditing. Not only are file transfers verified as they occur but also all files are regularly verified against the BackupBuddy Stash Live server to insure they are still properly in sync. Works on local development sites as long as either a) site activity exists (such as by you using the wp-admin) or b) you stay on the BackupBuddy Stash Live page to continue to push the cron along. New Sync verb backupbuddy-get-liveStats for retrieving local catalog/state statistics such as those shown on the BackupBuddy Stash Live page. Live update of stats when viewing the BackupBuddy Stash Live page. FEATURE: Stash (v2) destination now requests Stash Server to ping site whenever chunking commences to help push the cron along for inactive sites. FEATURE: Added single retry when attempting to schedule a one-time or recurring event in case there is a temporary problem. FEATURE: Only one BackupBuddy cron action may run per PHP page load. Subsequent actions will be rescheduled for the next load. FEATURE: If any maximum log file size is exceeded it is now trimmed down to 50% of its size (keeping most recent 50%) instead of completely deleting the log file. ENHANCEMENT: Adding remote destinations are now grouped by "Preferred", "Normal", and "Legacy" to make selecting destinstions easier. ENHANCEMENT: New option to limit the number of files returned in Amazon S3 (v2) destination. Defaults to 250 files per page. Resetting plugin settings to defaults no longer resets log_serial value. Improved cron chaining via spawn_cron(). Fileoptions: Improved handling of attempt at reading locked file. Retries twice after 1 second delay each time to try and wait for unlock. Fixed backup profile name option dividing profile name and type with underscore rather than dash. Moved Advanced Setting to override Maximum Execution Time detection from 'Database' to 'Overall' section as it applies to other processes besides database chunking, including BackupBuddy Stash Live chunking. Improved remote file send fileoptions cleanup performance. Remote send fileoptions cleanup now also removed lock file (if exists). Deployment no longer sends error emails for failed remote sends. Now limiting the maximum number of notifications (as used by Recent Activity page & Sync) to 25 most recent notifications to prevent excess notification buildup. Added new deepscandir() to replace deepglob() as deepglob() did not support directories or files beginning with a period. Anti directory browsing function now recursively creates directory if needed. S3 (v2) destionation: Fixed 'Next Page' button showing even if there are no more pages. S3 (v2) destination: Fixed inability to delete remote files due to extra slash in path. Stash (v) destination: Fixed long load times due to trying to load backup type from fileoptions. File listing no longer falls back to fileoptions for backup type. fileoptions no longer pauses and re-attempts to read a fileoptions file if the file does not exist; now only does this if the file exists but is empty. Added new {home_url} variable for error notification emails. Error emails now default to mentioning the {home_url} rather than {site_url} in emails. ImportBuddy: Now handles Live-formatting SQL filenames, prefixed with underscores. Imports underscore prefixed timestamped SQL files after normal SQL files, playing them back in the order they occurred. FEATURE: Automatic testing of the reported maximum PHP execution time. Improved reliability of traditional backups, remote destination sends, Deployments, and BackupBuddy Stash Live. Many servers report their maximum PHP execution time as a higher number than is actually available. This interferes with BackupBuddy's chunking during database backups, file transfers, and other operations which require a lot of time. As of v7.0 BackupBuddy will actually test the available runtime and use the lesser value between the reported and tested numbers to ensure that chunking commences before time runs out, drastically reducing the chance of timeouts during any procedure where chunking is available and the server is misreporting runtime. Added additional logging when error is returned accessing remote API during deployment. Fixed AJAX URL compatibility issue with WPML plugin. New default log size of 3MB. Updated to new default if old value was either of the old defaults of 10mb or 5mb. Backup steps now schedule their single event slightly in the past to push to top. -155sec. Live schedules -60 into the past to come in second place. Fixed manual triggering of PHP runtime checker not showing results properly. Memory usage logged in Status Logs now indicates current usage rather than peak for better troubleshooting. Renamed "Local Directory" Remote Destination to "Local Directory Copy" to help indicate its purpose better. Added alert to Local Directory Copy destination informing about how BackupBuddy already stores a local copy of backups and that this is for additional copies. FEATURE: Live: Watched for file changes and uploads immediately: Added media, plugins, themes via WordPress. Deleted media and plugins. ENHANCEMENT: Added protection against email flooding if too many error occurs too closely together. Changed EJS template extension from .ejs to .htm to prevent MIME type issues on IIS (Windows) servers. FEATURE: Enhanced emails added with HTML styling for better presentation of notification emails. FEATURE: Quick Setup Wizard now automatically chooses the newest version of a particular Remote Destination compatible with your server. Function running too long message no longer displays for zip file creation step since it tracks the time since zip file growth and warns on that. Now logging currentl sql file to 9010 error log file for troubleshooting. No longer reporting error for failed schedule creations as long as we can verify the schedule does indeed exist. ImportBuddy: Upgraded Stash restore functionality to use new Stash v2 API for improved performance and foreward compatibility. ImportBuddy: Improved Stash restore functionality interface. Deployment: Added new option to compare files between sites based on file hashes for enhanced reliability detecting file changes. Added deprecation notice to old legacy remote destination configuration to help discourage use: Dropbox (v1), Amazon S3 (v1), Stash (v1). No ETA on retirement but further notice as well as more alerts will be displayed prior to retirement. 7.0.0.1 - 2016-02-09 - Dustin Bolton Added improved notice if PHP version is insufficient to run Stash Live. Requires PHP 5.3+. Only loading password hash class if not already defined to avoid conflict with other plugins which always load it. Added 'This may take a while' notice to sending modified files step. Added 15 second delay after a fileoptions file shows finished (eg finished send) before cleanup/removal to prevent removing too early if two processes are running simultaneously. 7.0.0.2 - 2016-02-09 - Dustin Bolton Now cleaning up failed fileoptions file transfers immediately if exceeding file limit. 7.0.0.3 - 2016-02-09 - Dustin Bolton Added additional safeguard to prevent sending more queue data if shutdown already fired. Button to delete all data files now notes that it resets Stash catalog as well. Multisite: Fixed issue where subsites tried to run main network site scheduled backup. PHP7 fix for database backup procedure. -- Glenn Ansley Added additional logging for corrupt fileoptions file when in Live mode (eg corrupt catalog file detected). Fixed fileoptions class to lock fileoptions file before attempting to read. 7.0.0.4 - 2016-02-09 - Dustin Bolton Duplicate SQL queries made in a row now trimmed down to a single query for improved performance / less overhead. Updated options exclusions list for improved performance / less overhead. Updated postmeta exclusions list for improved performance / less overhead. 7.0.0.5 - 2016-02-09 - Dustin Bolton Stash v2: Removed ability to view site files for other sites backed up into Stash, including option to enable this feature. 7.0.0.6 - 2016-02-09 - Dustin Bolton ImportBuddy: Fixed backups in importbuddy.php directory not showing under Windows due to PHP bug: https://bugs.php.net/bug.php?id=42501 7.0.1.0 - 2016-02-09 - Dustin Bolton Fixed potential error being displayed when updating posts when running 7.0.0.5-7.0.0.6. 7.0.1.1 - 2016-02-09 - Dustin Bolton Stash Live on Multisite: Fixed various URLs handling Network Admin format. 7.0.1.2 - 2016-02-09 - Dustin Bolton Stash Live on Multisite: Fixed Disconnect from Stash URL for Network Admin. 7.0.1.3 - 2016-02-10 - Dustin Bolton Added additional logging to PHP runtime tester. Upgraded bundles S3 v2 cacert.pem. 7.0.1.4 - 2016-02-10 - Dustin Bolton Added /wp-content/cache/ as a default directory exclusion for traditional backups and as a hard-coded default for Stash Live. Added Advanced Troubleshooting Options formatted view of local tables from the catalog. 7.0.1.5 - 2016-02-10 - Dustin Bolton Changed from ASP-style <% %> tags in Stash Live templates to <# #> and {{ }} to avoid conflicts with PHP asp_tags mode. 7.0.1.6 - 2016-02-10 - Dustin Bolton fileoptions unlock() calls now by default only unlock locks set by their own instance to preserve integrity. Stash Live: Fixed problem where process may regress to an earlier percent completion due to corrupt catalog. ImportBuddy: Fixed backup file listing not showing. Stash Live Advanced Troubleshooting: Fixed Last Snapshot button. Stash (v2): Fixed remote snapshots not showing up in some cases if www/non- www prefix changed. 7.0.1.7 - 2016-02-10 - Dustin Bolton Fixed some Snapshots and Backups not listing on Stash Live or Stash (v2) destination pages. 7.0.1.8 - 2016-02-10 - Dustin Bolton Removed /wp-content/cache/ as a default exclusion. Increased file send wiggle room to 6 seconds up from 4. Fixed max execution time override not being applied to send time limits. Changed state fileoptions file to be readable even when locked. 7.0.2.0 - 2016-02-10 - Dustin Bolton Full release of quick release updates. Various Stash Live improvements, especially with the first backup not completing. 7.0.2.1 - 2016-02-10 - Dustin Bolton Do not send database update for options update if option_name == ''. 7.0.2.2 - 2016-02-10 - Dustin Bolton Added new variable, $ignore_not_writable, to top of importbuddy.php to allow manual override of the server reporting the directory as not writable. 7.0.2.3 - 2016-02-11 - Dustin Bolton Fixed wait_on_transfers max time minutes not working due to destination settings not being loaded. Fixed Stash Live authentication for site URLs prefixed with www since v7.0.1.6. 7.0.2.4 - 2016-02-12 - Dustin Bolton Added check for curl before running Stash Live and displaying alert is missing in addition to PHP version check. Changed error 8439734 to 5002. truncate_file_beginning() performance significantly increased (1-2 magnitudes). Fixed Stash Live scripts running on admin pages when user that does not have access to BackupBuddy loads them. 7.0.3.0 - 2016-02-12 - Dustin Bolton Added BackupBuddy version into Stash Live logging. 7.0.3.1 - 2016-02-16 - Dustin Bolton Changed message when trying to unlock a fileoptions file of a different ID to be less worrisome. These are normal to see in the log. If URL ends in .zip, add random additional parameter to help get around Varnish-related issues on some servers. - Glenn Ansley Properly update 'next run' settings when overwriting existing schedules on settings import. - Glenn Ansley Fixed Stash Live additional exclusions list trimming trailing slash. Added additional logging to track down issues with lock ID. When cron kicker fires too soon fixed time ago being wrong. When cron rescheduler triggers it now logs the previous method as well. schedule_single_event limits scheduling of 'live_periodic' method to once to prevent potential multiple schedules due to its rapid activity. PHP runtime test with a blank result now does not error. Fixed BackupBuddy version being logged in Live periodic functions. Also added WordPress version. 7.0.3.4 - 2016-02-16 - Dustin Bolton getBackupTypeFromFile() no longer scans zip files that do not behin with 'backup-'. fileoptions now checks if file exists before checking lock status. fileoptions now deletes any existing lock file if actual fileoptions file for it does not exist. Added version number to Stash Live status screen to aid in support when customers provide screenshots. - Ty Carlson 7.0.3.5 - 2016-02-16 - Dustin Bolton Fixed deepscandir() startAt position not being set when chunking. 7.0.3.6 - 2016-02-16 - Dustin Bolton Failure to create DAT file during Stash Live halts process as it is needed. Duplicate calls to run live_periodic cron twice in same page load now drops second in a row to run. No need to reschedule as two should not run at the same time. 7.0.3.7 - 2016-02-16 - Dustin Bolton Fixed excluded files not getting immediately deleted. 7.0.3.8 - 2016-02-17 - Dustin Bolton Now excluding backupbuddy_temp directory from Stash Live. Now excluding Sucuri temporary files (such as IP blocks, etc) from Stash Live. Added additional details for Stash Live advanced troubleshooting option to view Snapshot status. Now resetting failed file send attempts on daily init for Stash Live files that exceeded maximum fail counter. 7.0.3.9 - 2016-02-17 - Dustin Bolton ENHANCEMENT: Updated Google Drive remote destination instructions. - Glenn Ansley Updated PHP maximum runtime tester to help avoid triggering PHP bug resulting in hanging process. - Chris Jean Update Stash destination wording when no backups are found. Updated MO file for German translations. - Glenn Ansley Now excluding 3rd party backup plugins' backup files and Sucuri temporary files for Stash Live by default. Misc improvements to Stash Live logging. 7.0.3.10 - 2016-02-22 - Dustin Bolton Fixed to local table listing for Stash Live. Now clearing backed up timestamp for database files just prior to sending new updated copy for better tracking of unsent files. Added logging of first 5 files and tables pending send when running wait_on_transfers step. Increased wait_on_transfers step delay to 10 seconds of sleep, from 5. Added additional logging to wait_on_transfers step to troubleshoot send problems. 7.0.3.11 - 2016-02-22 - Dustin Bolton Stash Live status now attempts to strip any PHP errors or warnings preceeding returned JSON data. _statsPoll.php. Stash: Fixed backup files not being sent into backup type directory due to backup type detection failing, thinking file did not begin with "backup-". Fixed backup type detection always failing to detect type. 7.0.3.12 - 2016-02-22 - Dustin Bolton Added additional error notifications to catch certificate issues sending to Live. No longer a fatal error if during remote file deletion a send fileoptions file is stuck locked. 7.0.3.13 - 2016-02-24 - Dustin Bolton Fixed backup listing in Windows displaying an extra backup. Added new Stash Live 'View Troubleshooting Data' button to display an overview of all troubleshooting data. 7.0.4.0 - 2016-02-26 - Dustin Bolton Various Stash Live improvements, including many updates from Quick Release versions. Now only outputting status when adding many files at once every 20 items instead of each to reduce log I/O overhead. Fixed missing mysql_error check in mysqlbuddy.php - Glenn Ansley Better UI handling if Stash Quota not currently available - Ty Carlson Check PHP version is new enough before giving Stash Live notice. - Glenn Ansley Fix undefined variable in Multisite. - Glenn Ansley Change option for default plugin access value from 'administrator' to 'activate_plugins' to match default options. - glenn Ansley Stash Live: Improved Troubleshooting via new "View Troubleshooting Data" button. Added new Stash Live 'View Troubleshooting Data' button to display an overview of all troubleshooting data. Now displays possible detected memory timeouts. Now displays PHP and BackupBuddy logged errors and warnings. Now displaying both local and master memory limit values for reported PHP memory limit. Added new "Download Troubleshooting Data" button at bottom of Stash Live page. Misc fixes. 7.0.4.1 - 2016-02-29 - Dustin Bolton Added additional logging to file signature updating step to detect cause of backup count decrementing a large amount in Stash Live. Added additional error catching to catalog load failure during reload after closing catalog during file send in Stash Live. 7.0.4.2 - 2016-02-29 - Dustin Bolton Stash Live advanced troubleshooting: Fixed displaying notices as 0 available when none available. Now only showing v7 banner if in standalone or multisite main network site (no longer shown for subsites). 7.0.4.3 - 2016-03-01 - Dustin Bolton Deployment failure connecting to API now also logs HTTP code and message to help detect cause of failure. Fixed Stash Live continuous backup of term database updates causing SQL error, resulting in failure, when updating terms. 7.0.4.4 - 2016-03-01 - Dustin Bolton Inability to clean SQL timestamped files due to timeout no longer fails as this may just be a delay on our end. 7.0.4.5 - 2016-03-01 - Dustin Bolton Added additional logging to DAT file creation function to troubleshoot write problems. DAT file creation function now creates containing directory via mkdir recursively. 7.0.4.6 - 2016-03-01 - Dustin Bolton If Stash Live log file exceeds 10mb it is deleted rather than truncated to avoid memory issues blocking truncation. 7.0.4.7 - 2016-03-01 - Dustin Bolton Server Tools page updated to recommend v5.6 for PHP and mysql. Warns if PHP < 5.3. Now hiding unlock() blocking status with lock ID for fileoptions. Increased log size sent for Stash Live troubleshooting data. Added additional 8 second wiggle room to file scan to allow for saving discovered files into catalog. Fixed false error about unable to create directory for dat file. 7.0.4.8 - 2016-03-04 - Dustin Bolton Added more logging to file audit deletion. Traditional backups: Reduced chance of race conditions with fileoptions loading by closing and unlocking fileoptions prior to spawning cron for next step. New log entry: "Closing & unlocking fileoptions." Added additional logging to Stash Live fileoptions loading, including backtrace of calling class & function for troubleshooting. Added burst size logging to S32 multipart log. 7.0.4.9 - 2016-03-04 - Dustin Bolton Fixed incorrect 'Attention! Remote storage lists fewer files' notification alert when audit step chunked. False positive. Stash Live: Likely fixed bug where process could reset back, thinking it needed to resend most files, if the audit step chunked due to the audit start timestamp getting reset each chunked process. This resulted in the signatures step thinking files had not had their 'v' key updated to a timestamp within the audit begin and audit finish range. The 'v' timestamp would be BEFORE the audit begin timestamp since it was reset to a later timestamp during each chunk. 7.0.5.0 - 2016-03-04 - Dustin Bolton Fixed problem with Stash Live restarting its progress back to an earlier state when almost done. 7.0.5.1 - 2016-03-08 - Dustin Bolton Fix PHP notice due to addNotification message parameter being required. Now optional. Now escaping in password form when using pb form class. - Glenn Ansley Fixed Stash Live PHP version too old bar from not showing. - Glenn Ansley S3 (v2) destination explicitly passes API version of 2006-03-01. addNotification() message now optional. 7.0.5.2 - 2016-03-09 - Dustin Bolton Removed extraneous print_r statement from importbuddy. 7.0.5.3 - 2016-03-15 - Dustin Bolton esc_attr only used in form class if function exists to handle importbuddy. - Glenn Ansley 7.0.5.4 - 2016-03-15 - Dustin Bolton ImportBuddy: Fixed destination URL defaulting to http:// even when connected via https://. ImportBuddy: Fixed homeurl being set to siteurl even when option to customize URL was not checked. Stash Live: If made it to the Snapshot step but there are zero files and/or tables in the catalog then halt backup to protect integrity against making a Snapshot missing files. Fixed issue where if deepscandir() halted due to making no progress then the string error was not caught. Now properly halting periodic process. A detected maximum PHP runtime less than 29 seconds now is marked as a fail under Server Tools as all servers should provide at least 30 seconds of time. 7.0.5.5 - 2016-03-21 - Dustin Bolton Added various additional logging for troubleshooting Stash Live. Added display of how long ago the log file was modified when viewing Stash Live log. Google Drive: Added new option to disable gzip compression. - Glenn Ansley Beta: Now testing handling archive trimming timing on the Stash API side for more consistency on handling removal of stale backups. Also fixes issues when only one set of backups can sit in storage. Improved error logging when fileoptions is locked to give better instructions on trying to figure out cause. Removed logging of email notification body to status log since it is HTML now and long. Additional logging added to Rollback failure to copy undo script into site root. Now hiding Live and Site destination types from listing when adding a new destination post-backup. 7.0.5.6 - 2016-03-24 - Dustin Bolton Fixed no new Stash Live Snapshot error email notification referencing traditional backup notification limit rather than Stash Live limit in email message. Also changed default notification period from 45 days without backup to 10. Fixed Stash Live archive trim param passed in snapshot action sending delete = true. Fixed Google Drive send error message not being logged. 7.0.5.7 - 2016-03-29 - Dustin Bolton ImportBuddy: Added additional logging to database migration step of import. ImportBuddy: Fixed broken subchunking of bruteforce substep of database migration step. Major fix. ImportBuddy: Fixed .htaccess migration happening each step during migration step. FEATURE: Added new PHP memory test. Added new Advanced Setting for PHP runtime test. Server Tools -> Server Information: PHP memory limit now reports a failure if less than 128MB of memory. Warning if above 128MB but below 256MB. Added new Advanced Setting for PHP memory test. 7.0.5.8 - 2016-04-04 - Dustin Bolton Deployment no longer overwrites iThemes Sync authentication and other settings on push/pull of database. Deployment destination settings now display site url of the currently set API key. Server Tools: While Tested PHP memory information is pending the status is marked as OK instead of FAIL. Server Tools: PHP memory test now gives some wiggle room if tested memory is slightly below a threshold so it does not needlessly report a FAIL if it is only a few MB off. Added "Set to 0 (zero) to disable this test." text to PHP runtime and memory test tooltips. 7.0.5.9 - 2016-04-06 - Dustin Bolton Multisite: Housekeeping function now only runs for main site, not individual subsites which results in it running too often. 7.0.5.10 - 2016-04-06 - Dustin Bolton Amazon S3 (v2) remote destination: Fixed 'Copy to local' feature not working and silently failing. Functionality broke at unknown time ago. Amazon S3 (v2) remote destination: Updated codex instructions for creating user and settings permissions for bucket access to add simpler method. 7.0.5.11 - 2016-04-06 - Dustin Bolton Google Drive destination: Now hiding remote folder viewer when Remote File Management is disabled. Don't import Stash destinations or Server Tools values with Settings import. - Glenn Ansley 7.0.5.12 - 2016-04-08 - Dustin Bolton backupbuddy_core::calculate_tables() now makes sure returned table listing has no duplicates (eg if user enters duplicates in additional includes ). Added additional check in housekeeping function to prevent it running for Multisite subsites. 7.0.5.13 - 2016-04-08 - Dustin Bolton Deployment / Sync compatibility: On Deployment do not copy hide backend / custom login URL settings between sites. 7.0.5.14 - 2016-04-11 - Dustin Bolton Added deprecation warnings to logs for Amazon S3 (v1) and Stash (v1) destinations suggesting upgrading to the newer v2 versions. Multisite import: Added additional logging to step 5 import into Mulisite for troubleshooting. Added additional checks to prevent PHP runtime and memory tests from running too often. ENHANCEMENT: Stash Live now processes local file deletions to remote storage in bursts instead of one at a time, significantly reducing API calls needed, significantly improving performance on files being removed from remote storage. Stash Live: Fixed fatal PHP errors not showing in Advanced Troubleshooting Log due to only first line being noted. Stash Live: Advanced Troubleshooting Log now also includes file sizes and modified times of several log files. Stash Live: Now checking for pending files to send at end of audit step prior to running Snapshot step so 'Creating Snapshot' status is not shown if that step is going to be stepped anyway. Reduces confusion that snapshot has begun when it has not. General Settings page saving no longer updates backupbuddy_live_jump transient if Stash Live is not set up. 7.0.5.15 - 2016-04-11 - Dustin Bolton FEATURE: Added warning to Server Tools -> Cron tab if a cron has passed its runtime without running to detect cron problems. 7.0.5.16 - 2016-04-12 - Dustin Bolton Beta importbuddy version stats. 7.1.0.0 - 2016-04-12 - Dustin Bolton Full release of Quick Release versions. Any users that experienced Stash Live problems early at v7.0 launch should give v7.1 a try. Since the last major release: Performance and reliability improvements to Stash Live. Major performance boosts. Added easy to retrieve Stash Live troubleshooting data for quick troubleshooting. Multisite support improvements for Stash Live backups and imports. PHP runtime tester added. PHP memory tester added. Various improvements to Server Tools tests. Various improvements to ImportBuddy process. Various improvements to Deployment process. 7.1.0.2 - 2016-04-12 - Dustin Bolton Improved detection if importbuddy process is a restore vs migration. 7.1.0.3 - 2016-04-13 - Dustin Bolton Dropbox (v2): Updated SDK version to latest v1.1.6 to support new SSL and certificate changes. Stash Live: Fixed user meta ID query for continuous database tracking. 7.1.0.4 - 2016-04-18 - Dustin Bolton Deployment wait for remote response now capped at adjustedMaxExecutionTime() which uses detected value (or manual value if overridden) instead of just 30 seconds. 7.1.0.5 - 2016-04-19 - Dustin Bolton Dropbox (v2) destination no longer throwing error on non-64-bit systems. Now only logging a BackupBuddy warning noting this. 7.1.0.6 - 2016-04-20 - Dustin Bolton FEATURE: Amazon S3 (v2): Added support for S3 Transfer Acceleration to increase transfer speeds 50%-500% (or even more if sending to buckets out of country). See https://aws.amazon.com/blogs/aws/aws-storage-update-amazon-s3-transfer- acceleration-larger-snowballs-in-more-regions/ for more information. 32-bit architecture is now a Warning on Server Tools page. Stash Live: Holding failed transfer logs longer for troubleshooting. ImportBuddy: Fixed some notice typos on first page and scrollbars around file path. Stash Live: Advanced troubleshooting now logs any detected crons which should have already run but have not, indicating cron malfunctioning. Stash Live: Fixed 'Disconnect from Stash Live' not prompting for authentication resulting in server-side not properly disconnecting accounts. 7.1.0.7 - 2016-04-20 - Dustin Bolton Now removing Stash Live admin bar when menu item is hidden. - Glenn Ansley Updates to Sync logging. - Lew Ayotte Stash Live: Don't add log entries to report Logging is turned disabled. Report on View Log screen. - Glenn Ansley Stash Live: When Logging is changed from Enabled to Disabled, add an entry in the Log to note that. - Glenn Ansley Stash Live: Add percentage tracker to file size calculator. - Glenn Ansley Stash Live: Don't log Catalog additions if log level isn't 3. - Glenn Ansley Amazon S3 (v2): Added additional logging when etag verificiation fails for troubleshooting. Stash Live: No longer trimming send logs before each logs' respective fileoptions file is logged to aid in troubleshooting. (log was being purged too soon making it difficult to view failure details) 7.1.0.8 - 2016-04-22 - Dustin Bolton Fixed undefined index for pb_backupbuddy::$options['max_execution_time'] when running in importbuddy. Fixed mysql_error() call without checking to see if it was available. - Glenn Ansley Fixed Dropbox (v2) error calling PB logging due to namespacing. 7.1.1.0 - 2016-04-25 - Dustin Bolton FEATURE: Improved Sync logging for new Sync features. Release of quick release updates 7.1.0.0-7.1.0.8. Stash Live: Fixed single quote in JSON data breaking javascript due to some last_status messages. 7.1.2.0 - 2016-05-01 - Dustin Bolton Stash Live: Added headway cache directory to auto-exclude. Added additional logging for Stash API calls failing to track URL that failed. Added additional logging to S3 (v2) API calls failing to track URL that failed. Improved stats on whether restore is a deployment. Fixed Stash Live error message showing too long after file send errors fixed. 7.1.2.1 - 2016-05-02 - Dustin Bolton Loading fileoptions now logs how much memory increased to help get an idea of memory usage, especially for Stash Live with large numbers of files. 7.1.3.0 - 2016-05-13 - Glenn Ansley Release of Quick Release updates 7.1.2.0-7.1.2.1. Remove advanced setting that clashes with old settings name and could potentially cause undesired results. 7.1.3.1 - 2016-05-16 - Dustin Bolton Added blank standalone preloaded function for _doing_it_wrong(). Reported max execution times below zero now treated as default 30 seconds. 7.1.3.2 - 2016-05-25 - Dustin Bolton French translation roughly edited to instruct against using ImportBuddy password the same as WordPress. Serial calculation from zip filename made more robust against unexpected whitespace. FEATURE: Added new advanced option "Cron request timeout override" which allows overriding the Cron Loopback default timeout value of 0.01 seconds to a higher value. This is useful for servers which are unable to load wp-cron.php within 0.01 seconds, resulting in cron failure and multiple crons to become past-due. S3 (v2) destionation: Added additional logging between reading in file chunk and beginning actual file upload to troubleshoot failure point better. 7.1.3.3 - 2016-06-01 - Dustin Bolton Cron request timeout override validation now number instead of int to allow decimal values. ENHANCEMENT: Stash Live: Added new 'memory' section to Advanced Troubleshooting Log to help identify memory problems based on actual calculated requirements based on catalog size and base memory usage of site compared to tested and/or reported PHP memory values. Also flags issues found into highlights section. Also scans log files to find largest seen memory usage for warning if getting to close to limits. Stash Live: Various enhancements to memory issue detection. Stash Live: Updated 'Creating Snapshot' step to note that is only happening if due for clarity. 7.1.3.4 - 2016-06-07 - Dustin Bolton FEATURE: HTML email notification template can now be overridden with custom template. To do so copy the existing default template located at /wp- content/plugins/backupbuddy/views/backupbuddy-email-template.php into your theme directory at /wp-content/themes/backupbuddy-email-template.php. You may then edit this new template file to your liking. Its existance automatically enables using the new template rather than the default. Misc minor bug fixes. Fixed file exclusion of wp-config.php not being prevented. File backupbuddy_dat.php can no longer be excluded as it can break database backups. Warning added when checking box to disable backup integrity check. Description text also updated. 7.1.3.5 - 2016-06-08 - Dustin Bolton ENHANCEMENT: Stash Live: Added alerts section to troubleshooting log to alert on highlights that are very likely to be a problem. ENHANCEMENT: Stash Live: Added automated running of troubleshooting data process via cron to detect possible causes of problems if Snaphost has not run in 72 hours or more. ENHANCEMENT: Stash Live: Added new potential problems alert to alert user if potential issues are detected such as low memory to aid user prior to having to seek support. Only runs if no snapshot has been made in > 3 days for performance. Auto-clears on successful snapshot or problem goes away and troubeleshooting log is re-viewed. ENHANCEMENT: Stash Live: Potential problem alert now detects definite memory shortages based on tested memory and alerts if no snapshot was made in 72 hours to help indicate actual problem. Also flags in new alerts section of troubleshooting log. 7.1.4.0 - 2016-06-14 - Dustin Bolton FEATURE: Access Permission setting now adds support for restricting to custom roles. Fixed importbuddy.php not being sent with automated send migration. - Glenn Ansley FEATURE: sFTP: Added beta support for sFTP key file. Full release of Quick Release versions 7.1.3.1-7.1.3.5. 7.1.4.1 - 2016-06-16 - Dustin Bolton Stash Live: Added warnings if deep file scan max time is negative, indicating very low php runtime. Updated Google Drive instructions to reflect their changes. Fixed Integrity Check setting to properly indicate that it should only be _UN_selected if instructed by support. Updated Integrity Check setting description for profiles to match global settings text. 7.1.4.2 - 2016-06-17 - Dustin Bolton ENHANCEMENT: Stash Live: A detected PHP execution time limit below 30 seconds displays an alert on the Stash Live page with instructions to contact host. Added some wiggle room to detected PHP value so 1 or 2 seconds below 30 will not result in potential false warning. Stash Live: Troubleshooting log now more explicitly notes low PHP runtime in highlights. Stash Live: Troubleshooting log now note low PHP runtime in 'alerts' section as it is critical if it is below 30 seconds. 7.1.4.3 - 2016-06-20 - Dustin Bolton Removed Windows server performance boost notification as zip.exe/unzip.exe are no longer supported with modern zip library. Stash Live: Fixed bug causing PHP runtime override Advanced Setting to become populated with recent detected value. Stash Live: Max php runtime detected now stored in _max_time variable as to not override manually entered max_time value. Fixed exclusion button for files not working since recent quick release. 7.1.4.4 - 2016-06-21 - Dustin Bolton Fixed PHP warning when running Server Tools cron section via script and not UI. S32, Stash2, Stash Live: Added additional logging of "Guzzle client cainfo" which includes any ca cert path/info overrides to help troubleshoot. S32, Stash2, Stash Live: Added additional logging of "Guzzle client set to not validate peer nor host!" to verify when SSL validation is disabled. S32, Stash2, Stash Live: Added new option to disable validation of host and peer to work around host certificate issues. Use with caution and only if directed by support. S32, Stash2, Stash Live: Now defaulting to using included certificate bundle in options. S32, Stash2, Stash Live: Improved option to control whether bundles or server certificate was to be use. S32, Stash2, Stash Live: Changed option "Use included certificate bundle" to "Use server certificate bundle". ENHANCEMENT: Overdue cron warning now indicates how long past due the cron is. 7.1.4.5 - 2016-06-23 - Dustin Bolton GoDaddy Managed WordPress Hosting now detected, resulting in warnings being displayed (on Stash Live page, traditional backup page, and Server Tools section) as their cron system is currently broken. GoDaddy is aware of their broken cron system but there is not an ETA on is being fixed. Please contact their support for updates. GoDaddy Managed WordPress Hosting now results in a warning being added to the Server Tools page. GoDaddy Managed WordPress Hosting now results in warnings, highlights, and alerts displaying in the Stash Live Troubleshooting data. 7.1.4.6 - 2016-06-23 - Dustin Bolton Form validation "number" requirement no longer rejects a blank string as invalid. 7.1.5.0 - 2016-07-05 - Dustin Bolton Remote destination Dropbox (v1) will cease to function as of September 28, 2016, as Dropbox is retiring it. If you are using this destination you must update to using the newer Dropbox (v2) destination or your remote destination usage will be interrupted. See https://blogs.dropbox.com/developers/2016/06/api-v1-deprecated/ Added additional logging to Stash Live state variable not being an object to aid troubleshooting live periodic. Stash Live: Added warnings if deep file scan max time is negative, indicating very low php runtime. Updated Google Drive instructions to reflect their changes. Fixed Integrity Check setting to properly indicate that it should only be _UN_selected if instructed by support. Updated Integrity Check setting description for profiles to match global settings text. ENHANCEMENT: Stash Live: A detected PHP execution time limit below 30 seconds displays an alert on the Stash Live page with instructions to contact host. Added some wiggle room to detected PHP value so 1 or 2 seconds below 30 will not result in potential false warning. Stash Live: Troubleshooting log now more explicitly notes low PHP runtime in highlights. Stash Live: Troubleshooting log now note low PHP runtime in 'alerts' section as it is critical if it is below 30 seconds. Removed Windows server performance boost notification as zip.exe/unzip.exe are no longer supported with modern zip library. Stash Live: Fixed bug causing PHP runtime override Advanced Setting to become populated with recent detected value. Stash Live: Max php runtime detected now stored in _max_time variable as to not override manually entered max_time value. Fixed exclusion button for files not working since recent quick release. Fixed PHP warning when running Server Tools cron section via script and not UI. S32, Stash2, Stash Live: Added additional logging of "Guzzle client cainfo" which includes any ca cert path/info overrides to help troubleshoot. S32, Stash2, Stash Live: Added additional logging of "Guzzle client set to not validate peer nor host!" to verify when SSL validation is disabled. S32, Stash2, Stash Live: Added new option to disable validation of host and peer to work around host certificate issues. Use with caution and only if directed by support. S32, Stash2, Stash Live: Now defaulting to using included certificate bundle in options. S32, Stash2, Stash Live: Improved option to control whether bundles or server certificate was to be use. S32, Stash2, Stash Live: Changed option "Use included certificate bundle" to "Use server certificate bundle". ENHANCEMENT: Overdue cron warning now indicates how long past due the cron is. GoDaddy Managed WordPress Hosting now detected, resulting in warnings being displayed (on Stash Live page, traditional backup page, and Server Tools section) as their cron system is currently broken. GoDaddy is aware of their broken cron system but there is not an ETA on is being fixed. Please contact their support for updates. GoDaddy Managed WordPress Hosting now results in a warning being added to the Server Tools page. GoDaddy Managed WordPress Hosting now results in warnings, highlights, and alerts displaying in the Stash Live Troubleshooting data. Form validation "number" requirement no longer rejects a blank string as invalid. 7.1.5.1 - 2016-07-13 - Dustin Bolton Stash Live: Status polling now only running on pages not in an iframe to prevent multiple loads when on the Remote Destination page. Improved performance. Stash (v2): Fixed download from Remote Destinations page not working (returned 404). 7.1.5.2 - 2016-08-03 - Dustin Bolton S3 (v2) destination: Fixed undefined index use_packaged_cert. Increased retry attempts from 8 to 30 times when backup process_backup() fileoptions is locked due to long PHP runtime. mail_error() function now defaults to get_option('admin_email') email if none is set on the Settings page for error notifications. Also helpful if settings get lost. mail_error() is now able to function even if plugin settings are missing/corrupt. BackupBuddy plugin settings are automatically backed up regularly in housekeeping function. Corrupt or missing BackupBuddy plugin settings are now automatically restored/replaced with the last working version stored in a settings backup file in pb_backupbuddy log directory. Protected with random 32char string and anti directory browsing. Error notification email will be sent to admin_email. FEATURE: BackupBuddy now automatically backs up and restores its own settings if they become missing or corrupted due to database problems. This will help prevent loss of settings and backups. ENHANCEMENT: Database and file exclusion lists are now resizable. FEATURE: Added new "Delete All Cron Entries" button to Server Tools' WordPress Schedules (cron) section for clearing out all cron entries for all of WordPress. Useful if a plugin clogs the cron system with too many entries. Stash Live: Fixed excluding file(s) already in the catalog not being removed if they have never successfully sent. Stash Live: Added new error when modified time is unable to be determined via stat() such as due to permissions to aid troubleshooting of pending files which never send. Ex: Error #8438934: File modified time unexpectly zero (0). File permissions may be blocking proper modification detection on file `/index.php`. ENHANCEMENT: ImportBuddy: DAT not found error now checks to see if the DAT file is contained within a subdirectory matching the zip file name. This is common if the user unzips the backup zip manually then re-zips the folder, resulting in site contents being inside a subdirectory matching the zip file name. 7.1.5.3 - 2016-08-03 - Dustin Bolton ENHANCEMENT: ImportBuddy: cPanel wizard now supports connecting to https URLs instead of just http. 7.1.5.4 - 2016-08-08 - Dustin Bolton Fixed BackupBuddy settings backup storage location going to wrong directory. Corrected and cleanup added. 7.1.5.5 - 2016-08-11 - Dustin Bolton Now cleaning backupbuddy_dat.php files in root during housekeeping. - Glenn Ansley Suppress error reporting during PHP runtime detection. - Glenn Ansley Suppress error reporting during PHP maximum memory detection. - Dustin Bolton Now clearing Malware Scanner transient pre-backup so it does not linger after restore on new site. - Glenn Ansley Fix bug that breaks importbuddy Step 3 presentation of old DB pass if it includes a double quote ("). - Glenn Ansley Fix importbuddy bug that breaks wp-config.php when password contains a single quote ('). - Glenn Ansley When checking for wp-config.php in parent directory, also make sure wp- settings.php isn't there. - Glenn Ansley Catch instances where fread length param was bad during log file truncation. - Glenn Ansley 7.1.5.6 - 2016-08-17 - Dustin Bolton ImportBuddy: Added additional logging to Deployment load of state file. Deployment: Don't attempt to reset settings if missing during importbuddy resulting in Error #843797944. - Glenn Ansley Fixed count of how many new edits have been made since the last backup. Was showing more changes than had actually been saved. - Gary Harris Added additional logging and checks for Stash Live pending files to prevent hanging transfers. 7.1.6.0 - 2016-08-23 - Dustin Bolton Rollback: Now hiding next step button as process proceeds on its own. FEATURE: Stash Live: Now tracking daily statistics including the number of files and database tables sent and total size of database tables and files sent per day. Displayed under Advanced Troubleshooting Options. FEATURE: Sync: Added support for new daily stats tracking. When creating a new remote destination auto-select the new destination. - Glenn Ansley Skip local ssl verification. Don't show override options in Advanced settings in WP 4.6 or later as 4.6's new default it to skip this verification. - Glenn Ansley ImportBuddy: Fixed version not being appended to asset URLs (js, css) resulting in caches not always getting busted with latest version. Now excluding /error_log from backups by default. These can grow very large. Changed PHP minimum value for Stash Live to a string for some PHP versions not casting it from float to string resulting in failure in version comparison. Release of Quick Release updates 7.1.5.1-7.1.5.6. 7.1.6.1 - 2016-09-02 - Dustin Bolton Improved detection of GoDaddy Managed WordPress hosting to display warning about their broken cron system. Stash Live stats cleanup. 7.1.6.2 - 2016-09-08 - Dustin Bolton Fixed importbuddy asset URL including spaces and other characters after version number. 7.1.6.3 - 2016-09-16 - Dustin Bolton Already-depricated Stash remote destination version 1 will be discontinued September 27, 2016. Please update to Stash v2 before then. ImportBuddy: Fixed undefined index for max runtime if not set by server. Server Tools: Made active plugin listing resizable. Server Tools: Made 'Delete All Crons' button more visible and placed at the right side of the cron listing table. Shown at top and bottom of table. 7.1.6.4 - 2016-09-16 - Dustin Bolton Downgraded GoDaddy Managed WordPress Hosting warning as they have addressed the broken cron problems for US-based customers so the issue may now finally be resolved for USA-based hosting accounts. Non-US customers should contact GoDaddy support until this is resolved in non-USA datacenters. Stash Live: Added last remote snapshot ID to stats. Stash Live: Troubleshooting log will now highlight an issue if the last snapshot occurred greater than 7 days past the due time OR twice past the due time. Stash Live: Troubleshooting log will now include response from API server of last snapshot request if last snapshot is either overdue by twice the snapshot interval OR 7 days past the snapshot interval due time. 7.2.0.0 - 2016-09-27 - Dustin Bolton FEATURE: Added new BETA Amazon S3 (v3) remote destination. Improved performance, bug fixes, and troubleshooting capabilities. Uses new AWS SDK v3 which fixes several known bugs in the v2 SDK uses in the v2 destination. Added new BETA Stash (v3) remote destination. Improved performance, bug fixes, and troubleshooting capabilities. New S3 and Stash destinations recommended for any users experiencing problems with special encoded characters such as non-UTF8 non-ascii characters in filenames. Removed discontinued Remote Destination Stash v1. Removed discontinued Remote Receiption Dropbox v1 as Dropbox.com has removed support for this API version. Stash Live: Now allowing daily snapshot to run up to 4 hours early, up from previous 3 hour 'wiggle room' on timing. 7.2.0.1 - 2016-09-27 - Dustin Bolton Removed remaining Stash (v1) and Dropbox (v1) references. 7.2.0.3 - 2016-10-03 - Dustin Bolton ENHANCEMENT: ImportBuddy: PHP-based database import now temporarily turns off foreign key checking during import. 7.2.0.4 - 2016-10-03 - Dustin Bolton ImportBuddy: Fixed missing $wpdb global error. 7.2.0.5 - 2016-10-06 - Dustin Bolton Fix variable type of php_max_execution in Server Tools causing invalid Status Indication for PHP Max Execution Time in Server Tools. - Glenn Ansley Fix error causing Restore from Stash to not display in importbuddy. - Glenn Ansley 7.2.0.6 - 2016-10-17 - Dustin Bolton ImportBuddy: cPAnel wizard now truncates prefixes to only first 8 characters or cPanel username. Stash Live: Added new option to run Stash Live with Stash v3 instead of just the default Stash v2 destination backend. iterate_edits_since_last 3rd parameter now optional. Server Tools Page: Http Loopback Test now displays results in textarea for better readability or copy/pasting. - Josh Benham Server Tools Page: Cron Loopback Test now displays results in textarea for better readability or copy/pasting. - Josh Benham Server Tools Page: Now alternating table background color for better readability. All tables in plugin now default to alternating backgrounds for improved readability. Stash Live: Fixed too many daily stats building up. Now trimmed to last 14 days. FEATURE: 'Files' profile types now support backing up from a custom directory root. Useful for backing up only individual directories without having to default to backing up everything and excluding everything else, whether within the site root or even above the site root such as when custom content directories are set above the ABSPATH. Note: File/directory exclusions not currently supported for custom root directories. All content within the custom root will be backed up. Note: Integrity check will not be performed on this backup type at this time as there are not 'expected' files to verify. 7.2.0.7 - 2016-10-25 - Dustin Bolton Fixed Scheduled Page Datepicker Date Format Issue in WP4.6 - Glenn Ansley Fixed $this->_error called in static function without that method in housekeeping. - Glenn Ansley Now checking PHP min version before offering Stash Version option in Stash Live settings. - Glenn Ansley ImportBuddy: Added destination for .user.ini custom PHP configuration warnings. Added cron loopback test to pre-backup preflight check. Fixed error attempting to disconnect from Stash Live since last version release. Added 'Show preflight results' button to upper right of Backups page. 7.2.0.8 - 2016-10-25 - Dustin Bolton Fixed undefined class backupbuddy when Google Drive multipart upload fails. Fixed error about trigger being logged when backup triggered by Sync. Stash Live Stash version now shows only compatible versions in listing. 7.2.1.0 - 2016-11-09 - Dustin Bolton Custom backup root setting fixed showing for all profile types as this feature is only for FILES type profiles. Backgound color of error alerts now reddish for better visibility to color- blind persons. Added additional changes to keep beta S3 (v3) memory usage low when bursing. 7.2.1.1 - 2016-11-21 - Dustin Bolton Scheduling page: Fixed forcing Datepicker date format if theme overrides WordPress date format. Added additional error logging for importbuddy Error #329723 to detect server response to failed ajax call. 7.2.1.2 - 2016-12-07 - Dustin Bolton Changed all disabled form items to readonly to allow for copy/pasting and expanding box sizes. ImportBuddy: Added additional logging when loading a step template. ImportBuddy: Added additional logging when calling mysql_test ajax call. Stash Live: Added new link in Stash Live Settings screen at VERY BOTTOM of modal: "Remove Stash Live destination without disconnecting (use only if directed)" -- Allows removing destination without calling API for a disconnect. Use only if directed by support. 7.2.1.3 - 2016-12-09 - Dustin Bolton Re-added automatic cleaning of expired transients. Clean up orphansed deployment temp tables. - Glenn Ansley Don't 503 during BackupBuddy-related AJAX calls. - Glenn Ansley Add importbuddy support for SSL mysql connections. - Glenn Ansley sFTP test fixed if no path specified. - Glenn Ansley 7.2.1.4 - 2016-12-29 - Dustin Bolton Fix return by reference error when returning false. - Glenn Ansley Fixed cleanup of deployment tables. - Glenn Ansley Stash Live & Stash v3 now auto-bust cache on next file if token is reported expired. - Dustin Bolton 7.2.1.5 - 2016-12-30 - Dustin Bolton Disabled WP transient cleanup -- possible issue effecting Stash transient storage. 7.2.1.6 - 2016-12-30 - Dustin Bolton Deployment: No longer migrating wp-config.php during Deployment as this file is not transferred in the process and should be skipped migrating. 7.2.1.7 - 2017-01-03 - Dustin Bolton Fixed undefined custom_root during DAT file rendering. Added additional escaping into bruteforce_table() for WHERE portion of statement to avoid SQL syntax error if criteria includes quote. 7.2.1.8 - 2017-01-04 - Dustin Bolton Added additional logging when clearing Live transient due to expired token. Added transient clearing for expired token for S32 destination. 7.2.2.0 - 2017-01-16 - Dustin Bolton Housekeeping now cleans up old fileoptions lock files. Helps address problems loading backup page when large numbers of old locks exist. Fixed .maintenance file contents not matching expected importbuddy.php generated version resulting in file hanging around. - Glenn Ansley Removed S3 (v2 & v3) acceleration endpoints as they are invalid. ENHANCEMENT: Added S3 (v3) acceleration option. Misc minor fixes. S3 (v3) settings tooltrip wording improvements. Major release of Quick Release versions 7.2.1.0-7.2.1.8. Stash Live robustness improvements. 7.2.2.1 - 2017-01-20 - Dustin Bolton Clarified Amazon S3 (v3) acceleration charges being from Amazon. S3 (v3) destination: Added several new Amazon S3 regions/endpoints. 7.2.2.2 - 2017-02-13 - Dustin Bolton Stash Live: Increased robustness of catalog. Catalog is now backed up more regularly locally during file send step, at least once each 90 seconds, at the beginning of step. Upon detection of a corrupt or truncated catalog file (eg. due to PHP process being killed) if the backup catalog is larger it is reverted to as to prevent 'falling back' to a much earlier catalog state requiring many file re- transfers. Fixed housekeeping not cleaning up recently made bbold and bbnew tables if in rollback_cleanups settings array. Resulted in some bbold & bbnew hanging around longer than normal. Fixed confirmation of a Deployment pull not immediately cleaning up tables NOR undo PHP file. Housekeeping remove_temp_tables() now accepts $backup_age_limit so that clicking button to perform housekeeping will immediately clean up ALL deployment tables. 7.2.2.4 - 2017-02-14 - Dustin Bolton Happy Valentine's Day! sftp destination: Added additional logging of directory we are trying to change into. Stash Live: If files are remaining we are waiting on, added logging to display first 5 files. Stash Live: Re-organized ordering in Troubleshooting Log to place higher priority items higher for visibility/readability. Added Cleanup Procedure Status Log when manually running cleanup from Settings -> Other tab. FEATURE: Added expired transients cleanup to housekeeping including expired or corrupt. Added new housekeeping option to cleanup all unexpiring transients. Useful if some transients are set to not expire though they should. 7.2.2.5 - 2017-02-20 - Dustin Bolton Now automatically cleaning up orphaned transients upon upgrade one time (new data structure version 15) to address problems with orphaned transients due to old transient cleanup bug. 7.2.2.6 - 2017-02-22 - Dustin Bolton The array-key_exists() function maps changed to use all string keys so as not to raise Warning on a non-string key. The boolean false value that get_cfg_var() or ini_get() might return is changed to string "false" to be a valid string to check against array keys. - Jeremy Trask Replace reference to v2 with v3 in Stash 3 and S33 init.php files. - Glenn Ansley 7.3.0.1 - 2017-02-27 - Dustin Bolton OVERVIEW: This release focuses on increasing robustness and reliability of the Stash Live and Deployment features. Also includes the official release of Quick Release updates 7.2.2.1- 7.2.2..6, including all features and enhancements within those. FEATURES: Automatic cleanup of expired transients from the database to increase site performance and reduce needless old transients from hanging in the database. Automatic cleanup of corrupt transients from the database. Settings -> Other tab has added new button to clean up transients manually. ENHANCEMENTS: Stash Live: Significant increase in robustness. Prior to this version corruption of the catalog would result in the backup process falling back to an earlier state, resulting in longer transfer times or Stash Live even hanging indefinitely if the catalog was repeatedly corrupted. This is no longer the case. Stash Live: Faster recovery upon encountering a temporary error due to timeout or memory limit causing file lock to persist. Settings -> Other tab's housekeeping options now include a Status Log to see what is happening. Re-organized the display. BUG FIXES: Various fixes to Deployment cleanup and confirmation procedures. Misc fixes. Added is_array() check then default assignment to Stash Live catalog load to avoid warning in PHP 7.1. 7.3.0.2 - 2017-03-03 - Dustin Bolton Fixed PHP 7.1 compatibility issue in importbuddy database replacement due to variable being initialized as string instead of array. Only impacts PHP 7.1+. 7.3.0.3 - 2017-03-03 - Dustin Bolton Fixed inability to disable Stash Live no new snapshot notification by setting its value to zero (0). 7.3.0.4 - 2017-03-06 - Dustin Bolton Fixed PHP 7.1 compatibility issue in importbuddy database replacement due to variable being initialized as string instead of array. Only impacts PHP 7.1+. 7.3.0.5 - 2017-03-20 - Dustin Bolton ENHANCEMENT: Remote Destination file management can now be disabled on existing destinations, just not enabled. FEATURE: Stash Live: Added advanced option to disable remote file management. Deployment: Fixed confirm deployment PHP warning. ENHANCEMENT: Deployment: Added new advanced option to skip importbuddy cleanup at end of Deployment. Useful if deployment hangs near end due to importbuddy.php being prematurely deleted. Also preserves log file in importbuddy directory for better troubleshooting. Deployment: Copy of importbuddy.php step of deployment log now stored in importbuddy/status-deploycopy-XXXXXX.txt of the destination site ABSPATH. FEATURE: Stash Live: Added new link to view Last Snapshot Details below the 'Time since last snapshot' section on the Stash Live page. Shows overview of snapshot, malware scan results, download links, plugin and themes in snapshot + their versions, and more! ENHANCEMENT: Stash Live: Added new warning/alert to Stash Live page if multiple crons are passed due, indicating possible cron issue. 7.3.0.7 - 2017-04-03 - Dustin Bolton Stash Live: Removed excess load during daily init. Stash Live: Added additional audit check to verify existance of DAT file. Resend if missing or log error. Stash Live: Now suppressing temporary snapshot status check alerts and dialed back check time to 15 seconds up from 5. Stash Live: Increased API timeout from 15 seconds to 25 seconds. 7.3.0.8 - 2017-04-03 - Dustin Bolton S3 (v2), (v3): Fixed archive deletion limits not happening properly when no directory specified. - Jeremy Trask 7.3.1.0 - 2017-04-10 - Dustin Bolton Stash Live improvements to better handle temporary API or connection issues. Release of minor quick release versions 7.3.0.1-7.3.0.8: OVERVIEW: This release focuses on increasing robustness and reliability of the Stash Live and Deployment features. Also includes the official release of Quick Release updates 7.2.2.1- 7.2.2..6, including all features and enhancements within those. FEATURES: Automatic cleanup of expired transients from the database to increase site performance and reduce needless old transients from hanging in the database. Automatic cleanup of corrupt transients from the database. Settings -> Other tab has added new button to clean up transients manually. ENHANCEMENTS: Stash Live: Significant increase in robustness. Prior to this version corruption of the catalog would result in the backup process falling back to an earlier state, resulting in longer transfer times or Stash Live even hanging indefinitely if the catalog was repeatedly corrupted. This is no longer the case. Stash Live: Faster recovery upon encountering a temporary error due to timeout or memory limit causing file lock to persist. Settings -> Other tab's housekeeping options now include a Status Log to see what is happening. Re-organized the display. BUG FIXES: Various fixes to Deployment cleanup and confirmation procedures. Misc fixes. Added is_array() check then default assignment to Stash Live catalog load to avoid warning in PHP 7.1. Fixed PHP 7.1 compatibility issue in importbuddy database replacement due to variable being initialized as string instead of array. Only impacts PHP 7.1+. Fixed inability to disable Stash Live no new snapshot notification by setting its value to zero (0). Fixed PHP 7.1 compatibility issue in importbuddy database replacement due to variable being initialized as string instead of array. Only impacts PHP 7.1+. ENHANCEMENT: Remote Destination file management can now be disabled on existing destinations, just not enabled. FEATURE: Stash Live: Added advanced option to disable remote file management. Deployment: Fixed confirm deployment PHP warning. ENHANCEMENT: Deployment: Added new advanced option to skip importbuddy cleanup at end of Deployment. Useful if deployment hangs near end due to importbuddy.php being prematurely deleted. Also preserves log file in importbuddy directory for better troubleshooting. Deployment: Copy of importbuddy.php step of deployment log now stored in importbuddy/status-deploycopy-XXXXXX.txt of the destination site ABSPATH. FEATURE: Stash Live: Added new link to view Last Snapshot Details below the 'Time since last snapshot' section on the Stash Live page. Shows overview of snapshot, malware scan results, download links, plugin and themes in snapshot + their versions, and more! ENHANCEMENT: Stash Live: Added new warning/alert to Stash Live page if multiple crons are passed due, indicating possible cron issue. Stash Live: Removed excess load during daily init. Stash Live: Added additional audit check to verify existance of DAT file. Resend if missing or log error. Stash Live: Now suppressing temporary snapshot status check alerts and dialed back check time to 15 seconds up from 5. Stash Live: Increased API timeout from 15 seconds to 25 seconds. S3 (v2), (v3): Fixed archive deletion limits not happening properly when no directory specified. - Jeremy Trask 7.3.1.1 - 2017-04-11 - Dustin Bolton Delete stale lock files much quicker (now 20min instead of 10 days). - Jeremy Trask Disable Zip Method Caching to Auto-Select in the Case of No Methods Available. - Jeremy Trask 7.3.1.2 - 2017-04-17 - Dustin Bolton Fixed housekeeping failing when both s32 and s33 type destinations present. - Jeremy Trask 7.3.1.3 - 2017-05-30 - Dustin Bolton BackupBuddy v8.0 pre-release version. PROFILES New "Smart Profiles" Themes, Plugins, Media for backing up files of each respective type/location: SCREENSHOT: http://image.prntscr.com/image/c866aeb96c8d47dd86d44dbd66b3274b.png Use the new default smart profiles or create your own for further customizing. These new profile types allow you to automatically only backup this section of the site, allowing for more granular control over what is backed up by a profile. Paired with scheduling this allows you to easily break up backup processes into smaller portions for better spreading server load or timeout issues, especially for larger sites. Smart profiles also support directory and file exclusions. New "Custom backup root" option for all profile types (except database): SCREENSHOT: http://image.prntscr.com/image/af2c0f714183423eb8b04d4c146ad1e6.png You can now configure which directory BackupBuddy backs up on a per-profile basis. Prior to this feature you could only backup the entire site and select directories to exclude. You can now select any directory to be backed up, even directories ABOVE the WordPress root (abspath) by using "/../" in the path. This is useful for backing up individual directories, 3rd party applications, or directories outside the WordPress root. This can also be used for more granular control when breaking up backups across multiple profiles for spreading server load or working around timeout issues. Global exclusions apply but default but exclusions may be set for just this profile relative to this custom path manually or with the exclusion picker. "Full" and "Files" profiles now have three SMART exclusion options: Auto-exclude Media Directory, Auto-exclude Themes Directory, Auto-exclude Plugins Directory for making it easier to exclude directories which can be backed up by other default Profile types. SCREENSHOT: http://image.prntscr.com/image/5a2b85de30ad4ab281a362630fc038c6.png Backup profiles can now individually override the default global backup mode (classic vs modern) on a per-profile basis. SCREENSHOT: http://image.prntscr.com/image/b42fdd4ff549416fa9a25be28f1643e0.png STASH LIVE Significant performance improvements, especially for larger sites. Sites which in the past would run out of memory due to hosting limits are very likely to now operate within server limits. A troubleshooting scan is now regularly performed detecting common problems and alerting the user and also providing solutions. A new "Troubleshooting Scan" button to upper right of page of Stash Live page is available for manually troubleshooting. SCREENSHOT: http://image.prntscr.com/image/b80166b92ce24f77986b4892150ee325.png IMPORTBUDDY: New "Search Engine Visibility" setting to Step 6 of restore process, allowing you to either keep the setting as it was on the source site, turn on search engine visibility, or turn it off. Useful for moving sites between development, staging, and live locations. SCREENSHOT: http://image.prntscr.com/image/a10ff6ca440c4d6a8658eb3ed49c9e33.png Added "Forgot password" feature which allows you to generate a new password hash. This hash can then be placed inside the importbuddy.php file to make it usable even if you forgot its password. SCREENSHOT: http://image.prntscr.com/image/7786f5d6199040ea97eae3930526f226.png SCREENSHOT: http://image.prntscr.com/image/66d8c06337d6474da1c2e9609f4b14d4.png SCREENSHOT: http://image.prntscr.com/image/be93a67018f440f0910cee758152d8b8.png Javascript errors are now automatically detected and brought to the user's attention as well as logged to aid in troubleshooting. Sometimes various browser plugins running javascript fail causing importbuddy.php's javascript to halt. Improved look and feel with animated progress as well as highlights to areas that require user attention. importbuddy.php file size has been reduced for faster uploading during restore process. GENERAL Directory exclusions (both global and profiles) support three new variables: {media}, {theme}, and {plugins} to exclude those specific WordPress directories. Added advanced option to hide the BackupBuddy Status widget from the dashboard, including the dashboard option to hide or display it. Reduced plugin file size by removing unneeded remote destination library files. Backup and restore of databases containing foreign key constraints are now fully supported and possible. DROPBOX: Added support for Google "Service Accounts" which allows for more than 50 tokens per account for users with large numbers of sites. Previously users with more than 50 sites would hit a Google Account token limit. SCREENSHOT: http://image.prntscr.com/image/4d72825fdb524b42a764f30a48a62f12.png SCREENSHOT: http://image.prntscr.com/image/d217ded5208241ba8287b6da4e5d95e3.png AMAZON S3: Added support for Amazon S3 Glacier Storage Class (less cost but slow to restore files for access) for both v2 and v3 remote destinations. Added support for Amazon S3 Infrequent Access Storage Class (less cost but slow to restore files for access) for both v2 and v3 remote destinations. Amazon S3 (v3) Remote Destination is now compatible with ALL standard geographical locations: US East 1 (US Standard; N. Virginia) US East 2 (Ohio) US West 1 (N. California) US West 2 (Oregon) Canada Central 1 Asia Pacific South 1 (Mumbai) Asia Pacific Northeast 1 (Tokyo) Asia Pacific Northeast 2 (Seoul) Asia Pacific Southeast 1 (Singapore) Asia Pacific Southeast 2 (Sydney) EU Central 1 (Frankfurt) EU West 1 (Ireland) EU West 2 (London) South America East 1 (Sao Paulo) China North 1 (Beijing) MISC: Remote destinations unavailable due to not meeting PHP version requirements are now displayed and greyed out, displaying PHP requirements. Dropbox v2 remote destination no longer allows changing the storage directory when editing for enhanced security. Directory exclusion picker now takes into account custom root profile and shows directories/files from the custom root path. Stash Live: Significant memory usage reduction on sites with a large number of individual files. Added support for Google "Service Accounts" which allows for more than 50 tokens per account for users with large numbers of sites. Use p12 type key files. Stash Live now stores less metadata in catalog to reduce memory and I/O footprint. Removed default catalog entries for h (hash), t (send tries), and d (delete) if at defaults. b (backed up), and v (verified during audit) no longer store microtime(true) instead storing simple time for reduced size. Removed a (added) timestamp entirely. Stash Live: Troubleshooting scan now automatically detects and alerts about possible files or database tables being unable to be transferred. This aids in determining the cause of Stash Live being unable to reach 100%. This alert it shown at the top of the screen. Custom backup root profile option now supports directory exclusions. Exclusions in profile should be entered relative to custom root. Global profiles will automatically be applied if their relative to ABSPATH root resides within the custom root. Custom backup root profile option now supports going "up" into parent directories above the WordPress site directory (ABSPATH) by using the dot dot ('/..') directory format. For instance to back up a directory above the WordPress installation named "myapp" you could enter "/../myapp/" as the custom directory. Improved profile selector styling to handle varying screen widths better. Reduced fileoptions lock timeout from deduced max execution time + 60 seconds to deduced max execution time + 30 for faster potential recovery. Renamed phpinfo.php to pinfo.php to avoid Sucuri false positive. Now clearing stat cache prior to getting current database file size in _getBackupStatus.php. truncate_file_beginning() now clears stat cache prior to testing file size. Updated WordPress PHP and mysql version recommendations on Server Tools page. Tests reports fail if php older than 5.2.4, warning if older than 5.6. Warning is mysql older than 5.6. Recommends PHP v7 as per WordPress suggestion. Fixed fileoptions illegal string offset for Stash Live $this->options assignment by key. Added importbuddy.php cleanup note about custom file permissions possibly needing re-applied. Zipbuddy libraries: _render_exclusions_file() now accepts optional third parameter ($root) which allows for defining directory which exclusions are relative too. Previously hardcoded exclusion relative to ABSPATH. Updated default email error message to put emphasis that error is due to server not BackupBuddy itself. Added warning if Wordfence is installed as a potential source of conficts. Added Google Drive note: If re-using a project for multiple sites, do NOT exceed 50 sites per project. Google limits tokens to 50 or FEWER per project. Trimmed remote destination libraries to reduce plugin size. Removed unused images to reduce plugins size. ImportBuddy: Improved styling and animations for clarity and improved look & feel. Overall plugin file size reduced. backup_mode setting moved from root into default profile (profile 0). After displaying error message about backup zip file not growing if it then begins to grow again the error is hidden from view since it is no longer applicable. Added additional logging to destination init Error #8548833. Fixed typo in destination send failure email message. Bug: Fixed rare situation where days since last Stash Live snapshot could incorrectly be very large due to state being cached and cached value not being returned by _load_state(). Added availability, durability, and description information to Amazon S3 storage class types. ImportBuddy: Now detecting javascript errors and alerting if any are encountered. Useful for detecting browser plugin errors or bugs. Moved S3 (v2) and (v3) storage class from advanced options to standard options configuration. Quick Setup wizard fixed to show option for scheduling by default. Backup process javascript errors now also log a stack trace and column into the Status Log. Added animate.css. ImportBuddy: restore.php connectDatabase() only runs once per PHP instance. Detected javascript errors now also log full troubleshooting details into the Status Log. The database settings form will no longer submit if javascript has failed to prevent it from reloading the page without submitting restoreData, resulting in an error about being unable to decode submitted data. Added additional logging if state data decoding is failing logging the exact decoding failure. Added animate.css for animations to draw attention and improve look. Removed multiple unused assets including javascript, css, and images to reduce file size. Fixed undefined variable $importbuddy_file during cleanup if skipping deletion of importbuddy.php. Fixed total aggregate database size resetting. Fixed maximum log file size not being enforced. Fixed could not connect to stash error on remote destinations page. - Josh Benham Fixed remote destinations page displaying scrollbar placeholders on some systems. - Josh Benham .sql files now temporarily disable foreign key and unique index checks prior to other sql statements to help avoid temporary errors due to foreign key constraints. Better handling for Error #3297392 fileoptions lock in Stash Live Fixed PHP memory calculation on PHP 7.x+ due to changes in memory usage. - Jeremy Trask Merged Restore / Migrate page into Backup & Restore page. Renamed "Remote Destinations" page to "Destinations" When no destinations exist added explanation text to explain that by default all backups are stored locally but additional destinations may be added for redundancy or remote storage. Destinations page now displays local storage directory. Added additional importbuddy logging to step 4 for troubleshooting. Fixed error if importbuddy database test fails to connect when using mysqli. Remove call to backupbuddy_core::addNotification inside sync API function. - Glenn Ansley. Fixed Stash Live backup type display being blank. Fixed CSS styling issues on mobile. Fixed CSS profiles when name very long. Fixed tooltip not wrapping if contents are too long. Prevent "Warning: Cannot assign an empty string to a string offset" in PHP 7.1 in _migrate_database.php line 693 due to array possibly not being set before setting migrateResumePoint = ''. Unchecking or changing send to remote destination after backup clears previously selected destination title. Fixed directory exclusions not handling custom roots above the ABSPATH. Added note that restored files will be restored to ABSPATH, not necessarily their original location. 7.3.1.4 - 2017-05-31 - Dustin Bolton Defaulting missing profile mode to modern (2). Added warning if this occurs. Added PHP version into DAT file as 'php_version'. Added PHP version into first line of status log. 7.3.1.5 - 2017-06-02 - Dustin Bolton Fixed links in table on Restore / Migrate page not working as of last quick release. Fixed inconsistencies in exclusions between zipbuddy and xzipbuddy. Fixed inaccurate exclusion creation during zip generation when using parent path in custom root (/../) although directory listing preview was accurate. Caused by defaults overwriting exclusions prior to calculation of parent root prefix. Fixed exclusions picker prepending /./ when using parent directory path (/../) in custom root. 7.3.1.6 - 2017-06-03 - Dustin Bolton Fixed "Browse & Restore Files" link on backup page as of 7.3.1.5. 7.3.1.7 - 2017-06-06 - Dustin Bolton Re-wrote backup exclusion function to be more robust. Fixed directory size listing not properly taking into account exclusions on some profiles. Fixed directory size listing not loading from proper root path for smart profile types. Now enforcing trailing slash on get_themes_root(), get_media_root(). Fixed global profile not merging over plugin defaults. This could cause missing default parameters on existing installs. Media exclusion tooltip typo fixed. Misc minor fixes. Misc UI tweaks for screen size compatibility. 7.3.1.8 - 2017-06-07 - Dustin Bolton Merged fixes. Fixed unexpected [ in core.php. 7.3.1.9 - 2017-06-07 - Dustin Bolton Added v8 welcome dismissable banner. 7.3.1.10 - 2017-06-11 - Dustin Bolton New v8 welcome banner look and feel. Cleaned Stash Live UI. live_periodic-shrunk testing variable replacements for common paths in catalog for shrinking catalog file size and memory usage. Call to a member function save() on string in live_periodic fixed. Only saving if object. Fixed media, theme, and plugin profile types not having exclusions 'bubble up' into them resulting in some files not being excluded. 7.3.1.11 - 2017-06-12 - Dustin Bolton FEATURE: Deployment: Differences in plugins between source and destination are now highlighted. Plugins not on the other site a colored RED while plugins on the other site but with a different version are colored BLUE. FEATURE: Deployment: You can now click on the number of files to Push/Pull for Plugins, Themes, and Media, to display a listing of all files to transfer of that type. ENHANCEMENT: Deployment: Selection listings for database tables and plugins to transfer are now larger and resizable. ENHANCEMENT: Deployment: Selection of plugins to push/pull now only lists plugins that either do not exist on the destination or differ in version.
Updated warning about possibly conflicting plugin being detected not being caching-plugin-only specific.