WordPress.org

Make WordPress Core

Opened 16 months ago

Last modified 11 days ago

#23113 new defect (bug)

Automatic notice of new localized version missing

Reported by: pavelevap Owned by:
Milestone: WordPress.org Priority: normal
Severity: major Version: 3.5
Component: Upgrade/Install Keywords:
Focuses: Cc:

Description

There was standard behaviour, that users could upgrade quickly to the latest WordPress version and when localized version was ready and released, notice about new localized version appeared in administration. But some users found that it was changed (in 3.5 or maybe 3.4) and when they upgrade to English version, they are not noticed about new Czech version in the future which is annoying. I tried it on some websites and it is true. I am not sure, if it is wanted change (but does not make sense for me) or bug (regression)?

Change History (9)

comment:1 SergeyBiryukov16 months ago

  • Milestone changed from Awaiting Review to WordPress.org

I don't remember that behaviour, probably becaused I've never tried to update to English version first. Still, doesn't sound like an intended change.

Version 0, edited 16 months ago by SergeyBiryukov (next)

comment:2 dimadin16 months ago

  • Cc forumi@… added

It's hard to reproduce this until new release. I suspect that this is issue with api.wordpress.org that doesn't indicate that locale package is 'upgrade' and instead marks it as 'latest'.

If you have access to some sites that have upgraded to en_US but didn't to locale one, I can give you code to debug response they get.

comment:3 pavelevap16 months ago

Sure, I can test it. But it can be reproduced when you install Localized version (3.4.2) and then manually (FTP) upgrade to English version (3.5). There should be an update notice to latest Localized version (3.5) as it was several months ago.

comment:4 follow-up: pavelevap15 months ago

  • Severity changed from normal to major

There is another serious problem which is probably also somehow related.

1) Install English version of 3.4.2

2) Add following code into wp-config.php:

define('WPLANG', 'cs_CZ');

3) After uploading localized files into wp-content/languages is WordPress install localized.

But it is not possible to update to Czech version of WordPress 3.5. There is only English version available. It is also regression, because it was possible several months ago. Now there is no chance to update to localized version and several Czech users had troubles with this behaviour. So, when you start working in English and want to switch to localized version, automatic updates will not work. Never. Too bad...

It is probaly caused by some new check for $wp_local_package in wp-includes/version.php ?

comment:5 in reply to: ↑ 4 SergeyBiryukov15 months ago

Replying to pavelevap:

But it is not possible to update to Czech version of WordPress 3.5. There is only English version available. It is also regression, because it was possible several months ago.

Could not reproduce. When I complete those 3 steps with define('WPLANG', 'ru_RU'), I get both Russian and English 3.5.1 packages listed on the Updates screen. Note that the Updates screen has a 60 seconds timeout before refreshing the data.

With define('WPLANG', 'cs_CZ'), currently only the English package is displayed indeed, probably because there's no 3.5.1 package on cs.wordpress.org yet.

comment:6 pavelevap15 months ago

Hmmm, strange, it works now... Tested with latest 3.5.1 and Czech version is offered for update... Sorry, for bothering you, maybe somehow corrupted cs_CZ package or problem with connectivity?

But originally reported problem is still not solved. Steps to reproduce:

1) Install English version of 3.5.1

2) Add following code into wp-config.php:

define('WPLANG', 'cs_CZ');

3) Go to Dashboard - Updates.

There are options to Re-install or Download Czech version (after clicking Check again button), but original English version is missing. Also Re-install button for Czech version should be highlighted (blue)? And there should be also standard notice (yellow row), that there is new localized version available (user has only English version with one line in wp-config and missing $wp_local_package in wp-includes/version.php)?

Different steps for this (or similar) problem are mentioned here: http://core.trac.wordpress.org/ticket/23113#comment:3

comment:7 SergeyBiryukov15 months ago

Replying to pavelevap:

There are options to Re-install or Download Czech version (after clicking Check again button), but original English version is missing.

Confirmed. The API doesn't return the English package when version is the latest release and local_package is not set:

http://api.wordpress.org/core/version-check/1.6/?version=3.5.1&php=5.2.14&locale=cs_CZ&mysql=5.0.45&local_package=&blogs=1&users=1&multisite_enabled=0

Response:

a:1:{s:6:"offers";a:1:{i:0;a:9:{s:8:"response";s:6:"latest";s:8:"download";s:49:"http://cs.wordpress.org/wordpress-3.5.1-cs_CZ.zip";s:6:"locale";s:5:"cs_CZ";s:8:"packages";a:4:{s:4:"full";s:49:"http://cs.wordpress.org/wordpress-3.5.1-cs_CZ.zip";s:10:"no_content";b:0;s:11:"new_bundled";b:0;s:7:"partial";b:0;}s:7:"current";s:5:"3.5.1";s:11:"php_version";s:5:"5.2.4";s:13:"mysql_version";s:3:"5.0";s:11:"new_bundled";s:3:"3.5";s:15:"partial_version";b:0;}}}

With local_package set:

http://api.wordpress.org/core/version-check/1.6/?version=3.5.1&php=5.2.14&locale=cs_CZ&mysql=5.0.45&local_package=cs_CZ&blogs=1&users=1&multisite_enabled=0

Response:

a:1:{s:6:"offers";a:2:{i:0;a:9:{s:8:"response";s:6:"latest";s:8:"download";s:49:"http://cs.wordpress.org/wordpress-3.5.1-cs_CZ.zip";s:6:"locale";s:5:"cs_CZ";s:8:"packages";a:4:{s:4:"full";s:49:"http://cs.wordpress.org/wordpress-3.5.1-cs_CZ.zip";s:10:"no_content";b:0;s:11:"new_bundled";b:0;s:7:"partial";b:0;}s:7:"current";s:5:"3.5.1";s:11:"php_version";s:5:"5.2.4";s:13:"mysql_version";s:3:"5.0";s:11:"new_bundled";s:3:"3.5";s:15:"partial_version";b:0;}i:1;a:9:{s:8:"response";s:6:"latest";s:8:"download";s:40:"http://wordpress.org/wordpress-3.5.1.zip";s:6:"locale";s:5:"en_US";s:8:"packages";a:4:{s:4:"full";s:40:"http://wordpress.org/wordpress-3.5.1.zip";s:10:"no_content";s:51:"http://wordpress.org/wordpress-3.5.1-no-content.zip";s:11:"new_bundled";s:52:"http://wordpress.org/wordpress-3.5.1-new-bundled.zip";s:7:"partial";b:0;}s:7:"current";s:5:"3.5.1";s:11:"php_version";s:5:"5.2.4";s:13:"mysql_version";s:3:"5.0";s:11:"new_bundled";s:3:"3.5";s:15:"partial_version";b:0;}}}

Note "offers";a:1 (Czech version only) vs. "offers";a:2 (both Czech and English versions).

If I change version from 3.5.1 to 3.5 or 3.4.2 though (anything earlier than the current stable release), the API returns both English and Czech versions, regardless of local_package value.

However, this sounds different from the original issue in the description and comment:3 (the inability to install Czech version after upgrading to English version), which I could not reproduce.

After completing the steps from comment:3, I get update notifications for both Czech and English 3.5.1 package. If I update to 3.5.1-en_US, I only get the ability to re-install or download the Czech version (the English version disappears), as you describe in comment:6.

Note that the Updates screen has a 60 seconds timeout before refreshing the data:
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/update.php#L37
When testing, I set the $timeout value in line 38 to 0, so that I could see the results immediately.

Last edited 15 months ago by SergeyBiryukov (previous) (diff)

comment:8 nacin15 months ago

FYI, with version-check/1.6, you can use ?debug to trigger a non-serialized response that's easier to read.

The API doesn't return the English package when version is the latest release and local_package is not set

Indeed. Not that it shouldn't change, but this is the same behavior prior to the 1.6 version of the API. Replace 1.6 with 1.5 and you'll get the same.

Note: See TracTickets for help on using tickets.