readme.txt 54.1 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276
=== BackUpWordPress ===
Contributors: humanmade, willmot, dashaluna, pauldewouters, joehoyle, mattheu, tcrsavage, cuvelier
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
Requires at least: 3.9
Tested up to: 4.5
Stable tag: 3.6.2

Simple automated backups of your WordPress-powered website.

== Description ==

[BackUpWordPress](https://bwp.hmn.md/?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=freeplugin) will back up your entire site including your database and all your files on a schedule that suits you. Try it now to see how easy it is!

This plugin requires PHP version 5.3.2 or later

= Features =

* Super simple to use, no setup required.
* Works in low memory, "shared host" environments.
* Manage multiple schedules.
* Option to have each backup file emailed to you.
* Uses `zip` and `mysqldump` for faster backups if they are available.
* Works on Linux & Windows Server.
* Exclude files and folders from your backups.
* Good support should you need help.
* Translations for Spanish, German, Chinese, Romanian, Russian, Serbian, Lithuanian, Italian, Czech, Dutch, French, Basque.

= Help develop this plugin =

The BackUpWordPress plugin is hosted on GitHub, if you want to help out with development or testing then head over to https://github.com/humanmade/backupwordpress/.

= Translations =

We'd also love help translating the plugin into more languages, if you can help then please visit https://translate.wordpress.org/projects/wp-plugins/backupwordpress/dev/ to start translating.

== Installation ==

1. Install BackUpWordPress either via the WordPress.org plugin directory, or by uploading the files to your server.
2. Activate the plugin.
3. Sit back and relax safe in the knowledge that your whole site will be backed up every day.

The plugin will try to use the `mysqldump` and `zip` commands via shell if they are available, using these will greatly improve the time it takes to back up your site.

== Frequently Asked Questions ==


**Where does BackUpWordPress store the backup files?**

Backups are stored on your server in `/wp-content/backups`, you can change the directory.

Important: By default BackUpWordPress backs up everything in your site root as well as your database, this includes any non WordPress folders that happen to be in your site root. This does mean that your backup directory can get quite large.

**What if I want to back up my site to another destination?**

BackUpWordPress Pro supports Dropbox, Google Drive, Amazon S3, Rackspace, Azure, DreamObjects and FTP/SFTP. Check it out here: [https://bwp.hmn.md](http://bwp.hmn.md/?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=freeplugin "BackUpWordPress Homepage")

**How do I restore my site from a backup?**

You need to download the latest backup file either by clicking download on the backups page or via `FTP`. `Unzip` the files and upload all the files to your server overwriting your site. You can then import the database using your hosts database management tool (likely `phpMyAdmin`).

See this guide for more details - [How to restore from backup](https://bwp.hmn.md/support-center/restore-backup/ "Go to support center").

**Does BackUpWordPress back up the backups directory?**

No.

**I'm not receiving my backups by email**

Most servers have a filesize limit on email attachments, it's generally about 10mb. If your backup file is over that limit, it won't be sent attached to the email. Instead, you should receive an email with a link to download the backup. If you aren't even receiving that, then you likely have a mail issue on your server that you'll need to contact your host about.

**How many backups are stored by default?**

BackUpWordPress stores the last 10 backups by default.

**How long should a backup take?**

Unless your site is very large (many gigabytes) it should only take a few minutes to perform a backup. If your back up has been running for longer than an hour, it's safe to assume that something has gone wrong. Try de-activating and re-activating the plugin. If it keeps happening, contact support.

**What do I do if I get the wp-cron error message?**

The issue is that your `wp-cron.php` is not returning a `200` response when hit with a HTTP request originating from your own server, it could be several things. In most cases, it's an issue with the server / site.

There are some things you can test to confirm this is the issue.

	 * Are scheduled posts working? (They use wp-cron as well.)

	 * Are you hosted on Heart Internet? (wp-cron may not be supported by Heart Internet, see below for work-around.)

	 * If you click manual backup, does it work?

	 * Try adding `define( 'ALTERNATE_WP_CRON', true );` to your `wp-config.php`. Do automatic backups work?

	 * Is your site private (i.e. is it behind some kind of authentication, maintenance plugin, .htaccess)? If so, wp-cron won't work until you remove it. If you are and you temporarily remove the authentication, do backups start working?

Report the results to our support team for further help. To do this, either enable support from your Admin Dashboard (recommended), or email backupwordpress@hmn.md

**How to get BackUpWordPress working in Heart Internet**

The script to be entered into the Heart Internet cPanel is: `/usr/bin/php5 /home/sites/yourdomain.com/public_html/wp-cron.php` (note the space between php5 and the location of the file). The file `wp-cron.php` `chmod` must be set to `711`.

**My backups seem to be failing?**

If your backups are failing, it's commonly caused by a lack of available resources on your server. To establish this is the case, exclude the complete (or parts of the) uploads folder and run a backup. If that succeeds, you know it's probably a server issue. If it does not succeed, report the results to our support team for further help. You can contact support by enabling support from your Admin Dashboard (recommended), or emailing backupwordpress@hmn.md

**Further Support & Feedback**

General support questions should be posted in the <a href="http://wordpress.org/tags/backupwordpress?forum_id=10">WordPress support forums, tagged with backupwordpress.</a>

For development issues, feature requests or anybody wishing to help out with development checkout <a href="https://github.com/humanmade/backupwordpress/">BackUpWordPress on GitHub.</a>

You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> or email backupwordpress@hmn.md for further help/support.

== Screenshots ==

1. Manage multiple schedules.
2. Choose your schedule, backup type, number of backups to keep and whether to receive a notification email.
3. Easily manage exclude rules and see exactly which files are included and excluded from your backup.

== Upgrade Notice ==

= 3.4 =

* This version introduces a major refactoring of the code responsible for the core backup engine. We made sure to write
unit tests for the new code, and we have tested it on several user's sites. It fixes a lot of old bugs, and Windows
users should see major improvements to reliability.

= 3.3.4 =

* WordPress 4.4 compatibility.

= 3.3.1 =

* Fixes a bug that would prevent downloading backups since 3.3.0 - please update.

= 3.2.5 =

* Security fixes related to add_query_arg

= 3.2.1 =

* Important bug fixes. Please upgrade to this version to avoid incomplete or broken backups.

= 3.1.3 =

* Fixes backwards compatibility for add-ons and avoids a Fatal Error. Please upgrade straight to this version before upgrading your add-ons.

= 3.0.4 =

* Fixes a few minor bugs. Immediate update is recommended.

= 3.0.2 =

* Important: we have dropped support for PHP 5.2, you will not be able to activate BackUpWordPress on a server running PHP versions older than PHP 5.3.29

= 3.0.1 =

* This is a critical update. Fixes a bug in the core backup library. Please update immediately.

== Changelog ==

### 3.6.2 / 2016-08-02

* Improves admin performance.
* Improves security in internationalised strings.

### 3.6.1 / 2016-04-26

* Bug fixes/improvements in disk space calculation
* Misc bug fixes

### 3.6.0 / 2016-03-31

* Fix a bug caused by using a function incompatible with min PHP version requirements
* Misc code quality improvements and bug fixes
* Fix bugs in the code responsible for admin notices
* Display disk space info
* Uninstall cleanup
* Introduce a dedicated extensions page

### 3.5 / 2016-03-10

* Reduce duplication and improve code readability when echoing filesizes
* Improve how filesizes are handled in the Your Site list
* Switch to storing site size data in a file, large sites could cause database errors when saving the option
* Re-remove the PHP User and Group Requirements
* Check that the backup file exists before attempting to check it's contents
* Only call getPerms on readable files to ensure we avoid a fatal error
* Ensure error are correctly check in verify_backup
* Use Symfony Process instead of shell_exec for all our system calls
* More unit tests
* Update dependencies
* Detect disabled functions defined in php.ini, now accounts for different separators.

### 3.4.5 / 2016-02-23

* Fix fatal error on upgrade

### 3.4.4 / 2016-02-23

* Ensure temporary files are correctly cleaned up before and after running a backup.
* Avoid killing site if plugin is active on PHP 52
* Allow custom secure key using filter
* Fixes a bug which caused the root path to the WordPress install to be miscalulated in certain setups.

### 3.4.4-beta

* Fixes a bug which caused the root path to the WordPress install to be miscalulated in certain setups.

### 3.4.3

* Fix a bug where backups were not downloadable when WordPress installed in a subdirectory

### 3.4.2

* Remove the usage of `shell_exec` in two of our warning messages, fixes a PHP Warning on systems with it disabled.
* Improve how we handle `open_basedir` restrictions, fixes a PHP Warning on some systems. Adds unit tests to cover `open_basedir` handling.
* Show an error message if neither `mysqldump` nor `PDO:mysql` are available. Database backups won't work without at least one of them.
* Improve our upgrade code for users upgrading from pre version 2.0. Fixes a possible fatal error and ensures backups and backup settings are correctly brought forward.

### 3.4.1

* Fix a possible `PHP Warning` in the Schedule Sentence.

### 3.4 / 2016/01/20

* Introduces a major re-factor of the underlying backups engine, many bugs fixed and much improved unit test coverage.
* Vastly improved Windows Server support.
* We no longer write errors and warnings to files on disk.
* Update to the latest version of `symfony/finder`.
* Update to the latest version of `ifsnop/mysqldump-php`.

### 3.3.4 / 2015-12-10

* Fixes styling issues with WordPress 4.4

### 3.3.3 / 2015-11-13

* Fix broken Intercom support window
* Fixes Typos in i18n strings
* Backups finish faster
* Fix an issue that caused the site size to report as twice as large as it should
* Adds PHP mysqldump fallback lib (`ifsnop/mysqldump-php`)

### 3.3.2 / 2015-10-15

* Misc improvements

### 3.3.1 / 2015-10-12

* Fix false positive error message.
* Fix broken download links

### 3.3.0 / 2015-10-09

* Dropped support for PclZip
* Fixed duplicate cron schedule interval names ( props ucavus )
* Corrected some typos, grammar and punctuation ( props ucavus )
* Fixed a bug in the WP CLI command ( props duritong )
* Better message for wp-cron related errors
* Replace 'bi-weekly' with less confusing wording
* Fixed a few errors misc reported by code quality tool
* Total site size display now subtracts excludes
* Many general improvements and bug fixes

#### 3.2.7 / 2015-07-27

* Pass schedule type instead of schedule id as context for the calculated sizes, it's more useful
* Simply output arrays rather than trying to be too clever about it
* Start tracking PDO availability through Intercom
* Catch database and files shell_exec warnings
* Test under PHP 5.6 in Travis
* Use the new backupwordpress@hmn.md email address everywhere
* Clarify how people request access to Slack and GlotPress
* Rewrite our contributing guidelines to be more comprehensive
* Add instructions to contributing.md
* Revert plugin name as it doesn't make a diff in search results
* Always return an integer

#### 3.2.6 / 2015-06-09

* Fixes admin page slug for multisite

#### 3.2.5 / 2015-04-29

* Fixes an issue when evaluating expression with empty
* Fixes a fatal error on PHP 5.3
* Displays other notices
* Updates stable tag
* Adds some escaping and sanitizing
* Defines plugins dir for different environments
* Adds tests for activation and deactivation hooks
* Adds a debugging function for tests
* Symlinks plugin into tests dir
* Splits out deactivation code into separate functions
* Fixes activation and deactivation hooks not being fired
* Exclude backups folder from size calculation
* Fixes a misplaced parenthesis
* Fixes how error messages are bubbled up
* get home path should return defined value
* Removes redundant exclude statement as CVS folders are excluded by default
* Adds a flag parameter to allow get_files to return all files including default excludes

#### 3.2.4 / 2015-04-01

* Fixes default exclude pattern that was too greedy.

#### 3.2.3 / 2015-04-01

* Fixes issue where files where 'cache' files were excluded by default.
* Updates brazilian portuguese translations.
* Fixes the issue with the 'no thanks' button in the Support modal and misc JS improvements. props SiamKreative.

#### 3.2.2 / 2015-03-25

* Fixes error in manual backups, caused by incorrect plugin version number in class, which is used for the JS script version.

#### 3.2.1 / 2015-03-25

* Check if shell_exec is available before running command
* Only validate day of month if this is the schedule type
* Make FS optional and fix the DB connect method
* (issue-770) Exclude the folder, not the wildcard
* (issue-751) Rename plugin

#### 3.2 / 2015-03-16

* (issue-698) skip mySql bug
* Use shell_exec
* Remove use statement
* Revert to using shell_exec
* Remove Process
* (cool-runnings-757) Add back session_write_close
* (issue-479) Hide hours and minutes for hourly backups
* (backupception) Only load if main site on multisite
* (all-paths-lead-to-rome) Set plugin path to main plugin file to avoid relative paths
* (socket-to-me-one-more-time) Fix paths
* Use socket if available
* Display errors
* Put the db dump in the archive first - fixes issue with large archive
* Dont wait for response
* Run schedule as a Backdrop task
* Pass array directly to function
* (issue-759) Fix require paths
* check PHP version before anything else
* Move plugin class to own file
* Skip mysql bug error
* Delete all BWP options
* Start the process
* Return and check WP_Error
* (what-time-is-backup) Extract hours and minutes from the date as an array for display
* Change plugin description if multisite
* Use wp_get_sites
* Add a comment
* We check for this on plugin instantiation
* Revert to clearing schedule and rescheduling
* Delete schedules and leftover options from subsites
* Ensure plugin only runs on main site
* Fix Too Many Schedules
* Use Symfony Process
* (fix-incorrect-type-error) File is an SPL object so get path
* Set root as default param
* Delete backdrop transient
* Force directory sizes recalculation
* Define VCS abbr
* Hide exclude patterns from Excludes list.
* Check if user can connect
* Test that the mysqldump command works
* Add a couple of mysql versions
* Automatically exclude VCS folders
* Calculate Root size correctly
* Get default rules from backup object
* Do not auto ignore dot files
* Count excluded
* Do not count excluded
* If its the root then return its size directly
* Fix typo in transient names
* Set and return class property instead
* List default excludes as such
* Require symfony finder
* Clear transients on deactivate
* Get list of files with Finder
* Load composer packages
* These are alredy filtered
* Add some default excludes
* Use absolute path for excludes added via UI
* Fix tests
* Fix conditional
* Fix syntax error in travis YML
* Run codesniffer only on pull requests
* Update tested WP versions
* Change min WP version required to match travis CI
* Fix readme changelog placement
* Add condtion for Cron and Ajax
* Fix deactivate logic
* Fixes recursive exclusion of files


#### 3.1.4 / 2015-02-24

* (upgrade-options) Bump version
* strtolower is redundant
* Upgrade routine - renames service settings to avoid backslashes.
* Use the Service name as the setting name
* Clear settings for schedule settings
* Fixes bug in displaying settings error notices
* Update version number
* Merge pull request #726 from humanmade/fix-fatal-error-missing-class-addons
* Leave bare minimum to avoid fatal error
* remove old main plugin class

#### 3.1.3 / 2015-02-04

* Keep deprecated classes in a deprecated.php file to avoid Fatal Error in addons during upgrade.

#### 3.1.2 / 2015-02-03

* (simplify-bwp-file-timestamp) Simplify the file name timestamp
* Fix class file name
* (fixup-setup-class) Add missing transients to uninstall routine
* switch Travis notifications to Slack instead of Hipchat
* Do not delete backups on uninstall
* wrap in parenthesis
* Fix include paths after moving uninstall to own file herpderp
* Update BackUp class include
* Add all cases to switch
* Pass scanned files sizes through conform_dir()
* Fix some classes and requires
* (origin/issue-684, issue-684) Fix namespaces
* Remove unnecessary wildcard from regex
* (crazy-refactor) Remove some duplication
* Formatting
* Fix Class name
* Blank line
* Uses a DirectoryIterator to delete files
* Remove tests for now
* Fix stable tag number
* Revert to using uninstall.php
* Add tests for uninstall and deactivate
* Remove double lie break
* Remove double line break
* Remove phpdocumentor
* We still need to require some scripts...
* We dont need to check for this constant in the hook callback
* Use get_col to directly have an array of schedule option names
* Remove namespacing
* Remove debugging
* Make the uninstall, activation and deactivation hooks work
* (change-singleton-implementation) Change the singleton implementation to not use the static() function
* path argument interfers with wp-cli path argument.
* Fix some scrutinizer issues, mostly major ones
* Consistent default name for database dumps
* Major 5.3 re-factoring fun
* Minor code formatting
* else if should be elseif
* Update the WP_CLI command to fix some issues
* Add support for copying and updating an existing backups

#### 3.1.0 / 2015-01-13

* Correct $response1 variable
* (origin/issue-652, issue-652) Suppress warnings from filesystem functions
* Remove debugging function
* (origin/issue-475, issue-475) Fix a French string
* Format the intercom data better
* Load Intercom in the admin footer
* Fix some HTML issues
* Add a function that returns a given option value
* Return Unknown if no average exists or invalid
* Add a start parameter to function
* Pass in the start time as a parameter
* Make strings translatable
* Escape values
* Adds a function to track backup duration and another to display it
* Adds Average Backup Duration Info
* Improve display of arrays
* Fixes open_basedir warnings
* Replace spaces with tabs for indentation
* (wp-cron-test-improvements) Improve the reliability of the wp-cron test
* Pop in the directory sizes
* Adapt heartbeat pulse
* Update Javascript
* Update constant name
* Load the default translations so that activation error message is in user language
* Fix a few translatable strings
* Update French translations
* Re-uglify Intercom js
* Use provided callback argument to determine current screen
* remove deprecated code
* Only show notices on BWP admin page
* Fix class name
* Make function public for now
* Get an instance of BWP to load functions
* Fix conditional
* Show admin notice if fails to meet requirements
* Remove unneeded function
* Fix references
* Refactor main class after addition of the Setup class
* Introduce a setup class
* Determine if we need to run a cleanup routine
* Introduce a custom hook for addons
* Refactor main plugin file into a singleton class
* Bring activation and deactivation into main plugin class
* css changes to fix support button alignment
* Fixes issue preventing backups from running without JS
* Remove back compat memory limit define
* Refactor HMBKP_Notices to support non-persistant notices
* Minor refactor for PHP minimum requirements notice
* Clear previous backup notices when running a new backup
* Fix issues with custom paths
* Improved singleton pattern
* Display errors in network admin
* Change to text input so multiple email address are supported
* Removes HTML tag from string
* Account for new schedule
* Make upsell sentence translatable
* fix return type
* Return true if transient exists
* Check if constant is defined
* Request the site size via heartbeat send
* Pass site size through heartbeat
* Only calculate if necessary

#### 3.0.4 / 2014-12-10

  * Simplify the backup count display
  * Enqueue scripts properly
  * Change how we check directory_sizes
  * Add BackUpWordPress test case class
  * Move class to separate file
  * Group help tab display functions
  * Update POT file
  * Make strings ready for translation

#### 3.0.3 / 2014-12-06

  * Add French translations
  * Update textdomain
  * Fix deleted function
  * Use HM_Backup function to determine if shell_exec is enabled
  * Check if file is readable first
  * Fix how we kick off Task
  * Remove unused var
  * Call recursive filescanner on admin page load
  * Update package.json
  * Update the POT file task params
  * Replace hmbkp with backupwordpress as textdomain
  * Exclude folders
  * Add Grunt task options
  * Remove hard line returns
  * Display placeholder if exec fails
  * Add 30 second time diff allowance
  * Use $TRAVIS_BUILD_DIR
  * we do this in travis.yml
  * Regenerate github account info
  * Update command to reflect function rename
  * Update tests to reflect function name change
  * Rename function
  * Filter tests to run
  * Fix group flags
  * Calculate site size on page load

#### 3.0.2 / 2014-12-02

  * Bump version
  * Add parenthesis to require_once
  * Remove disk space info
  * Attempt to fix build
  * define WP_TESTS_DIR
  * Make sure current_action fnction is loaded
  * Remove extra slashes and semicolons
  * Remove the custom webhook service
  * Better default WP_TESTS_DIR
  * move trailingslash calls out of the loop for performance
  * Minor code cleanup
  * Correct path for hm-backup so it's tests are run
  * add composer.lock
  * Use scrutinizer code coverage
  * add waffle.io badge
  * Use up to date commands for coverage
  * Add code rating
  * Don't test 5.2
  * Update readme.md
  * excluded_dirs is deprecated
  * Update scrutinizer config
  * Add composer config and dev dependencies
  * Make PHPUnit generate an XML for coveralls
  * Add scrutinizer config
  * Ignore vendor dir
  * Add a link to Help page
  * Move to activation hook
  * Bump up required WP version
  * Escape all the things
  * Save errors to a notices option
  * Reload page on errors
  * Remove script
  * Remove unneeded class
  * Check PHP version on plugins loaded
  * Check PHP version on activate
  * Update readme
  * Set required version to 5.3.2
  * Update tests
  * Allow for a 30 second delta in asserting schedule time
  * Use the new build env on Travis
  * Restrict plugin to be network only
  * Fix admin URL logic
  * Formatting
  * Update readme changelog

#### 3.0.1 / 2014-11-20

  * remove uneeded images
  * latest hm-backup / fixes a serious bug in backups.
  * Typos in v 3.0 changelog
  * Specify POT filename in grunt task
  * Update POT file
  * Markdown readme
  * Regenerate readme
  * Add plugin headers

#### 3.0 / 2014-11-14

  * Refactor the recursive filesize scanner
  * correct text domain
  * Remove unneede statements
  * reload the excludes filelist in the correct place when someone excludes a file
  * Latest backdrop
  * Regenerate minified CSS
  * Regenerate minified JS
  * Fix cancel backup action
  * WordPress Coding Standards
  * Exit early if incompatible version of WordPress
  * Update translations
  * Update changelog

#### 3.0.0-beta / 2014-09-08

  * Load minified CSS
  * Formatting
  * Biweekly wording
  * Add missing period
  * use nonce_url instead of manually adding the nonce query param
  * close the settings form when done
  * Design changes as per ticket
  * Start tracking langauge in server info
  * Right align the primary button in the enable support modal
  * Re-factor the directory filesize code to use a single array instead of thoussands of transients
  * Remove the warning that would show if you were using anything other than the latest stable, it's no longer needed now that the FAQ is local
  * switch to using a single transient to store directory filesize data
  * Add an anchor link
  * Add error message
  * Rename function
  * Prefix GET params
  * Update exclude rule action
  * Adds function for building admin action urls
  * fix vertical scroll
  * Adds some functions to manage settings form submission errors
  * Rename nonce and action
  * fetch errors to display
  * Form submission handling for BWP and add-ons settings
  * Use a new function that persists form submission errors to  a transient
  * None check
  * Pass the nonce around in the ajax request
  * Enable support action links
  * Check nonces
  * Modify action URLs to use the admin_post hook
  * Remove unneeded code
  * New line at end
  * Use admin_post hook
  * Display schedule start time in local timezone
  * Add an action hook that gives access to consumers to the backup progress
 * Update translatable strings POT file
 * Bump version
 * Update min WP version and tested up to
 * accidently used dash instead of underscore
 * namespaced option and added option to uninstall.php
 * basic show/hide of premium upsell
 * Fix incorrect transient expiry
 * Show the spinner in the tab if a schedule other than the current is running
 * Snip snip
 * Bring back the some javascript enhancements
 * Switch to the PHP 5.2 compatible version of Backdrop
 * Finish up support
 * Brace up single line if's and foreach's
 * Only load minified scripts and styles if WP_DEBUG isn't on
 * Load the minified css and js files by default
 * Remove the combined css files as we only have one now. Stop loading colorbox.
 * Remove colorbox
 * Improvements
 * More improvements
 * Don't die when directly running a backup on page load
 * Re-factor the backup filesize calculation
 * make capability filterable
 * use core capabilities instead of custom
 * Switch to Backdrop
 * Fix typo in prefix
 * Hook function onto admin_post
 * Update delete link
 * Bookmark current admin page for redirect
 * Add custom capabilities and role
 * Exclude BackUpWP by default
 * Ignore the build folder
 * Add more build excludes
 * minify JS
 * generate markdown readme
 * minify css
 * combine css
 * regenerate readme
 * Make links consistent for the grunt task
 * Convert URLS to markdown
 * Update lang files
 * Add colorbox as bower dependency
 * remove colorbox folder
 * Remove colorbox submodule
 * Change how we include FAQ
 * Add readme partials
 * Add package.json
 * Add Gruntfile
 * Add bower.json
 * JSHint rules
 * remove from ignore
 * Update ignore list
 * Add bower config
 * Add FAQ strings
 * Return the cached directory size early if we have it
 * Re-factor the file browser scanner
 * correct sprintf usage
 * Handle saving service forms
 * Codeing standards
 * Move the error check outside of the foreach
 * Remove uneeded $is_tab_visible
 * Only show excludes for backups which include files
 * Show destinations in the list of schedule links
 * WordPress standard modal for enabling support
 * Remove extra slash in include path
 * Add a heading to the settings form
 * More work on excludes
 * Another todo
 * Add some todos
 * Don't include the parent directory in a browsable list
 * More work on Excludes
 * Switch to only storing 3 backups by default
 * More work on redesign
 * commented out enable support button till we figure out what to do with it
 * made tabs responsive below 639px
 * More work on redesign
 * Add more default excludes
 * Correctly highlight the tab for the first schedule
 * Switch to tabs instead of subsubsub
 * First bash at a redesign settings UX

#### 2.6.2

* Reverts a change to how the home path is calculated as it caused issues on installs where wp-config.php was stored outside of web root. Props to @mikelittle for the bug report.

#### 2.6.1

* Bump minimum WP requirement to 3.7.3, the latest security release on the 3.7 branch.
* Fix an issues that could cause schedule times to fail to account for timezone differences.
* Add a nonce check to the schedule settings.
* Fix a possible JS warning when removing an exclude rule.
* Our unit tests now run in PHP 5.2 again.

#### 2.6

* It's now possible to choose the time and day that your schedule will run on.
* Introduces several new unit tests around schedule timings.
* Fixes a bug that could cause the hourly schedule to run constantly.
* Improved the layout of the Constants help panel.
* If the backup root directory is unreadable then the plugin will no longer function.
* Update the backups table match the standard WordPress table styles.
* Improved styling for the settings dialogue.
* Improved styling for the Server Info help tab.
* /s/back ups/backups.
* Remove Deprecated call to `screen_icon`.
* Updated French translation.
* Update the `WP CLI` command to use the new method for registering command.
* Reload the schedules when re-setting up the default schedules so they show up straight away.
* s/dpesnt't/doesn't.
* Only show the estimated total schedule size when editing an existing schedule.
* Stop stripping 0 from the minutes on hourly backups so that backups at 10 (& 20, etc.) past the hour correctly show.
* Disable buttons whilst ajax requests are running.
* Move spinners outside the buttons as they didn't look very good inside.
* Improve the detection of the home path on multisite installs which have WordPress in a subdirectory.
* Track the time that the running backup is started and display how long a backup has been running for.
* Fix an issue that meant it wasn't possible to run multiple manual backups at the same time.
* Many other minor improvements.

#### 2.5

* BackUpWordPress now requires WordPress 3.7.1 as a minimum.
* Remove some old back-compat code that was required because we supported older WP versions.
* It's now possible to change the email address that notification emails are sent from using the `hmbkp_from_email` filter.
* The spinner is now retina!
* Close the PHP Session before starting the backup process to work around the 1 request per session issue. Backup status will now work on sites which happen to call `session_start`.
* Pass `max_execution_time` and the BackUpWordPress Plugin version back to support. * Include the users real name in support requests
* Stop passing `$_SERVER` with support requests as it can contain things like `.htaccess` passwords on some server configurations.
* Improve the display of the server info in the enable support popup.
* New screenshots
* Use `wp_safe_redirect` for internal redirects.
* Use `wp_is_writable` instead of `is_writable`.


#### 2.4.2

* In WordPress Multisite the backups admin page is now located in Network admin instead of the wp-admin of the main site.
* Fixed an issue with the new intercom support integration that could cause loading the backups page to timeout
* Fixed 3 stray PHP warnings.
* BackUpWordPress will now always be loaded before any BackUpWordPress Extensions.
* Fixed an issue that could cause a long modal (excludes) to show underneath the WP admin bar.

#### 2.4.1

* Add missing colorbox images

#### 2.4

* Support for new premium extensions for storing backups in a variety of online services.
* Exclude the WP DB Manager backups and WP Super Cache cache directories by default.
* We now use Intercom to offer support directly from within the plugin, opt-in of course.
* More i18n fixes / improvements.
* We no longer show download links if your backups directory isn't web accessible.
* Fix a bug that caused the plugin activation and deactivation hooks from firing.
* Correctly handle `MYSQL TIMESTAMP` columns in database dumps.
* `mysqldump` and `zip` are now correctly recognised on SmartOS.
* Schedule names are now translatable.
* Avoid having to re-calculate the filesize when a schedules type is set.
* Compatibility with WordPress 3.8


#### 2.3.2

* Correct version number.

#### 2.3.1

* Fix a PHP strict error.
* Save and close as separate buttons.
* Fix bug that caused multiple notification emails.
* Fixes typo in database option name.
* Updated translations.
* Improve PHP docblocks.
* Make schedules class a singleton.
* Exclude popular backup plugin folders by default.
* Exclude version control folders by default.
* Fix broken localisation.
* Use `wp_safe_redirect` instead of `wp_redirect` for internal form submissions
*

#### 2.3

* Replace Fancybox with Colorbox as Fancybox 2 isn't GPL compatible.
* Use the correct `HMBKP_ATTACHMENT_MAX_FILESIZE` constant consistently in the help section.
* Correct filename for some mis-named translation files.
* Show the total estimated disk space a schedule could take up (max backups * estimated site size).
* Fix a typo (your -> you're).
* Use the new time Constants and define backwords compatible ones for > than 3.5.
* Play nice with custom cron intervals.
* Main plugin file is now `backupwordpress.php` for consistency.
* Add Paul De Wouters (`pauldewouters`) as a contributor, welcome Paul!
* Don't remove non-backup files from custom backup paths.
* Fix a regression where setting a custom path which didn't exist could cause you to lose existing backups.
* When moving paths only move backup files.
* Make some untranslatable strings translatable.
* Don't allow a single schedule to run in multiple threads at once, should finally fix edge case issues where some load balancer / proxies were causing multiple backups per run.
* Only highlight the `HMBKP_SCHEDULE_TIME` constant in help if it's not the default value.
* Remove help text for deprecated `HMBKP_EMAIL`.
* Default to allways specificing `--single-transaction` when using `mysqldump` to backup the database, can be disabled by setting the `HMBKP_MYSQLDUMP_SINGLE_TRANSACTION` to `false`.
* Silence a `PHP Warning` if `mysql_pconnect` has been disabled.
* Ensure dot directories `.` & `..` are always skipped when looping the filesystem.
* Work around a warning in the latest version of MySQL when using the `-p` flag with `mysqldunmp`.
* Fix issues on IIS that could cause the root directory to be incorrectly calculated.
* Fix an issue on IIS that could cause the download backup url to be incorrect.
* Fix an issue on IIS that could mean your existing backups are lost when moving backup directory.
* Avoid a `PHP FATAL ERROR` if the `mysql_set_charset` doesn't exist.
* All unit tests now pass under IIS on Windows.
* Prefix the backup directory with `backupwordpress-` so that it's easier to identify.
* Re-calculate the backup directory name on plugin update and move backups.
* Fix some issues with how `HMBKP_SECURE_KEY` was generated.

#### 2.2.4

* Fix a fatal error on PHP 5.2, sorry! (again.)

#### 2.2.3

* Fix a parse error, sorry!

#### 2.2.2

* Fix a fatal error when uninstalling.
* Updated translations for Brazilian, French, Danish, Spanish, Czech, Slovakian, Polish, Italian, German, Latvian, Hebrew, Chinese & Dutch.
* Fix a possible notice when using the plugin on a server without internet access.
* Don't show the wp-cron error message when `WP_USE_ALTERNATE_CRON` is defined as true.
* Ability to override the max attachment size for email notifications using the new `HMBKP_ATTACHMENT_MAX_FILESIZE` constant.
* Nonce some ajax request.
* Silence warnings created if `is_executable`, `escapeshellcmd` or `escapeshellarg` are disabled.
* Handle situations where the mysql port is set to something wierd.
* Fallback to `mysql_connect` on system that disable `mysql_pconnect`.
* You can now force the `--single-transaction` param when using `mysqldump` by defining `HMBKP_MYSQLDUMP_SINGLE_TRANSACTION`.
* Unit tests for `HM_Backup::is_safe_mode_available()`.
* Silence possible PHP Warnings when unlinking files.

#### 2.2.1

* Stop storing a list of unreadable files in the backup warnings as it's too memory intensive.
* Revert the custom `RecursiveDirectoryIterator` as it caused an infinite loop on some servers.
* Show all errors and warnings in the popup shown when a manual backup completes.
* Write the .backup_error and .backup_warning files everytime an error or warning happens instead of waiting until the end of the backups process.
* Fix a couple of `PHP E_STRICT` notices.
* Catch more errors during the manual backup process and expose them to the user.

#### 2.2

* Don't repeatedly try to create the backups directory in the `uploads` if `uploads` isn't writable.
* Show the correct path in the warning message when the backups path can't be created.
* Include any user defined auth keys and salts when generating the HMBKP_SECURE_KEY.
* Stop relying on the built in WordPress schedules as other plugins can mess with them.
* Delete old backups everytime the backups page is viewed in an attempt to ensure old backups are always cleaned up.
* Improve modals on small screens and mobile devices.
* Use the retina spinner on retina screens.
* Update buttons to the new 3.5 style.
* Fix a possible fatal error caused when a symlink points to a location that is outside an `open_basedir` restriction.
* Fix an issue that could cause backups using PclZip with a custom backups path to fail.
* Security hardening by improving escaping, sanitizitation and validation.
* Increase the timeout on the ajax cron check, should fix issues with cron errors showing on slow sites.
* Only clear the cached backup filesize if the backup type changes.
* Add unit tests for all the schedule recurrences.
* Fix an issue which could cause weekly and monthly schedules to fail.
* Add an `uninstall.php` file which removes all BackUpWordPress data and options.
* Catch a possible fatal error in `RecursiveDirectoryIterator::hasChildren`.
* Fix an issue that could cause mysqldump errors to be ignored thus causing the backup process to use an incomplete mysqldump file.

#### 2.1.3

* Fix a regression in `2.1.2` that broke previewing and adding new exclude rules.

#### 2.1.2

* Fix an issue that could stop the settings panel from closing on save on servers which return `'0'` for ajax requests.
* Fix an issue that could cause the backup root to be set to `/` on sites with `site_url` and `home` set to different domains.
* The mysqldump fallback function will now be used if `mysqldump` produces an empty file.
* Fix a possible PHP `NOTICE` on Apache servers.

#### 2.1.1

* Fix a possible fatal error when a backup schedule is instantiated outside of wp-admin.
* Don't use functions from misc.php as loading it too early can cause fatal errors.
* Don't hardcode an English string in the JS, use the translated string instead.
* Properly skip dot files, should fix fatal errors on systems with `open_basedir` restrictions.
* Don't call `apache_mod_loaded` as it caused wierd DNS issue on some sites, use `global $is_apache` instead.
* Fix a possible double full stop at the end of the schedule sentence.
* Minor code cleanup.

#### 2.1

* Stop blocking people with `safe_mode = On` from using the plugin, instead just show a warning.
* Fix possible fatal error when setting schedule to monthly.
* Fix issues with download backup not working on some shared hosts.
* Fix issuses with download backup not working on sites with strange characters in the site name.
* Fix a bug could cause the update actions to fire on initial activation.
* Improved reliability when changing backup paths, now with Unit Tests.
* Generate the lists of excluded, included and unreadable files in a more memory efficient way, no more fatal errors on sites with lots of files.
* Bring back .htaccess protection of the backups directory on `Apache` servers with `mod_rewrite` enabled.
* Prepend a random string to the backups directory to make it harder to brute force guess.
* Fall back to storing the backups directoy in `uploads` if `WP_CONTENT_DIR` isn't writable.
* Attempt to catch `E_ERROR` level errors (Fatal errors) that happen during the backup process and offer to email them to support.
* Provide more granular status messages during the backup process.
* Show a spinner next to the schedule link when a backup is running on a schedule which you are not currently viewing.
* Improve the feedback when removing an exclude rule.
* Fix an issue that could cause an exclude rule to be marked as default when it in-fact isn't, thus not letting it be deleted.
* Add a line encouraging people to rate the plugin if they like it.
* Change the support line to point to the FAQ before recommending they contact support.
* Fix the link to the "How to Restore" post in the FAQ.
* Some string changes for translators, 18 changed strings.

#### 2.0.6

* Fix possible warning on plugin activation if the sites cron option is empty.
* Don't show the version warning in the help for Constants as that comes from the current version.

#### 2.0.5

* Re-setup the cron schedules if they get deleted somehow.
* Delete all BackUpWordPress cron entries when the plugin is deactivated.
* Introduce the `HMBKP_SCHEDULE_TIME` constant to allow control over the time schedules run.
* Make sure the schedule times and times of previous backups are shown in local time.
* Fix a bug that could cause the legacy backup schedule to be created on every update, not just when going from 1.x to 2.x.
* Improve the usefulness of the `wp-cron.php` response code check.
* Use the built in `site_format` function for human readable filesizes instead of defining our own function.

#### 2.0.4

* Revert the change to the way the plugin url and path were calculated as it caused regressions on some systems.

#### 2.0.3

* Fix issues with scheduled backups not firing in some cases.
* Better compatibility when the WP Remote plugin is active alongside BackUpWordPress.
* Catch and display more WP Cron errors.
* BackUpWordPress now fails to activate on WordPress 3.3.2 and below.
* Other minor fixes and improvements.

#### 2.0.2

* Only send backup failed emails if the backup actually failed.
* Turn off the generic "memory limit probably hit" message as it was showing for too many people.
* Fix a possible notice when the backup running filename is blank.
* Include the `wp_error` response in the cron check.

#### 2.0.1

* Fix fatal error on PHP 5.2.

#### 2.0

* Ability to have multiple schedules with separate settings & excludes per schedule.
* Ability to manage exclude rules and see exactly which files are included and excluded.
* Fix an issue with sites with an `open_basedir` restriction.
* Backups should now be much more reliable in low memory environments.
* Lots of other minor improvements and bug fixes.

#### 1.6.9

* Updated and improved translations across the board - props @elektronikLexikon.
* German translation - props @elektronikLexikon.
* New Basque translation - props Unai ZC.
* New Dutch translation - Anno De Vries.
* New Italian translation.
* Better support for when WordPress is installed in a sub directory - props @mattheu


#### 1.6.8

* French translation props Christophe - http://catarina.fr.
* Updated Spanish Translation props DD666 - https://github.com/radinamatic.
* Serbian translation props StefanRistic - https://github.com/StefanRistic.
* Lithuanian translation props Vincent G - http://www.Host1Free.com.
* Romanian translation.
* Fix conflict with WP Remote.
* Fix a minor issue where invalid email address's were still stored.
* The root path that is backed up can now be controlled by defining `HMBKP_ROOT`.

#### 1.6.7

* Fix issue with backups being listed in reverse chronological order.
* Fix issue with newest backup being deleted when you hit your max backups limit.
* It's now possible to have backups sent to multiple email address's by entering them as a comma separated list.
* Fix a bug which broke the ability to override the `mysqldump` path with `HMBKP_MYSQLDUMP_PATH`.
* Use `echo` rather than `pwd` when testing `shell_exec` as it's supported cross platform.
* Updated Spanish translation.
* Fix a minor spelling mistake.
* Speed up the manage backups page by caching the FAQ data for 24 hours.

#### 1.6.6

* Fix backup path issue with case sensitive filesystems.

#### 1.6.5

* Fix an issue with emailing backups that could cause the backup file to not be attached.
* Fix an issue that could cause the backup to be marked as running for ever if emailing the backup `FATAL` error'd.
* Never show the running backup in the list of backups.
* Show an error backup email failed to send.
* Fix possible notice when deleting a backup file which doesn't exist.
* Fix possible notice on older versions of `PHP` which don't define `E_DEPRECATED`.
* Make `HMBKP_SECURE_KEY` override-able.
* BackUpWordPress should now work when `ABSPATH` is `/`.

#### 1.6.4

* Don't show warning message as they cause to much panic.
* Move previous methods errors to warnings in fallback methods.
* Wrap `.htaccess` rewrite rules in if `mod_rewrite` check.
* Add link to new restore help article to FAQ.
* Fix issue that could cause "not using latest stable version" message to show when you were in-fact using the latest version.
* Bug fix in `zip command` check that could cause an incorrect `zip` path to be used.
* Detect and pass `MySQL` port to `mysqldump`.

#### 1.6.3

* Don't fail archive verification for errors in previous archive methods.
* Improved detection of the `zip` and `mysqldump` commands.
* Fix issues when `ABSPATH` is `/`.
* Remove reliance on `SECURE_AUTH_KEY` as it's often not defined.
* Use `warning()` not `error()` for issues reported by `zip`, `ZipArchive` & `PclZip`.
* Fix download zip on Windows when `ABSPATH` contains a trailing forward slash.
* Send backup email after backup completes so that fatal errors in email code don't stop the backup from completing.
* Add missing / to `PCLZIP_TEMPORARY_DIR` define.
* Catch and display errors during `mysqldump`.

#### 1.6.2

* Track `PHP` errors as backup warnings not errors.
* Only show warning message for `PHP` errors in BackUpWordPress files.
* Ability to dismiss the error / warning messages.
* Disable use of `PclZip` for full archive checking for now as it causes memory issues on some large sites.
* Don't delete "number of backups" setting on update.
* Better handling of multibyte characters in archive and database dump filenames.
* Mark backup as running and increase callback timeout to `500` when firing backup via ajax.
* Don't send backup email if backup failed.
* Filter out duplicate exclude rules.

#### 1.6.1

* Fix fatal error on PHP =< 5.3

#### 1.6

* Fixes issue with backups dir being included in backups on some Windows Servers.
* Consistent handling of symlinks across all archive methods (they are followed).
* Use .htaccess rewrite cond authentication to allow for secure http downloads of backup files.
* Track errors and warnings that happen during backup and expose them through admin.
* Fire manual backups using ajax instead of wp-cron, `HMBKP_DISABLE_MANUAL_BACKUP_CRON` is no longer needed and has been removed.
* Ability to cancel a running backup.
* Zip files are now integrity checked after every backup.
* More robust handling of failed / corrupt zips, backup process now fallsback through the various zip methods until one works.
* Use `mysql_query` instead of the depreciated `mysql_list_tables`.

#### 1.5.2

* Better handling of unreadable files in ZipArchive and the backup size calculation.
* Support for wp-cli, usage: `wp backup [--files_only] [--database_only] [--path<dir>] [--root<dir>] [--zip_command_path=<path>] [--mysqldump_command_path=<path>]`

#### 1.5.1

* Better detection of `zip` command.
* Don't delete user settings on update / deactivate.
* Use `ZipArchive` if `zip` is not available, still falls back to `PclZip` if neither `zip` nor `ZipArchive` are installed.
* Better exclude rule parsing, fixes lots of edge cases, excludes now pass all 52 unit tests.
* Improved the speed of the backup size calculation.

#### 1.5

* Re-written core backup engine should be more robust especially in edge case scenarios.
* 48 unit tests for the core backup engine, yay for unit tests.
* Remove some extraneous status information from the admin interface.
* Rename Advanced Options to Settings
* New `Constant` `HMBKP_CAPABILITY` to allow the default `add_menu_page` capability to be changed.
* Suppress possible filemtime warnings in some edge cases.
* 3.3 compatability.
* Set proper charset of MySQL backup, props valericus.
* Fix some inconsistencies between the estimated backup size and actual backup size when excluding files.

#### 1.4.1

* 1.4 was incorrectly marked as beta.

#### 1.4

* Most options can now be set on the backups page, all options can still be set by defining them as `Constants`.
* Russian translation, props valericus.
* All dates are now translatable.
* Fixed some strings which weren't translatable.
* New Constant `HMBKP_DISABLE_MANUAL_BACKUP_CRON` which enable you to disable the use of `wp_cron` for manual backups.
* Manual backups now work if `DISABLE_WP_CRON` is defined as `true`.

#### 1.3.2

* Spanish translation
* Bump PHP version check to 5.2.4
* Fallback to PHP mysqldump if shell_exec fails for any reason.
* Silently ignore unreadable files / folders
* Make sure binary data is properly exported when doing a mysqldump
* Use 303 instead of 302 when redirecting in the admin.
* Don't `set_time_limit` inside a loop
* Use WordPress 3.2 style buttons
* Don't pass an empty password to mysqldump

#### 1.3.1

* Check for PHP version. Deactivate plugin if running on PHP version 4.

#### 1.3

* Re-written back up engine, no longer copies everything to a tmp folder before zipping which should improve speed and reliability.
* Support for excluding files and folders, define `HMBKP_EXCLUDE` with a comma separated list of files and folders to exclude, supports wildcards `*`, path fragments and absolute paths.
* Full support for moving the backups directory, if you define a new backups directory then your existing backups will be moved to it.
* Work around issues caused by low MySQL `wait_timeout` setting.
* Add FAQ to readme.txt.
* Pull FAQ into the contextual help tab on the backups page.
* Block activation on old versions of WordPress.
* Stop guessing compressed backup file size, instead just show size of site uncompressed.
* Fix bug in `safe_mode` detection which could cause `Off` to act like `On`.
* Better name for the database dump file.
* Better name for the backup files.
* Improve styling for advanced options.
* Show examples for all advanced options.
* Language improvements.
* Layout tweaks.

#### 1.2

* Show live backup status in the back up now button when a back up is running.
* Show free disk space after total used by backups.
* Several langauge changes.
* Work around the 1 cron every 60 seconds limit.
* Store backup status in a 2 hour transient as a last ditch attempt to work around the "stuck on backup running" issue.
* Show a warning and disable backups when PHP is in Safe Mode, may try to work round issues and re-enable in the future.
* Highlight defined `Constants`.
* Show defaults for all `Constants`.
* Show a warning if both `HMBKP_FILES_ONLY` and `HMBKP_DATABASE_ONLY` are defined at the same time.
* Make sure options added in 1.1.4 are cleared on de-activate.
* Support `mysqldump on` Windows if it's available.
* New option to have each backup emailed to you on completion. Props @matheu for the contribution.
* Improved windows server support.

#### 1.1.4

* Fix a rare issue where database backups could fail when using the mysqldump PHP fallback if `mysql.max_links` is set to 2 or less.
* Don't suppress `mysql_connect` errors in the mysqldump PHP fallback.
* One time highlight of the most recent completed backup when viewing the manage backups page after a successful backup.
* Fix a spelling error in the `shell_exec` disabled message.
* Store the BackUpWordPress version as a `Constant` rather than a `Variable`.
* Don't `(float)` the BackUpWordPress version number, fixes issues with minor versions numbers being truncated.
* Minor PHPDoc improvements.

#### 1.1.3

* Attempt to re-connect if database connection hits a timeout while a backup is running, should fix issues with the "Back Up Now" button continuing to spin even though the backup is completed.
* When using `PCLZIP` as the zip fallback don't store the files with absolute paths. Should fix issues unzipping the file archives using "Compressed (zipped) Folders" on Windows XP.

#### 1.1.2

* Fix a bug that stopped `HMBKP_DISABLE_AUTOMATIC_BACKUP` from working.

#### 1.1.1

* Fix a possible `max_execution_timeout` fatal error when attempting to calculate the path to `mysqldump`.
* Clear the running backup status and reset the calculated filesize on update.
* Show a link to the manage backups page in the plugin description.
* Other general fixes.

#### 1.1

* Remove the logging facility as it provided little benefit and complicated the code, your existing logs will be deleted on update.
* Expose the various `Constants` that can be defined to change advanced settings.
* Added the ability to disable the automatic backups completely `define( 'HMBKP_DISABLE_AUTOMATIC_BACKUP', true );`.
* Added the ability to switch to file only or database only backups `define( 'HMBKP_FILES_ONLY', true );` Or `define( 'HMBKP_DATABASE_ONLY', true );`.
* Added the ability to define how many old backups should be kept `define( 'HMBKP_MAX_BACKUPS', 20 );`
* Added the ability to define the time that the daily backup should run `define( 'HMBKP_DAILY_SCHEDULE_TIME', '16:30' );`
* Tweaks to the backups page layout.
* General bug fixes and improvements.

#### 1.0.5

* Don't ajax load estimated backup size if it's already been calculated.
* Fix time in backup complete log message.
* Don't mark backup as running until cron has been called, will fix issues with backup showing as running even if cron never fired.
* Show number of backups saved message.
* Add a link to the backups page to the plugin action links.

#### 1.0.4

Don't throw PHP Warnings when `shell_exec` is disabled

#### 1.0.3

Minor bug fix release.

* Suppress `filesize()` warnings when calculating backup size.
* Plugin should now work when symlinked.
* Remove all options on deactivate, you should now be able to deactivate then activate to fix issues with settings etc. becoming corrupt.
* Call setup_defaults for users who update from backupwordpress 0.4.5 so they get new settings.
* Don't ajax ping running backup status quite so often.

#### 1.0.1 & 1.0.2

Fix some silly 1.0 bugs

#### 1.0

1.0 represents a total rewrite & rethink of the BackUpWordPress plugin with a focus on making it "Just Work". The management and development of the plugin has been taken over by [Human Made Limited](http://hmn.md) the chaps behind [WP Remote](https://wpremote.com)

#### Previous

Version 0.4.5 and previous were developed by [wpdprx](http://profiles.wordpress.org/users/wpdprx/)