Commit Graph

164 Commits

Author SHA1 Message Date
Andrew Nacin
f36fbb550c New, better error message when we realize we won't be able to copy a file and continue with the update.
fixes #25652.


git-svn-id: https://develop.svn.wordpress.org/trunk@25870 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-22 18:20:51 +00:00
Andrew Nacin
d0d07cf614 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25863 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-22 09:48:36 +00:00
Andrew Nacin
bce2656e6d 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25861 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-22 04:36:54 +00:00
Andrew Nacin
597e82e94c 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25859 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-21 22:28:07 +00:00
Andrew Nacin
d96b64c116 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25851 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-18 21:23:43 +00:00
Andrew Nacin
fda5b39db2 Use correct variable. fixes #10787.
git-svn-id: https://develop.svn.wordpress.org/trunk@25843 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-18 17:15:36 +00:00
Andrew Nacin
0b22aae62d 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25841 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-18 16:29:16 +00:00
Andrew Nacin
92c2bc7797 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25837 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-18 06:32:27 +00:00
Andrew Nacin
8cb344e237 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25835 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-17 23:20:56 +00:00
Dion Hulse
d2d9b963a2 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


git-svn-id: https://develop.svn.wordpress.org/trunk@25828 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-17 05:23:35 +00:00
Andrew Nacin
c39143fd2e 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25823 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-17 00:54:15 +00:00
Dion Hulse
d0bd68cf5f Remove a duplicate semicolon that snuck in. Props JustinSainton. See #18200
git-svn-id: https://develop.svn.wordpress.org/trunk@25822 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-17 00:11:25 +00:00
Dion Hulse
d5aba84213 Allow the WordPress.org Language update API to disallow automated background updates for a specific language pack. See #18200
git-svn-id: https://develop.svn.wordpress.org/trunk@25818 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-16 22:26:47 +00:00
Dion Hulse
853c9a50bd 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
git-svn-id: https://develop.svn.wordpress.org/trunk@25817 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-16 19:47:21 +00:00
Andrew Nacin
977ca48a58 Merge the should_auto_update() and can_auto_update() methods. see #22704.
git-svn-id: https://develop.svn.wordpress.org/trunk@25815 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-16 19:34:05 +00:00
Dion Hulse
aa5c907e40 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
git-svn-id: https://develop.svn.wordpress.org/trunk@25812 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-16 17:06:58 +00:00
Dion Hulse
ddaaa6d88a 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



git-svn-id: https://develop.svn.wordpress.org/trunk@25806 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-16 04:14:29 +00:00
Andrew Nacin
867f084ca0 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@25801 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-15 23:02:28 +00:00
Dion Hulse
fa79184a7d Fix a misspelling of the filter we're checking for, s/fs_method/filesystem_method/.
My bad. See #22704, [25781].


git-svn-id: https://develop.svn.wordpress.org/trunk@25787 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-15 14:54:29 +00:00
Andrew Nacin
85d32ce873 Automatic updates: An error code containing 'do_rollback' can be used to trigger a rollback.
This could enable the triggering of a rollback in update_core() in wp-admin/includes/update-core.php.

see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25782 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-15 02:58:07 +00:00
Andrew Nacin
1918e828da Automatic updates: Include error data in the follow-up API request.
props dd32.
see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25781 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-14 23:32:47 +00:00
Andrew Nacin
d6a1b681d3 Auto updates: Only attempt a roll back when we've hit a critical error code.
Specifically, this means when we've failed in copying files.

see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25777 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-14 21:02:46 +00:00
Andrew Nacin
7bf44580a9 Add explicit link to the installation being updated in debugging emails. see #22704.
git-svn-id: https://develop.svn.wordpress.org/trunk@25770 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-12 20:17:20 +00:00
Andrew Nacin
9eff9eaebe Silence possible warnings from is_dir(). fixes #25572.
git-svn-id: https://develop.svn.wordpress.org/trunk@25764 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-11 17:10:18 +00:00
Andrew Nacin
2e605e76c6 Refine error codes throughout the upgrader so we can better detect at what stage updates fail.
see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25763 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-11 16:05:13 +00:00
Andrew Nacin
627b25bf50 Auto updates: For follow-up API call when an update fails, send back the version attempted. see #22704.
git-svn-id: https://develop.svn.wordpress.org/trunk@25755 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-10 14:45:55 +00:00
Dion Hulse
f0571c02b7 After a upgrade fails, and we successfully rollback to a previous version, Don't send the version we rolled back to to the API, just that it was successful. See [25750]. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25752 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-10 01:56:44 +00:00
Dion Hulse
e03279e8b0 In the event that an Automatic Upgrade fails, send a failure status on the next API request to indicate that it failed, and if the rollback was successful.
See #22704


git-svn-id: https://develop.svn.wordpress.org/trunk@25750 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-10 01:31:22 +00:00
Andrew Nacin
40ea01d759 Be as sure as possible that WordPress is not under version control when deciding if we should do automatic updates.
see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25700 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-06 15:45:09 +00:00
Andrew Nacin
df647346b1 Don't use a double negative.
props TobiasBg.
fixes #18201.


git-svn-id: https://develop.svn.wordpress.org/trunk@25674 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 21:49:34 +00:00
Andrew Nacin
64d3d53838 More string cleanups.
git-svn-id: https://develop.svn.wordpress.org/trunk@25658 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 18:50:45 +00:00
Andrew Nacin
fc97814a23 This error message should have a period.
git-svn-id: https://develop.svn.wordpress.org/trunk@25656 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 17:44:09 +00:00
Andrew Nacin
49e7cf1a30 Rollback is not a verb.
git-svn-id: https://develop.svn.wordpress.org/trunk@25655 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 17:43:15 +00:00
Dion Hulse
6d29f14560 Automatic Updates: Remove some debug from [25649] See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25651 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-30 00:29:19 +00:00
Dion Hulse
3fa23828e3 Automatic Updates: Disable Automatic updates for Mercurial(HG) and Bazaar(bzr) version control systems in addition to Git and SVN. Props jamescollins. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25650 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-30 00:24:06 +00:00
Dion Hulse
05a01e5964 Automatic Updates: Add a rollback functionality upon installation failure, the rollback package will be available for partial-updates for automatic updates and be similar to our existing partial builds (but in reverse).
A further iteration of this is to also detect whitescreens (fatals) after a auto update, and trigger the rollback for that too.
See #22704


git-svn-id: https://develop.svn.wordpress.org/trunk@25649 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-30 00:20:35 +00:00
Dion Hulse
f1928e42bf MD5 file verification: Prevent md5_file() warnings when files don't exist, additionally, don't verify wp-content files as they can be updated separately, as well as WP_CONTENT_DIR being set elsewhere. See #22704 See #18201
git-svn-id: https://develop.svn.wordpress.org/trunk@25648 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-29 23:07:59 +00:00
Dion Hulse
fefaa807e9 Automatic Updates: Skip doing the sanity checking MD5 before deciding if we should use a partial build or not, This change means we always use a partial build for automatic updates. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25647 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-29 22:59:46 +00:00
Andrew Nacin
c3a6047584 Fix strict notice. see #22704.
git-svn-id: https://develop.svn.wordpress.org/trunk@25635 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-28 06:32:14 +00:00
Andrew Nacin
ed31cbfab1 Changes to automatic background updates in preparation for Beta 1.
* Show a notice for beta testers on update-core.php explaining the status of their install. Three possibilities: auto updates are enabled, auto updates are disabled because the install doesn't support SSL HTTP requests, and auto updates are disabled because it is a VCS checkout.
 * Improve the output of the email, for maximum debugging potential. Failures are clearly labeled and the email leads testers to the support forums and Trac.
 * Try to create wp-content/languages in the upgrader if it doesn't exist. Our mkdir isn't recursive, so trying to create wp-content/languages/plugins could fail.
 * Abstract out version control checkout determination into a public method. The filter is now auto_upgrade_is_vcs_checkout, still subject to change.

see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25633 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-27 23:20:08 +00:00
Dion Hulse
e4a523977f Automatic Updates: Correct a typo of a constant, s/DISABLE_FILE_MODS/DISALLOW_FILE_MODS/. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25599 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-24 07:15:58 +00:00
Dion Hulse
c8251ec989 Automatic Core Updates: Enable Core Automatic Updates for Security releases, Development nightly releases, and, Language packs. See #22704
For more information on Automatic Core Updates, See #22704 and http://wp.me/p2AvED-1Lo



git-svn-id: https://develop.svn.wordpress.org/trunk@25598 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-24 03:35:53 +00:00
Dion Hulse
aa9a8de56b Language Packs: Integrate Language Packs into the Auto-upgrader. See #18200 See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25568 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-23 09:37:25 +00:00
Andrew Nacin
330a8daccd Add a language pack upgrader class.
At the conclusion of any upgrade, after the transients are refreshed from the API, pending translations are downloaded and installed to wp-content/languages.

props dd32.
see #18200.


git-svn-id: https://develop.svn.wordpress.org/trunk@25566 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-23 02:07:51 +00:00
Dion Hulse
f0fa5f821e Add a missing . in the Hook documentation from r25542 See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25543 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-21 07:01:23 +00:00
Dion Hulse
6048f75b93 WordPress Core Automatic Updates: Add a filter as to whether or not to send the site administrator a summary of executed updates. Props JustinSainton. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25542 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-21 06:59:25 +00:00
Dion Hulse
eb3bee3ba5 Upgrader: Perform a MD5 file verification check on the files during upgrade. This ensures that both a Partial upgrade build can be used, and that all the files were copied into place correctly.
Props pento for initial patch. Fixes #18201


git-svn-id: https://develop.svn.wordpress.org/trunk@25540 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-21 06:48:20 +00:00
Dion Hulse
f52d0a96af WordPress Core Automatic Updates: Add a post-upgrade summary email to the WordPress install's admin email address. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25496 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-19 08:45:06 +00:00
Dion Hulse
fb0b86a078 Upgrader: Fix the order of arguements passed to wp_parse_args() in the Upgrader, introduced with [25272]. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25495 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-19 08:39:51 +00:00
Dion Hulse
ed8f918e4e WordPress Core Automatic Updates: Remove some debug. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25468 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-17 04:07:35 +00:00
Dion Hulse
d1dcc8cca3 WordPress Core Automatic Updates: Switch from using a transient for locking the upgrade process, to using a site option. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25467 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-17 02:27:21 +00:00
Dion Hulse
3ec962dd56 WordPress Core Automatic Updates: Remove an accidental closure which isn't supported in PHP 5.2. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25447 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-15 01:25:56 +00:00
Dion Hulse
9c1b30860c Upgrader: Allow plugins to short-circuit the package download. Props rmccue and DrewAPicture. Fixes #22378
git-svn-id: https://develop.svn.wordpress.org/trunk@25427 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-13 12:52:28 +00:00
Dion Hulse
5959a7011b WordPress Core Automatic Updates: Pass the Filesystem path as $context to request_filesystem_credentials(). See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25422 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-13 06:52:11 +00:00
Dion Hulse
63956aa479 WordPress Core Automatic Updates: Add the first slice of Automatic Upgrades, This is presently disabled, and requires a filter to enable ( 'auto_upgrade_core' ). See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25421 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-13 06:18:16 +00:00
Sergey Biryukov
a56e83373d Consistently call skin methods in WP_Upgrader. fixes #25254.
git-svn-id: https://develop.svn.wordpress.org/trunk@25370 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-12 02:42:10 +00:00
Dion Hulse
9095e4b866 Upgrader: Make clearing the Plugin and Theme update caches optional during install and upgrade proceedures. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25272 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-06 01:32:09 +00:00
Scott Taylor
16ef2c2e36 Remove lingering instances of call time pass-by-reference, limited to instances of callable - use $this instead of &$this.
Props jdgrimes.
See #25160.



git-svn-id: https://develop.svn.wordpress.org/trunk@25254 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-05 16:33:50 +00:00
Dion Hulse
ea02f466c9 Upgrader: Split the UI "skins" out from the main Upgrader file into a seperate file to reduce the length of the files. See #22704
git-svn-id: https://develop.svn.wordpress.org/trunk@25227 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-04 06:34:38 +00:00
Dion Hulse
b518606d42 Plugin Upgrader: Plugin_Upgrader::upgrade() returns nothing in event of success, every other install(), upgrade() and bulk_upgrade() method returns true, so return true;
git-svn-id: https://develop.svn.wordpress.org/trunk@25181 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-30 07:37:32 +00:00
Dion Hulse
e320a48146 Theme Upgrader: Be super-careful and check the contents of the $wp_theme_directories variable before merging it, if someone has changed it directly, or worse, unset it, this could've resulted in the $protected_directories being empty. See [25082] See #22501
git-svn-id: https://develop.svn.wordpress.org/trunk@25180 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-30 07:34:24 +00:00
Dion Hulse
2ceaba8b30 Theme Installer/Updater: Handle custom Theme directories when updating themes, and installing new themes. Fixes #22501
git-svn-id: https://develop.svn.wordpress.org/trunk@25082 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-22 04:49:06 +00:00
Dion Hulse
c6e43f5327 WP_Upgrader: Don't activate maintenance mode in bulk_upgrade() when no Themes or Plugins are specified. This doesn't affect Core, but rather, plugins who use the upgrade routines and do not do precautionary tests. Props jamescollins. Fixes #24496
git-svn-id: https://develop.svn.wordpress.org/trunk@25048 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-17 05:35:17 +00:00
Andrew Nacin
b43712e0f7 New develop.svn.wordpress.org repository based on the old core.svn repository.
* All WordPress files move to a src/ directory.
 * New task runner (Grunt), configured to copy a built WordPress to build/.
 * svn:ignore and .gitignore for Gruntfile.js, wp-config.php, and node.js.
 * Remove Akismet external from develop.svn. Still exists in core.svn.
 * Drop minified files from src/. The build process will now generate these.

props koop.
see #24976.

and see http://wp.me/p2AvED-1AI.



git-svn-id: https://develop.svn.wordpress.org/trunk@25001 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-07 05:25:25 +00:00