** See history_archived.txt for older version history. Most recent updates at bottom. 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.