Commit Graph

4276 Commits

Author SHA1 Message Date
Andrew Nacin
83b20ee7f9 Notify administrators of successful, failed, and pending core updates.
Blocks future background updates after critical failures, but allow retries in certain situations. More in the ticket.

fixes #10787.

Built from https://develop.svn.wordpress.org/trunk@25841


git-svn-id: http://core.svn.wordpress.org/trunk@25841 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:55:30 +00:00
Andrew Nacin
27d04f9e5e Delete expired transients on database upgrades.
Reverts [25416], which had all transients being cleared. This leaves much to be desired, but we don't want a core update to be blamed for breaking a site that incorrectly assumes transients aren't transient.

props dartiss, pento.
fixes #20316.

Built from https://develop.svn.wordpress.org/trunk@25838


git-svn-id: http://core.svn.wordpress.org/trunk@25838 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:55:02 +00:00
Andrew Nacin
fa4f4033f7 Introduce email templates for automatic background updates.
The four templates are:
 1. We successfully updated their site. If any of their themes or plugins are out of date, it also mentions that. ('success')
 2. We are not configured to update their site, so we notify them of the new release. ('notify')
 3. We tried but failed to update their site. The error was early in the process, so no harm, no foul. This is the same as template #2, plus one sentence. ('fail')
 4. We tried to update their site, and failed while copying files. ('critical')

With assistance from markjaquith.

see #10787.

Built from https://develop.svn.wordpress.org/trunk@25837


git-svn-id: http://core.svn.wordpress.org/trunk@25837 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:54:54 +00:00
Andrew Nacin
93eefa2af3 set_current_screen() is now unnecessary in Automatic_Upgrader_Skin, which is good because it breaks things in the network admin.
fixes #25622.

Built from https://develop.svn.wordpress.org/trunk@25836


git-svn-id: http://core.svn.wordpress.org/trunk@25836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:54:46 +00:00
Andrew Nacin
a3561e7e07 In automatic background updates, standardize on 'update'.
New, final filter names:
 * auto_update_{$type} (plugin, theme, core, language)
 * automatic_updates_is_vcs_checkout
 * automatic_updates_disabled

New class name is WP_Automatic_Updater. Method names include update() and should_update().

see #22704.

Built from https://develop.svn.wordpress.org/trunk@25835


git-svn-id: http://core.svn.wordpress.org/trunk@25835 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:54:38 +00:00
Dion Hulse
8abd2f86d5 Silence PHP warnings from disk_free_space(). disk_free_space() will produce a warning in error conditions in addition to returning false, this includes a case where the bytes free is greater than PHP_INT_MAX (which is a error condition we don't need to check).
See #25576, #22704

Built from https://develop.svn.wordpress.org/trunk@25831


git-svn-id: http://core.svn.wordpress.org/trunk@25831 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:54:05 +00:00
Dion Hulse
66f01957a0 For Background updates, ensure that only one update process runs at the same time by using the options table as a lock.
This prevents multiple cron spawns and/or long-running updates from causing multiple update processes to spin up.
This also fixes a case where the upgrader might kick in for ( ! is_main_network() || ! is_main_site() ) in mulisite installs.
See #22704

Built from https://develop.svn.wordpress.org/trunk@25828


git-svn-id: http://core.svn.wordpress.org/trunk@25828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:53:40 +00:00
Andrew Nacin
8ae8e01b67 Remove the old wp_auto_updates_maybe_update cron event. Schedule the new wp_maybe_auto_update event at 7 a.m. and 7 p.m. in the site's timezone.
see #27704.

Built from https://develop.svn.wordpress.org/trunk@25825


git-svn-id: http://core.svn.wordpress.org/trunk@25825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:53:14 +00:00
Andrew Nacin
564b008f67 Add editimage.min.js to $_old_files. see #24999.
Built from https://develop.svn.wordpress.org/trunk@25897


git-svn-id: http://core.svn.wordpress.org/trunk@25809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 19:27:09 +00:00
Andrew Nacin
0ceb189b7b Confirm delete_site_option() exists before calling it during an update.
This function won't yet exist when updating from 2.7 [sic].

fixes #25682 for trunk.

Built from https://develop.svn.wordpress.org/trunk@25893


git-svn-id: http://core.svn.wordpress.org/trunk@25805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 18:18:12 +00:00
Andrew Nacin
0976999929 Remove debug code from WP_Automatic_Updater::send_email().
props markmcwilliams for initial patch.
see #25678.

Built from https://develop.svn.wordpress.org/trunk@25891


git-svn-id: http://core.svn.wordpress.org/trunk@25803 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 01:51:09 +00:00
Andrew Nacin
7b772e5c58 Introduce a send_core_update_notification_email filter to control whether to send update notifications.
Currently, this is dependent on whether the automatic updater is enabled (generally). This is likely to be decoupled in a future release.

This refocuses the auto_core_update_send_email filter to specifically be for success/fail emails for auto updates, while the new filter is more general.

see #25603.

Built from https://develop.svn.wordpress.org/trunk@25882


git-svn-id: http://core.svn.wordpress.org/trunk@25794 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-23 19:47:09 +00:00
Ryan Boren
b87d4b77e5 Pinking shears
Built from https://develop.svn.wordpress.org/trunk@25880


git-svn-id: http://core.svn.wordpress.org/trunk@25792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-23 14:38:10 +00:00
Andrew Nacin
a387c3bef9 Make some changes to the email templates to account for the fact that an auto update offer might not be to the latest version.
For example, 3.7.2 install is served a 3.7.3 update, but the current version is 3.8.1.

This commit also allows for core update notification emails to be sent even when we are unable to run an auto update due to filesystem configuration (VCS checkout or file permissions). But, since these emails go through WP_Automatic_Updater, they will not be sent if the updater is outright disabled.

fixes #25654.

Built from https://develop.svn.wordpress.org/trunk@25873


git-svn-id: http://core.svn.wordpress.org/trunk@25785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 21:19:09 +00:00
Andrew Nacin
58c18f0c32 Show the nag we show for a stuck .maintenance file when an auto update failed.
see #25654.

Built from https://develop.svn.wordpress.org/trunk@25872


git-svn-id: http://core.svn.wordpress.org/trunk@25784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 21:15:09 +00:00
Andrew Nacin
13dd29126a "some files" instead of "certain files". Less stuffy.
props markjaquith.
see #25652.

Built from https://develop.svn.wordpress.org/trunk@25871


git-svn-id: http://core.svn.wordpress.org/trunk@25783 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 18:41:10 +00:00
Andrew Nacin
fabf119cf3 New, better error message when we realize we won't be able to copy a file and continue with the update.
fixes #25652.

Built from https://develop.svn.wordpress.org/trunk@25870


git-svn-id: http://core.svn.wordpress.org/trunk@25782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 18:21:10 +00:00
Andrew Nacin
d5fdd66f9d Only enforce disk free space checks when doing background updates.
see #25652.

Built from https://develop.svn.wordpress.org/trunk@25869


git-svn-id: http://core.svn.wordpress.org/trunk@25781 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 18:18:09 +00:00
Andrew Nacin
74488bdcb0 Spell out duplicate hook locations.
props DrewAPicture.
fixes #25658.

Built from https://develop.svn.wordpress.org/trunk@25868


git-svn-id: http://core.svn.wordpress.org/trunk@25780 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 17:22:11 +00:00
Andrew Nacin
a160441c81 Updates: Disable maintenance mode once we've finished copying files, to minimize disruption.
props dd32.
fixes #25655.

Built from https://develop.svn.wordpress.org/trunk@25866


git-svn-id: http://core.svn.wordpress.org/trunk@25778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 17:20:10 +00:00
Andrew Nacin
097c0fd0b6 Updates: Saner stats and rollback handling. WP.org now collects basic stats on non-auto updates as they have been hugely informative.
props dd32 for initial patch.
fixes #25657.

Built from https://develop.svn.wordpress.org/trunk@25863


git-svn-id: http://core.svn.wordpress.org/trunk@25775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 09:49:09 +00:00
Andrew Nacin
64bd5aa564 Move upgrader_process_complete for core to its proper place in Core_Upgrader.
This means it will be firing as a JS redirect is taking place if the update is from pre-3.4. Acceptable.

props dd32.
fixes #25659.

Built from https://develop.svn.wordpress.org/trunk@25861


git-svn-id: http://core.svn.wordpress.org/trunk@25773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 04:37:09 +00:00
Andrew Nacin
5a0b227316 Rename the automatic_updates_send_email filter to auto_core_update_send_email. (Final name change.)
fixes #25653. Also:
 * Fully document all new hooks, methods, and classes in the upgrader.
 * Rename 'language' to 'translation' inside the upgrader.
 * Improve the readability of the crazy do-while loop in the is_vcs_checkout() method.

Built from https://develop.svn.wordpress.org/trunk@25859


git-svn-id: http://core.svn.wordpress.org/trunk@25771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-21 22:29:09 +00:00
Andrew Nacin
ee489a2e81 Commit [25823] should not have renamed AUTOMATIC_UPDATER_DISABLED to AUTOMATIC_UPDATES_DISABLED.
The proper constant is AUTOMATIC_UPDATER_DISABLED. Keep the filter in line with that too.

see #22704.

Built from https://develop.svn.wordpress.org/trunk@25851


git-svn-id: http://core.svn.wordpress.org/trunk@25763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-18 21:24:10 +00:00
Andrew Nacin
c00bba9e8b Use correct variable. fixes #10787.
Built from https://develop.svn.wordpress.org/trunk@25843


git-svn-id: http://core.svn.wordpress.org/trunk@25755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-18 17:16:10 +00:00
Andrew Nacin
ee20af1fad Notify administrators of successful, failed, and pending core updates.
Blocks future background updates after critical failures, but allow retries in certain situations. More in the ticket.

fixes #10787.

Built from https://develop.svn.wordpress.org/trunk@25841


git-svn-id: http://core.svn.wordpress.org/trunk@25753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-18 16:30:11 +00:00
Andrew Nacin
859da01c4a Delete expired transients on database upgrades.
Reverts [25416], which had all transients being cleared. This leaves much to be desired, but we don't want a core update to be blamed for breaking a site that incorrectly assumes transients aren't transient.

props dartiss, pento.
fixes #20316.

Built from https://develop.svn.wordpress.org/trunk@25838


git-svn-id: http://core.svn.wordpress.org/trunk@25750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-18 07:48:09 +00:00
Andrew Nacin
5f3e90a112 Introduce email templates for automatic background updates.
The four templates are:
 1. We successfully updated their site. If any of their themes or plugins are out of date, it also mentions that. ('success')
 2. We are not configured to update their site, so we notify them of the new release. ('notify')
 3. We tried but failed to update their site. The error was early in the process, so no harm, no foul. This is the same as template #2, plus one sentence. ('fail')
 4. We tried to update their site, and failed while copying files. ('critical')

With assistance from markjaquith.

see #10787.

Built from https://develop.svn.wordpress.org/trunk@25837


git-svn-id: http://core.svn.wordpress.org/trunk@25749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-18 06:33:10 +00:00
Andrew Nacin
325ccd0a14 set_current_screen() is now unnecessary in Automatic_Upgrader_Skin, which is good because it breaks things in the network admin.
fixes #25622.

Built from https://develop.svn.wordpress.org/trunk@25836


git-svn-id: http://core.svn.wordpress.org/trunk@25748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 23:24:09 +00:00
Andrew Nacin
a65661abee In automatic background updates, standardize on 'update'.
New, final filter names:
 * auto_update_{$type} (plugin, theme, core, language)
 * automatic_updates_is_vcs_checkout
 * automatic_updates_disabled

New class name is WP_Automatic_Updater. Method names include update() and should_update().

see #22704.

Built from https://develop.svn.wordpress.org/trunk@25835


git-svn-id: http://core.svn.wordpress.org/trunk@25747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 23:21:10 +00:00
Dion Hulse
924e35d66a Silence PHP warnings from disk_free_space(). disk_free_space() will produce a warning in error conditions in addition to returning false, this includes a case where the bytes free is greater than PHP_INT_MAX (which is a error condition we don't need to check).
See #25576, #22704

Built from https://develop.svn.wordpress.org/trunk@25831


git-svn-id: http://core.svn.wordpress.org/trunk@25743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 18:40:10 +00:00
Dion Hulse
1c8d882e13 For Background updates, ensure that only one update process runs at the same time by using the options table as a lock.
This prevents multiple cron spawns and/or long-running updates from causing multiple update processes to spin up.
This also fixes a case where the upgrader might kick in for ( ! is_main_network() || ! is_main_site() ) in mulisite installs.
See #22704

Built from https://develop.svn.wordpress.org/trunk@25828


git-svn-id: http://core.svn.wordpress.org/trunk@25740 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 05:24:09 +00:00
Andrew Nacin
9432acde4e Remove the old wp_auto_updates_maybe_update cron event. Schedule the new wp_maybe_auto_update event at 7 a.m. and 7 p.m. in the site's timezone.
see #27704.

Built from https://develop.svn.wordpress.org/trunk@25825


git-svn-id: http://core.svn.wordpress.org/trunk@25737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 04:02:09 +00:00
Andrew Nacin
191efaef61 Make WP_Automatic_Upgrader a proper object that gets instantiated. Renames nearly all of its methods.
Also renames wp_auto_updates_maybe_update() to wp_maybe_auto_update().

see #22704.

Built from https://develop.svn.wordpress.org/trunk@25823


git-svn-id: http://core.svn.wordpress.org/trunk@25735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 00:55:09 +00:00
Dion Hulse
640f73ecd2 Remove a duplicate semicolon that snuck in. Props JustinSainton. See #18200
Built from https://develop.svn.wordpress.org/trunk@25822


git-svn-id: http://core.svn.wordpress.org/trunk@25734 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-17 00:12:10 +00:00
Dion Hulse
376a0a55c7 Allow the WordPress.org Language update API to disallow automated background updates for a specific language pack. See #18200
Built from https://develop.svn.wordpress.org/trunk@25818


git-svn-id: http://core.svn.wordpress.org/trunk@25730 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 22:27:09 +00:00
Dion Hulse
ed07bab4b4 When a plugin enables Background Plugin updates, don't deactivate the plugin during update as we require a browser to reactivate it afterwards. See #22704
Built from https://develop.svn.wordpress.org/trunk@25817


git-svn-id: http://core.svn.wordpress.org/trunk@25729 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 19:48:10 +00:00
Andrew Nacin
bccefbbd83 Merge the should_auto_update() and can_auto_update() methods. see #22704.
Built from https://develop.svn.wordpress.org/trunk@25815


git-svn-id: http://core.svn.wordpress.org/trunk@25727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 19:35:09 +00:00
Dion Hulse
085f5c5fb9 Fix a issue where the translation name isn't showing up in the Background Update emails, caused by a PHP Warning/missing variable in [25806]. See #18200
Built from https://develop.svn.wordpress.org/trunk@25812


git-svn-id: http://core.svn.wordpress.org/trunk@25724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 17:07:08 +00:00
Dion Hulse
8c35982ae8 Avoid a few PHP Warnings when files don't exist and use a better method to locate the local filepath.
See #18201

Built from https://develop.svn.wordpress.org/trunk@25811


git-svn-id: http://core.svn.wordpress.org/trunk@25723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 15:20:10 +00:00
Andrew Nacin
ba0ebf3736 Include translations in the update bubbles (as +1 if there are any). see #18200.
Built from https://develop.svn.wordpress.org/trunk@25810


git-svn-id: http://core.svn.wordpress.org/trunk@25722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 14:34:10 +00:00
Dion Hulse
84cec7b526 Remove the no longer used Headerless_Upgrader_Skin class, it's been replaced by Language_Pack_Upgrader_Skin.
See #18200, [25806]

Built from https://develop.svn.wordpress.org/trunk@25807


git-svn-id: http://core.svn.wordpress.org/trunk@25719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 04:19:09 +00:00
Dion Hulse
1c8e79353a Language Packs: Many many fixes such as:
- Add a "Update Translations" stand-alone button to the updates page
- Shift Language feedback to before update process completion action links & limit the verbosity of output (name + success/errors)
- Simplify/combine the language update descriptive string to only include a plugin/theme name
- Properly handle cache clearing after language updates to prevent langs being repeditively updated
- Display a "All items up to date" string when there's nothing to do
- Reduce the 'Connection Information' from a <h2> to a <h3> to remove duplicate h2's and screen icons from update screens
- Fix the Direct filesystem method not being used for Language updates because WP_LANG_DIR doesn't exist (check it's parent for writable instead)
See #18200, #22704


Built from https://develop.svn.wordpress.org/trunk@25806


git-svn-id: http://core.svn.wordpress.org/trunk@25718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 04:15:09 +00:00
Andrew Nacin
9fe39c464a Avoid numerous potential PHP warnings when dealing with the pre-r25801 get_core_checksums() return value.
Warnings included current(), filestat(), and md5_file().

see #18201. see #22704.

Built from https://develop.svn.wordpress.org/trunk@25805


git-svn-id: http://core.svn.wordpress.org/trunk@25717 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-16 04:02:09 +00:00
Andrew Nacin
4542fbb2ae Significantly simplify get_core_checksums(), as the caching and chunking was causing too much grief.
Make sure we only do our pre-flight is_writable check when the file exists.

see #18201. see #22704.

Built from https://develop.svn.wordpress.org/trunk@25801


git-svn-id: http://core.svn.wordpress.org/trunk@25713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-15 23:03:10 +00:00
Andrew Nacin
9507d22243 Use correct variable. see #22704.
Built from https://develop.svn.wordpress.org/trunk@25800


git-svn-id: http://core.svn.wordpress.org/trunk@25712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-15 22:07:09 +00:00
Andrew Nacin
95831a8a67 Remove accidental debug cruft in [25780]. see #22704.
Built from https://develop.svn.wordpress.org/trunk@25799


git-svn-id: http://core.svn.wordpress.org/trunk@25711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-15 21:24:09 +00:00
Andrew Nacin
2100fa65fd Avoid our pre-flight writable checks if get_core_checksums() doesn't exist yet.
Thus, it will not work for 3.6 => 3.7, only 3.7+.

see #22704.

Built from https://develop.svn.wordpress.org/trunk@25798


git-svn-id: http://core.svn.wordpress.org/trunk@25710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-15 20:35:10 +00:00
Andrew Nacin
a6188bc84a Only add error data to the files_not_writable WP_Error if the install already has [25775] and [25796] applied.
see #22704.

Built from https://develop.svn.wordpress.org/trunk@25797


git-svn-id: http://core.svn.wordpress.org/trunk@25709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-15 20:01:09 +00:00
Andrew Nacin
82547b21b6 In show_message(), only print error data if it is a string.
see #25576, [25775].

Built from https://develop.svn.wordpress.org/trunk@25796


git-svn-id: http://core.svn.wordpress.org/trunk@25708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-15 19:51:10 +00:00