-
Notifications
You must be signed in to change notification settings - Fork 815
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add/cron api endpoint #5324
Add/cron api endpoint #5324
Conversation
protected function validate_call( $_blog_id, $capability, $check_manage_active = true ) { | ||
parent::validate_call( $_blog_id, $capability, false ); | ||
} | ||
protected function result() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you need to define result() here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This part was removed.
class Jetpack_JSON_API_Cron_Get_Endpoint extends Jetpack_JSON_API_Cron_Endpoint { | ||
protected $needed_capabilities = 'manage_options'; | ||
|
||
protected function validate_call( $_blog_id, $capability, $check_manage_active = true ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is defined in the parent. Probably don't need to do it here too.
} | ||
|
||
protected function result() { | ||
$cron = _get_cron_array(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to have this defined as a variable if we're only returning it in the response:
return array(
'cron_array' => _get_cron_array(),
'current_timestamp' => time()
);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also the spacing is weird in this function.
protected function result() { | ||
define('DOING_CRON', true); | ||
|
||
if ( false === $crons = _get_cron_array() ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Coding standards - no single-line if's.
$keys = array_keys( $crons ); | ||
$gmt_time = microtime( true ); | ||
|
||
if ( isset($keys[0]) && $keys[0] > $gmt_time ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As above.
* Fires scheduled events. | ||
* | ||
* @ignore | ||
* @since 2.1.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably not re-document this filter here, but just include @see wp-cron.php
or whatever the standard is.
} | ||
|
||
// POST /sites/%s/cron | ||
class Jetpack_JSON_API_Cron_Post_Endpoint extends Jetpack_JSON_API_Cron_Endpoint { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You might want to try set_time_limit(0)
at the start of this method, or your jobs could get killed with impunity. Often there are other timeouts too though, need to be mindful of that (e.g. Apache will often set a 5 minute response packet timeout)
set_transient( 'doing_cron', $doing_wp_cron ); | ||
$processed_events = array(); | ||
|
||
foreach ( $crons as $timestamp => $cronhooks ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spacing, looks like you have an extra tab here.
if ( $timestamp > $gmt_time ) | ||
break; | ||
|
||
foreach ( $cronhooks as $hook => $keys ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed, we should probably be able to supply a comma-delimited set of cron jobs to run, and if that's set then we should check against it here so we only run the specified jobs.
} | ||
} | ||
|
||
if ( $this->get_cron_lock() == $doing_wp_cron ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Single-line if
|
||
// POST /sites/%s/cron | ||
class Jetpack_JSON_API_Cron_Post_Endpoint extends Jetpack_JSON_API_Endpoint { | ||
protected $needed_capabilities = 'manage_options'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could extend Jetpack_JSON_API_Cron_Get_Endpoint
so we don't have to redefine this and validate_call
|
||
$args = $this->input(); | ||
|
||
'request_format' => array( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this isn't a variable :)
'group' => '__do_not_document', | ||
'method' => 'GET', | ||
'path' => '/sites/%s/cron', | ||
'stat' => 'cron', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's have different stats for GET and POST
$value = wp_cache_get( 'doing_cron', 'transient', true ); | ||
} else { | ||
$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) ); | ||
if ( is_object( $row ) ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing {
240c7ee
to
e1028a3
Compare
} | ||
|
||
protected function sanitize_hook( $hook ) { | ||
return preg_replace( '/[^A-Za-z0-9-_]/', '', $hook ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we sync any hooks with uppercase characters?
Can we use sanitize_key()
instead of rolling our own regex? The difference is that sanitize_key()
converts uppercase characters to lowercase and also allows dashes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my testing I haven't come across uppercase keys but it doesn't meant that and there are not many actions that user uppercase. I would keep things as they are. Since it is a bit more liberal then the current sanitize_key() implementation. Maybe WP needs to add sanitize_action().
|
||
protected function resolve_arguments() { | ||
$args = $this->input(); | ||
return ! isset( $args['arguments'] ) ? array() : json_decode( $args['arguments'] ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of notting !
this, we could just do:
isset( $args['arguments'] ) ? json_decode( $args['arguments'] ) : array()
} | ||
|
||
/** | ||
* This function is based on the one found in wp-cron.php with a simular name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
simular
should be similar
.
$args = $this->input(); | ||
|
||
if ( false === $crons = _get_cron_array() ) { | ||
return new WP_Error( 'no-cron-event', 'Current there are no cron events' ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add an "ly" to "current" to make the string "Currently there are no cron events".
|
||
do_action_ref_array( $hook, $arguments ); | ||
$processed_events[] = array( $hook => $arguments ); | ||
// If the hook ran too long and another cron process stole the lock, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should have an empty newline above this comment to separate it from code above.
$this->maybe_unlock_cron( $lock ); | ||
return array( 'success' => true ); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we're supposed to end files with an empty newline. It's in the Calypso guidelines.
I've never truly understood why, but here is a case for it. http://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline
'$site' => '(int|string) The site ID, The site domain' | ||
), | ||
'request_format' => array( | ||
'hooks' => '(array) List of hooks to run if they have been scheduled', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems indented much more than the others. Is there a reason?
'timestamp' => 1476385523 | ||
), | ||
), | ||
) ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above. We should probably add a newline at the end of the file.
$gmt_time = microtime( true ); | ||
|
||
if ( isset($keys[0]) && $keys[0] > $gmt_time ) { | ||
return new WP_Error( 'no-cron-event', 'Current there are no cron events ready to be run' ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Currently" here as well.
$keys = array_keys( $crons ); | ||
$gmt_time = microtime( true ); | ||
|
||
if ( isset( $keys[0] ) && $keys[0] > $gmt_time ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be worth adding a comment here that the keys in the cron array are the timestamps for when the events are next to be run. It took me a bit to grok that. Perhaps, we could event rename $keys
to something like $timestamps_to_run
.
Not a huge issue though.
$gmt_time = microtime( true ); | ||
|
||
if ( isset( $keys[0] ) && $keys[0] > $gmt_time ) { | ||
return new WP_Error( 'no-cron-event', 'Currently there are no cron events ready to be run' ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this WP_Error have an http status code as the 3rd argument?
|
||
$locked = $this->is_cron_locked( $gmt_time ); | ||
if ( is_wp_error( $locked ) ) { | ||
return $locked; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we're adding a status code here since we're returning this WP_Error
directly.
'hook' => '(string) Hook name that should run when the event is scheduled', | ||
'arguments' => '(string) JSON Object of arguments that the hook will use', | ||
'timestamp' => '(int) Timestamp when the event should take place, has to be in the future', | ||
'recurrence' => '(string) How often the event should take place. Possible values 1min, hourly, twicedaily, daily' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we also handle the case where we want to schedule a single event?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you don't provide a schedule we assume you are only scheduling 1 event.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool. So, perhaps we should just update the string here then to mention something like, if empty, will schedule the event once
?
'hook' => '(string) Hook name that should run when the event is scheduled', | ||
'arguments' => '(string) JSON Object of arguments that the hook will use', | ||
'timestamp' => '(int) Timestamp when the event should take place, has to be in the future', | ||
'recurrence' => '(string) How often the event should take place. Possible values 1min, hourly, twicedaily, daily' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this description is quite right. In the endpoint, we're actually checking if it's any valid schedule, not if it's just one of the few in this string.
), | ||
'request_format' => array( | ||
'hook' => '(string) Hook name that should run when the event is scheduled', | ||
'arguments' => '(string) JSON Object of arguments that the hook will use', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add that arguments is optional since we're checking if it's set in the endpoint?
), | ||
'request_format' => array( | ||
'hook' => '(string) Name of the hook that should be unscheduled', | ||
'arguments' => '(string) JSON Object of arguments that the hook has been scheduled with', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also seems to be optional.
I left several small comments. In my testing, this was functional. 👍 Something to consider is that the PR doesn't seem to have http status code in the Also, it seems that arguments is option for scheduling and unscheduling a post. So, perhaps we should mention that in the endpoint definition/description. |
If no one has any objects I am going to merge this. tomorrow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left a a minor comment about a comment. 😄
I don't have any objections though. So, 🚢 after we make that small change.
@@ -953,7 +953,7 @@ | |||
|
|||
// POST /sites/%s/cron/schedule | |||
new Jetpack_JSON_API_Cron_Schedule_Endpoint( array( | |||
'description' => 'Process items in the cron', | |||
'description' => 'Schedule one or recurring hook to fire at a particular time', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"one or" should probably be "one or more".
- View what items are in the cron. - Run Cron and the items in it. - Schedule an item - Unschedule an item
84e706c
to
763b176
Compare
Changelog: add #5186 Changelog: add #3425 Changelog: add #5365 Changelog: add #5428 Changelog: add #3358 Changelog: add #5183 Changelog: add #4881 Changelog: add #5286 Changelog: add #5395 Changelog: add #5419 Changelog: add #5437 Changelog: add #5291 Update version number Changelog: add #5476, #5413, #5409, #5355, #5348 Changelog: add #5381 Changelog: add #5412 Changelog: add #5386 Changelog: add #5250 CHangelog: add #5011 Changelog: add #5090 Changelog: add IDC fixes. Changelog: add #5259 CHangelog: add #5186 Changelog: add #5236 Changelog: add #5284 Changelog: add #5366 Changelog: add #5382 Changelog: add #5396 Changelog: add #5405 Changelog: add #4897 Changelog: add #5289 Added a changelog entry about #5534. Added a changelog entry about #5479. Added a changelog entry about #5454. Added a changelog entry about #5434. Added a changelog entry about #5408. Added a changelog entry about #5369. Added a changelog entry about #5350. Added a changelog entry about #5324. Added a changelog entry about #5319. Added a changelog entry about #5310. Added a changelog entry about #5282. Added a changelog entry about #5176. Added a changelog entry about #3515. Added a changelog entry about #1542. Added a changelog entry about #5316. Added a changelog entry about #3188. Changelog: add #4987 Changelog: add #5270 Changelog: add #5225 Changelog: add #5507 Changelog: add #5432 Changelog: add #5473 Changelog: add #5392 Changelog: add #5222 Changelog: add #5457 Changelog: add #5423 Changelog: add #5332 Changelog: add #3853 Changelog: add #5237 Changelog: add #5307 Changelog: move up release headliner. Changelog: add #5375 CHangelog: add #5496 Changelog: add #5528 Changelog: add #5537 Changelog: remove new Settings, they're punted to 4.5. Changelog: move release headliner to the top. Changelog: add testing list. Changelog: add #4953 Changelog: add #5575 Changelog: add #5573 Changelog: add #5345
* Changelog: add PRs belonging to 4.4. Changelog: add #5186 Changelog: add #3425 Changelog: add #5365 Changelog: add #5428 Changelog: add #3358 Changelog: add #5183 Changelog: add #4881 Changelog: add #5286 Changelog: add #5395 Changelog: add #5419 Changelog: add #5437 Changelog: add #5291 Update version number Changelog: add #5476, #5413, #5409, #5355, #5348 Changelog: add #5381 Changelog: add #5412 Changelog: add #5386 Changelog: add #5250 CHangelog: add #5011 Changelog: add #5090 Changelog: add IDC fixes. Changelog: add #5259 CHangelog: add #5186 Changelog: add #5236 Changelog: add #5284 Changelog: add #5366 Changelog: add #5382 Changelog: add #5396 Changelog: add #5405 Changelog: add #4897 Changelog: add #5289 Added a changelog entry about #5534. Added a changelog entry about #5479. Added a changelog entry about #5454. Added a changelog entry about #5434. Added a changelog entry about #5408. Added a changelog entry about #5369. Added a changelog entry about #5350. Added a changelog entry about #5324. Added a changelog entry about #5319. Added a changelog entry about #5310. Added a changelog entry about #5282. Added a changelog entry about #5176. Added a changelog entry about #3515. Added a changelog entry about #1542. Added a changelog entry about #5316. Added a changelog entry about #3188. Changelog: add #4987 Changelog: add #5270 Changelog: add #5225 Changelog: add #5507 Changelog: add #5432 Changelog: add #5473 Changelog: add #5392 Changelog: add #5222 Changelog: add #5457 Changelog: add #5423 Changelog: add #5332 Changelog: add #3853 Changelog: add #5237 Changelog: add #5307 Changelog: move up release headliner. Changelog: add #5375 CHangelog: add #5496 Changelog: add #5528 Changelog: add #5537 Changelog: remove new Settings, they're punted to 4.5. Changelog: move release headliner to the top. Changelog: add testing list. Changelog: add #4953 Changelog: add #5575 Changelog: add #5573 Changelog: add #5345 * Changelog: add #5168
* Changelog: add PRs belonging to 4.4. Changelog: add #5186 Changelog: add #3425 Changelog: add #5365 Changelog: add #5428 Changelog: add #3358 Changelog: add #5183 Changelog: add #4881 Changelog: add #5286 Changelog: add #5395 Changelog: add #5419 Changelog: add #5437 Changelog: add #5291 Update version number Changelog: add #5476, #5413, #5409, #5355, #5348 Changelog: add #5381 Changelog: add #5412 Changelog: add #5386 Changelog: add #5250 CHangelog: add #5011 Changelog: add #5090 Changelog: add IDC fixes. Changelog: add #5259 CHangelog: add #5186 Changelog: add #5236 Changelog: add #5284 Changelog: add #5366 Changelog: add #5382 Changelog: add #5396 Changelog: add #5405 Changelog: add #4897 Changelog: add #5289 Added a changelog entry about #5534. Added a changelog entry about #5479. Added a changelog entry about #5454. Added a changelog entry about #5434. Added a changelog entry about #5408. Added a changelog entry about #5369. Added a changelog entry about #5350. Added a changelog entry about #5324. Added a changelog entry about #5319. Added a changelog entry about #5310. Added a changelog entry about #5282. Added a changelog entry about #5176. Added a changelog entry about #3515. Added a changelog entry about #1542. Added a changelog entry about #5316. Added a changelog entry about #3188. Changelog: add #4987 Changelog: add #5270 Changelog: add #5225 Changelog: add #5507 Changelog: add #5432 Changelog: add #5473 Changelog: add #5392 Changelog: add #5222 Changelog: add #5457 Changelog: add #5423 Changelog: add #5332 Changelog: add #3853 Changelog: add #5237 Changelog: add #5307 Changelog: move up release headliner. Changelog: add #5375 CHangelog: add #5496 Changelog: add #5528 Changelog: add #5537 Changelog: remove new Settings, they're punted to 4.5. Changelog: move release headliner to the top. Changelog: add testing list. Changelog: add #4953 Changelog: add #5575 Changelog: add #5573 Changelog: add #5345 * Changelog: add #5168
diff --git a/changelog.txt b/changelog.txt index 78ee043..a03cdb9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,30 @@ -== Changelog == +== Changelog == + += 4.4 = + +**Enhancements** + +* Additional unit tests have been added to improve Jetpack's development process and stability. +* Custom post types have been added to the REST API output. +* Many of the screenshots throughout the plugin have been replaced by SVGs in order to make Jetpack smaller. +* New endpoints have been added to allow the installation of plugins and themes via the API. +* New filters to improve Jetpack's extensibility: jetpack_auth_type, jetpack_nova_menu_item_loop_open_element, jetpack_nova_menu_item_loop_close_element, jetpack_nova_menu_item_loop_class, jetpack_markdown_preserve_shortcodes, jpp_allow_login, jetpack_sharing_headline_html, jetpack_tiled_gallery_template, jetpack_tiled_gallery_partial, jetpack_top_posts_widget_permalink, jetpack_top_posts_widget_permalink, jetpack_widget_visibility_tax_args. +* New widget: "Google Translate" to allow users to translate your site into their own language. +* New widget: "My Community" where you can see who recently interacted with your site. +* One of the biggest issues facing Jetpack users for years now has been difficulties in moving sites from one domain name to another. This update makes strides towards improving that process. +* Photon now uses HTTPS by default. Secure all the things! +* There are now helpful hints throughout the admin interface to make Jetpack easier to use. +* We now allow you to embed from Pinterest. +* We've added a new feature: SEO Tools, available to Jetpack Professional subscribers. +* We've made numerous improvements to the data sync process. +* Welcome back to the Site Stats link in your admin menu! + +**Bug Fixes:** + +* Fixed link to Akismet settings. +* Improved compatibility between Infinite Scroll and WPML, props Vuk Vuković. +* Move email notification settings back with the other email settings in the Discussion Settings. +* Various minor performance/compatibility fixes. = 4.3.2 = diff --git a/readme.txt b/readme.txt index 403b6df..47e2635 100644 --- a/readme.txt +++ b/readme.txt @@ -79,83 +79,27 @@ There are opportunities for developers at all levels to contribute. [Learn more **Enhancements** -* Brand new SEO Tools module. #5307 -* Shortcodes: added Pinterest embeds. #5437 -* VideoPress: refreshed admin interface, seamless integration with the core Media manager, tied with Jetpack Plans. #5457 - -* Admin Page: added a filter to manage if the newly connected user should go to WordPress.com or not. #5319 -* Admin Page: added links to pages where users can fix problems with Akismet and update plugins. #5176 -* Admin Page: added helpful hints to make Jetpack easier to use. #5479 -* Admin Page: redesign Development mode banner. #5186 -* Admin Page: removed unnecessarily loaded theme compatibility files. #5454 -* Admin Page: when user is non admin, Protect module is inactive and they have no access to Stats, don't break the UI trying to go to At a Glance which isn't accessible by them and instead display Apps tab. #5395 -* Admin Page: use SVGs instead of raster images to improve performance. #5419 -* Admin Page: improve design when Development mode is active. #5186 -* Admin Page: improve contrast for better accessibility. #5236 -* Carousel: moved close icon location to the top right. #5237 -* Carousel: change the behavior of the browser's back button after closing a gallery. #5168 -* Contact Form: add horizontal line between message content and meta data. #5270 -* Custom Post Types: added custom posts to the output of the WordPress REST API. #5434 -* Custom Post Types: made Nova post markup more flexible by adding new filters. #1542 -* Debug Page: add information about Development mode. #5225 -* Documentation: Improvements to README.md sections about development workflow and clarification about Node versions required for the build tasks. #5428 -* Development: added tests for Jetpack API endpoints for the WordPress REST API. #5310 -* Development: added tests for various constants in use by Jetpack. #5350 -* General: improve the display of the connection banners to explain to site owners why they should connect to WordPress.com. #5473 -* JSON API: add new API endpoint to allow installing a plugin via the API, from a zip file. #5507 -* JSON API: add new API endpoint to allow installing a theme via the API. #5537 -* JSON API: customize the theme endpoint to allow installing WordPress.com themes. #5392 -* Markdown: add new filter to allow site owners to parse content inside shortcodes. #5573 -* Photon: now using HTTPS to retrieve images by default. #5534 -* Protect: added a filter to skip IP address checking in favor of another security check. #5369 -* Publicize: only trigger Publicize for Post Types that support it. #5381 -* Related Posts: add posts to the WP REST API Post Response. #3425 -* Sharing / Likes: add new filter to customize the heading HTML. #5011 -* Sharing: better video tags for Video posts including VideoPress videos. #3853 -* Site Icon: added the site icon property to the output of the settings API endpoint. #5282 -* SSO: Extend logged in expiration to 1 year. #5259 -* Sync: added an API endpoint to examine the current state of scheduled sync jobs. #5324 -* Sync: improve synchronization on sites with a custom implementation of Cron. -* Sync: disable Sync via Cron. #5528 -* Tests: introduce GUI tests for the React components in Jetpack. #5496 -* Tiled Galleries: add filter to override the default Tiled Gallery template files. #5090 -* Widgets: new 'My Community' widget displaying people who recently interacted with your site. #3358 -* Widgets: new Google Translate widget. #5386 -* Widgets: new Flickr option in the Social Media Icons Widget. #5250 -* Widgets: new 'WordPress.org' option in the Social Media Icons Widget. #5183 -* Widgets: add new `jetpack_top_posts_widget_permalink` filter to the permalinks in Top Posts Widget. #4881 -* Widgets: remove title attributes from the Social Media Icons Widget. #5286 -* Widget Visibility: add a filter to the get_taxonomies arguments. #5222 - -**Improved Compatibility:** - -* Infinite Scroll: improve compatibility with WPML and language slugs in permalinks. #4953 -* Open Graph: add SEO by Squirrly TM to the list of conflicting plugins. #5365 -* Sharing: fix conflict between the Email button and the Autoptimize plugin. #5291 -* Sync: avoid conflicts with the Photo Gallery plugin. #5412 -* Sync: avoid conflicts with IDX support plugins such as IMPress for IDX Broker and dsIDXpress for IDX. #5636 -* Several improvements to avoid issues when cloning / duplicating sites, creating staging sites, or changing your site URL. +* Additional unit tests have been added to improve Jetpack's development process and stability. +* Custom post types have been added to the REST API output. +* Many of the screenshots throughout the plugin have been replaced by SVGs in order to make Jetpack smaller. +* New endpoints have been added to allow the installation of plugins and themes via the API. +* New filters to improve Jetpack's extensibility: jetpack_auth_type, jetpack_nova_menu_item_loop_open_element, jetpack_nova_menu_item_loop_close_element, jetpack_nova_menu_item_loop_class, jetpack_markdown_preserve_shortcodes, jpp_allow_login, jetpack_sharing_headline_html, jetpack_tiled_gallery_template, jetpack_tiled_gallery_partial, jetpack_top_posts_widget_permalink, jetpack_top_posts_widget_permalink, jetpack_widget_visibility_tax_args. +* New widget: "Google Translate" to allow users to translate your site into their own language. +* New widget: "My Community" where you can see who recently interacted with your site. +* One of the biggest issues facing Jetpack users for years now has been difficulties in moving sites from one domain name to another. This update makes strides towards improving that process. +* Photon now uses HTTPS by default. Secure all the things! +* There are now helpful hints throughout the admin interface to make Jetpack easier to use. +* We now allow you to embed from Pinterest. +* We've added a new feature: SEO Tools, available to Jetpack Professional subscribers. +* We've made numerous improvements to the data sync process. +* Welcome back to the Site Stats link in your admin menu! **Bug Fixes:** -* Admin Page: fix URL to Akismet Settings. #5332 -* Admin Page: do not load unnecessary file on connection page. #5284 -* Admin Page: avoid errors when page is loaded by secondary users. #5366 -* Admin Page: update the Create Account link from the Admin Page's dashboard to direct the user into a connect screen that asks them to sign up by being aware that the user clicked the Create Account instead of just the connect button. #5382 -* Admin Page: for non-admin users, when site is in Dev Mode, a Jetpack link leading to a blank page with a message "Sorry, you are not allowed to access this page." is no longer displayed. #5396 -* Admin Page: fix PHP warning when roles allowed to see Stats don't exist or haven't been saved yet. #5432 -* Admin Page: fix issue where certain administrative page actions would fail with sites using index permalinks. #5345 -* Contact Forms: fixed shortcode properties passing when using do_shortcode. #3188 -* Contact Forms: restricted access to feedback posts from the WordPress REST API. #5408 -* JSON API: avoid errors when the Sharing module isn't available. #5423 -* Likes: move email notification settings back with the other email settings in the Discussion Settings. #4987 -* Site Icon: not using a site icon as fallback version if it is too small. #3515 -* SSO: remove unnecessary styles for nonexistent profile UI. #5289 -* Sitemaps: make sure sitemaps always use absolute paths for images. #5375 -* Sync: avoid counting users on very large networks. #5575 -* Subscriptions: fix PHP warnings when user subscribes to comments. #4897 -* Subscriptions: fixed the "do not send" checkbox status in draft mode so it would stay checked. #5689 -* Widgets: fixed Instagram widget minimum width rule to actually use the minimum instead of maximum. #5316 +* Fixed link to Akismet settings. +* Improved compatibility between Infinite Scroll and WPML, props Vuk Vuković. +* Move email notification settings back with the other email settings in the Discussion Settings. +* Various minor performance/compatibility fixes. = 4.3.2 =
diff --git a/changelog.txt b/changelog.txt index 78ee043..a03cdb9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,30 @@ -== Changelog == +== Changelog == + += 4.4 = + +**Enhancements** + +* Additional unit tests have been added to improve Jetpack's development process and stability. +* Custom post types have been added to the REST API output. +* Many of the screenshots throughout the plugin have been replaced by SVGs in order to make Jetpack smaller. +* New endpoints have been added to allow the installation of plugins and themes via the API. +* New filters to improve Jetpack's extensibility: jetpack_auth_type, jetpack_nova_menu_item_loop_open_element, jetpack_nova_menu_item_loop_close_element, jetpack_nova_menu_item_loop_class, jetpack_markdown_preserve_shortcodes, jpp_allow_login, jetpack_sharing_headline_html, jetpack_tiled_gallery_template, jetpack_tiled_gallery_partial, jetpack_top_posts_widget_permalink, jetpack_top_posts_widget_permalink, jetpack_widget_visibility_tax_args. +* New widget: "Google Translate" to allow users to translate your site into their own language. +* New widget: "My Community" where you can see who recently interacted with your site. +* One of the biggest issues facing Jetpack users for years now has been difficulties in moving sites from one domain name to another. This update makes strides towards improving that process. +* Photon now uses HTTPS by default. Secure all the things! +* There are now helpful hints throughout the admin interface to make Jetpack easier to use. +* We now allow you to embed from Pinterest. +* We've added a new feature: SEO Tools, available to Jetpack Professional subscribers. +* We've made numerous improvements to the data sync process. +* Welcome back to the Site Stats link in your admin menu! + +**Bug Fixes:** + +* Fixed link to Akismet settings. +* Improved compatibility between Infinite Scroll and WPML, props Vuk Vuković. +* Move email notification settings back with the other email settings in the Discussion Settings. +* Various minor performance/compatibility fixes. = 4.3.2 = diff --git a/readme.txt b/readme.txt index 403b6df..47e2635 100644 --- a/readme.txt +++ b/readme.txt @@ -79,83 +79,27 @@ There are opportunities for developers at all levels to contribute. [Learn more **Enhancements** -* Brand new SEO Tools module. #5307 -* Shortcodes: added Pinterest embeds. #5437 -* VideoPress: refreshed admin interface, seamless integration with the core Media manager, tied with Jetpack Plans. #5457 - -* Admin Page: added a filter to manage if the newly connected user should go to WordPress.com or not. #5319 -* Admin Page: added links to pages where users can fix problems with Akismet and update plugins. #5176 -* Admin Page: added helpful hints to make Jetpack easier to use. #5479 -* Admin Page: redesign Development mode banner. #5186 -* Admin Page: removed unnecessarily loaded theme compatibility files. #5454 -* Admin Page: when user is non admin, Protect module is inactive and they have no access to Stats, don't break the UI trying to go to At a Glance which isn't accessible by them and instead display Apps tab. #5395 -* Admin Page: use SVGs instead of raster images to improve performance. #5419 -* Admin Page: improve design when Development mode is active. #5186 -* Admin Page: improve contrast for better accessibility. #5236 -* Carousel: moved close icon location to the top right. #5237 -* Carousel: change the behavior of the browser's back button after closing a gallery. #5168 -* Contact Form: add horizontal line between message content and meta data. #5270 -* Custom Post Types: added custom posts to the output of the WordPress REST API. #5434 -* Custom Post Types: made Nova post markup more flexible by adding new filters. #1542 -* Debug Page: add information about Development mode. #5225 -* Documentation: Improvements to README.md sections about development workflow and clarification about Node versions required for the build tasks. #5428 -* Development: added tests for Jetpack API endpoints for the WordPress REST API. #5310 -* Development: added tests for various constants in use by Jetpack. #5350 -* General: improve the display of the connection banners to explain to site owners why they should connect to WordPress.com. #5473 -* JSON API: add new API endpoint to allow installing a plugin via the API, from a zip file. #5507 -* JSON API: add new API endpoint to allow installing a theme via the API. #5537 -* JSON API: customize the theme endpoint to allow installing WordPress.com themes. #5392 -* Markdown: add new filter to allow site owners to parse content inside shortcodes. #5573 -* Photon: now using HTTPS to retrieve images by default. #5534 -* Protect: added a filter to skip IP address checking in favor of another security check. #5369 -* Publicize: only trigger Publicize for Post Types that support it. #5381 -* Related Posts: add posts to the WP REST API Post Response. #3425 -* Sharing / Likes: add new filter to customize the heading HTML. #5011 -* Sharing: better video tags for Video posts including VideoPress videos. #3853 -* Site Icon: added the site icon property to the output of the settings API endpoint. #5282 -* SSO: Extend logged in expiration to 1 year. #5259 -* Sync: added an API endpoint to examine the current state of scheduled sync jobs. #5324 -* Sync: improve synchronization on sites with a custom implementation of Cron. -* Sync: disable Sync via Cron. #5528 -* Tests: introduce GUI tests for the React components in Jetpack. #5496 -* Tiled Galleries: add filter to override the default Tiled Gallery template files. #5090 -* Widgets: new 'My Community' widget displaying people who recently interacted with your site. #3358 -* Widgets: new Google Translate widget. #5386 -* Widgets: new Flickr option in the Social Media Icons Widget. #5250 -* Widgets: new 'WordPress.org' option in the Social Media Icons Widget. #5183 -* Widgets: add new `jetpack_top_posts_widget_permalink` filter to the permalinks in Top Posts Widget. #4881 -* Widgets: remove title attributes from the Social Media Icons Widget. #5286 -* Widget Visibility: add a filter to the get_taxonomies arguments. #5222 - -**Improved Compatibility:** - -* Infinite Scroll: improve compatibility with WPML and language slugs in permalinks. #4953 -* Open Graph: add SEO by Squirrly TM to the list of conflicting plugins. #5365 -* Sharing: fix conflict between the Email button and the Autoptimize plugin. #5291 -* Sync: avoid conflicts with the Photo Gallery plugin. #5412 -* Sync: avoid conflicts with IDX support plugins such as IMPress for IDX Broker and dsIDXpress for IDX. #5636 -* Several improvements to avoid issues when cloning / duplicating sites, creating staging sites, or changing your site URL. +* Additional unit tests have been added to improve Jetpack's development process and stability. +* Custom post types have been added to the REST API output. +* Many of the screenshots throughout the plugin have been replaced by SVGs in order to make Jetpack smaller. +* New endpoints have been added to allow the installation of plugins and themes via the API. +* New filters to improve Jetpack's extensibility: jetpack_auth_type, jetpack_nova_menu_item_loop_open_element, jetpack_nova_menu_item_loop_close_element, jetpack_nova_menu_item_loop_class, jetpack_markdown_preserve_shortcodes, jpp_allow_login, jetpack_sharing_headline_html, jetpack_tiled_gallery_template, jetpack_tiled_gallery_partial, jetpack_top_posts_widget_permalink, jetpack_top_posts_widget_permalink, jetpack_widget_visibility_tax_args. +* New widget: "Google Translate" to allow users to translate your site into their own language. +* New widget: "My Community" where you can see who recently interacted with your site. +* One of the biggest issues facing Jetpack users for years now has been difficulties in moving sites from one domain name to another. This update makes strides towards improving that process. +* Photon now uses HTTPS by default. Secure all the things! +* There are now helpful hints throughout the admin interface to make Jetpack easier to use. +* We now allow you to embed from Pinterest. +* We've added a new feature: SEO Tools, available to Jetpack Professional subscribers. +* We've made numerous improvements to the data sync process. +* Welcome back to the Site Stats link in your admin menu! **Bug Fixes:** -* Admin Page: fix URL to Akismet Settings. #5332 -* Admin Page: do not load unnecessary file on connection page. #5284 -* Admin Page: avoid errors when page is loaded by secondary users. #5366 -* Admin Page: update the Create Account link from the Admin Page's dashboard to direct the user into a connect screen that asks them to sign up by being aware that the user clicked the Create Account instead of just the connect button. #5382 -* Admin Page: for non-admin users, when site is in Dev Mode, a Jetpack link leading to a blank page with a message "Sorry, you are not allowed to access this page." is no longer displayed. #5396 -* Admin Page: fix PHP warning when roles allowed to see Stats don't exist or haven't been saved yet. #5432 -* Admin Page: fix issue where certain administrative page actions would fail with sites using index permalinks. #5345 -* Contact Forms: fixed shortcode properties passing when using do_shortcode. #3188 -* Contact Forms: restricted access to feedback posts from the WordPress REST API. #5408 -* JSON API: avoid errors when the Sharing module isn't available. #5423 -* Likes: move email notification settings back with the other email settings in the Discussion Settings. #4987 -* Site Icon: not using a site icon as fallback version if it is too small. #3515 -* SSO: remove unnecessary styles for nonexistent profile UI. #5289 -* Sitemaps: make sure sitemaps always use absolute paths for images. #5375 -* Sync: avoid counting users on very large networks. #5575 -* Subscriptions: fix PHP warnings when user subscribes to comments. #4897 -* Subscriptions: fixed the "do not send" checkbox status in draft mode so it would stay checked. #5689 -* Widgets: fixed Instagram widget minimum width rule to actually use the minimum instead of maximum. #5316 +* Fixed link to Akismet settings. +* Improved compatibility between Infinite Scroll and WPML, props Vuk Vuković. +* Move email notification settings back with the other email settings in the Discussion Settings. +* Various minor performance/compatibility fixes. = 4.3.2 =
Add a way to see what items are in the cron and a way to execute the cron from an api endpoint.
cc: @gravityrail, @lezama