Releases: Parsely/wp-parsely
3.1.0
The 3.1.0 release is a minor release for the plugin that does not introduce any breaking changes coming from the 3.0 branch. This version's primary focus is adding support for WordPress decoupled architectures and a revamped settings page. We have also worked hard on refining our code, testing, and delivery process.
The Parse.ly plugin now hooks into the WordPress REST API to provide content metadata in a format that's easy for a variety of client applications to consume. A parsely
field containing the metadata is now rendered in the tracked objects (e.g., post
and page
). No new endpoint is introduced. This behavior can be disabled using a filter. Please refer to the plugin's README file for more details. Note that the tracking script must still be inserted manually in the decoupled front-end or otherwise loaded for your site.
Added
- Decoupled support. #489 #500
- Revamped wp-admin settings page, divided in sections. #518
- Parse.ly stats button on admin bar. #569
- Show error in settings page when duplicated tracking is selected. #543
- Instructions for local development. #525
- Local developer environment logs command. #532
- Husky-based git commit hooks to enforce linting rules prior to commit. #538
- Linting for JavaScript and CSS files. #527
- Types to function arguments in GetCurrentUrlTest. #504
- End-to-end test to verify if scripts are rendered in the front-end. #528
- Concurrency to CI configuration and Composer tweaks. #559
- Explicit dependabot reviewers on GitHub. #526
- WordPress.org banner images. #581
- PHPStan static analysis tool. #590
Changed
- Hiding Disable AMP field on settings page when the AMP plugin is not enabled. #519
- Use built-in WordPress submit button instead of custom one in the settings page. #513
- Improved wp-admin settings page help texts. #552
@wordpress/scripts
bumped from 19.2.1 to 19.2.3. #503 #603prettier
bumped from 2.4.1 to 2.5.0. #509concurrently
bumped from 6.4.0 to 6.5.1. #551- Ubuntu bumped from 18.04 to 20.04 on CI tests. #445
- Unit and Integration tests run in random order. #511
- Correct Parse.ly spelling in tests comments. #561
- Minor amendments on the documentation. #514
- Updated release process guidelines. #567
- Removed checkboxes from GitHub's PR template. #512
- Improved JS scripts integration tests. #557
- Source code linting violations (PHPCS with
--serverity=1
). #544 - WordPress.org screenshots for settings page. #574
Fixed
- Incorrect type errors. #607
- Undefined index error on settings page. #536
- Source the correct asset for the Recommendations Widget. #545
- End-to-end tests in CI (GitHub Actions). #521
Removed
3.0.4
3.0.3
3.0.2
Fixed
- Properly render the post modified date metadata & Fix a fatal error caused by an unexpedted data type #560
3.0.1
3.0.0
Important information about this release
wp-parsely 3.0.0 is a major release of the Parse.ly WordPress plugin. The major version bump is because we are introducing a number of breaking changes that have allowed us to modernize the codebase and make future features easier to implement.
The biggest breaking change is the new minimum requirements for running the plugin. You now need PHP 7.1 or newer and WordPress 5.0 or newer. If you are running one of those old versions, you shouldn't get the update option on your WordPress admin.
If you are using the plugin without any code-level customizations (for instance, calling the plugin's functions or methods or hooking in the plugin's WordPress hooks), this update should be seamless and everything should keep operating normally. The plugin's way of working is still fundamentally the same. If you are using those customizations, we recommend you going through the detailed changelog to see if they affect you. In most of the cases, only trivial changes will be required to make your code work.
Added
- Namespaces to files. #430 #475 #477
- Now all functions and classes are under the
Parsely
namespace, or a child namespace of that e.g.Parsely\Parsely
orParsely\UI\Recommended_Widget
. If your code is calling a wp-parsely function (directly, or as a hook callback) without the namespace, then you'll need to update that call.
- Now all functions and classes are under the
- Strict typing (
strict_types=1
) to all files in the codebase #420.- Passing a value to a function in wp-parsely with an incorrect type will now raise an error.
- Type declarations have been added to function returns #429 and arguments #455.
wp_parsely_should_insert_metadata
filter. #440- The filter controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returns
true
).
- The filter controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returns
wp_parsely_enable_cfasync_tag
filter. #473.- The Cloudflare
cfasync
attributes are now not rendered by default, but they can be enabled by returningtrue
to this filter.
- The Cloudflare
- WordPress plugin uninstall script. #444
- When the plugin is uninstalled, the options will be removed from the database. Deactivating the plugin will not cause the options to be deleted.
npm run dev:start
andnpm run dev:stop
commands to run the plugin locally for development purposes. #493- E2E test for recommended widget. #434
- JavaScript code-scanning #453
Changed
- Minimum PHP and WP versions required to run the plugin are now 7.1 (from 5.6) and 5.0 from (4.0), respectively. #416
- The development Node JS version has been bumped from 14 to 16.
- Extract logic from
class-parsely.php
file: - Rename
Parsely_Recommended_Widget
class toParsely\UI\Recommended_Widget
. - Rename methods in
Parsely\Scripts
class #481:register_js()
toregister_scripts()
.load_js_api()
toenqueue_js_api()
.load_js_tracker()
toenqueue_js_tracker()
.
- Move Parse.ly settings file to
views/parsely-settings.php
. #459 - Open on Parse.ly links are displayed by default. #433
- To disable the feature, the
wp_parsely_enable_row_action_links
filter must returnfalse
.
- To disable the feature, the
Parsely::get_current_url()
default value for argumentstring $parsely_type
changed fromnonpost
tonon-post
. #447- This change has been done to better align with Parse.ly's backend.
- Enqueue scripts with theme independent hook. #458
- The JavaScript scripts are now enqueued at the
wp_enqueue_scripts
hook instead ofwp_footer
.
- The JavaScript scripts are now enqueued at the
- Replace multi-select fields with checkboxes on the settings page. #482
- Existing selections will be retained.
- Made class members private #486:
Parsely\Integrations\Facebook_Instant_Articles
:REGISTRY_IDENTIFIER
,REGISTRY_DISPLAY_NAME
,get_embed_code()
.Parsely\UI\Recommended_Widget
:get_api_url()
.
- Tests: Specify
coverage: none
where it is not needed. #419 - Bump @wordpress/e2e-test-utils from 5.4.3 to 5.4.8. #492
- Bump @wordpress/scripts from 18.0.1 to 19.1.0. #480
- Bump @wordpress/eslint-plugin from 9.2.0 to 9.3.0. #490
Fixed
- Fix missing translation support for Yes and No labels in the settings page. #463
- Avoid making duplicate calls to Parse.ly API on the Recommended Widget's front-end. #460
- Fix JS string translation in settings page. #462
- Consistent return types on
update_metadata_endpoint
. #446- The function used to return different return types, now it always returns
void
.
- The function used to return different return types, now it always returns
- Consistent return type on
insert_parsely_page
. #443- The function used to return
string|null|array
, now it returnsvoid
.
- The function used to return
- Fixed fatal error when the option in the database was corrupted. #540
- Tests: Stop using deprecated
setMethods()
method. #427 - e2e tests: fix watch command. #476
- Fix non-working README code example. #439
Removed
- Previously deprecated filter
after_set_parsely_page
. #436- Use
wp_parsely_metadata
instead.
- Use
- Previously deprecated filter
parsely_filter_insert_javascript
. #437- Use
wp_parsely_load_js_tracker
instead.
- Use
post_has_viewable_type
function. #417- Use
is_post_viewable
instead. Thepost_has_viewable_type
function was only added to support older versions of WordPress.
- Use
- Custom Parse.ly load text domain. #457
- Since the plugin now supports versions of WordPress that load custom text domains automatically, the plugins doesn't have to explicitly load the text domain itself.
- Empty functions for admin settings. #456
- The callbacks were never utilised.
- Redundant code coverage annotations. #469
- Old init Python script. #441
- "Add admin warning for minimum requirements in 3.0" notice. #424
- This was only added in the previous version of the plugin.
- Upgrade README notice. #470
3.0.0-RC2
3.0.0-RC1
Important information about this release
wp-parsely 3.0.0 is a major release of the Parse.ly WordPress plugin. The major version bump is because we are introducing a number of breaking changes that have allowed us to modernize the codebase and make future features easier to implement.
The biggest breaking change is the new minimum requirements for running the plugin. You now need PHP 7.1 or newer and WordPress 5.0 or newer. If you are running one of those old versions, you shouldn't get the update option on your WordPress admin.
If you are using the plugin without any code-level customizations (for instance, calling the plugin's functions or methods or hooking in the plugin's WordPress hooks), this update should be seamless and everything should keep operating normally. The plugin's way of working is still fundamentally the same. If you are using those customizations, we recommend you going through the detailed changelog to see if they affect you. In most of the cases, only trivial changes will be required to make your code work.
Added
- Namespaces to files. #430 #475 #477
- Now all functions and classes are under the
Parsely
namespace, or a child namespace of that e.g.Parsely\Parsely
orParsely\UI\Recommended_Widget
. If your code is calling a wp-parsely function (directly, or as a hook callback) without the namespace, then you'll need to update that call.
- Now all functions and classes are under the
- Strict typing (
strict_types=1
) to all files in the codebase #420.- Passing a value to a function in wp-parsely with an incorrect type will now raise an error.
- Type declarations have been added to function returns #429 and arguments #455.
wp_parsely_should_insert_metadata
filter. #440- The filter controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returns
true
).
- The filter controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returns
wp_parsely_enable_cfasync_tag
filter. #473.- The Cloudflare
cfasync
attributes are now not rendered by default, but they can be enabled by returningtrue
to this filter.
- The Cloudflare
- WordPress plugin uninstall script. #444
- When the plugin is uninstalled, the options will be removed from the database. Deactivating the plugin will not cause the options to be deleted.
npm run dev:start
andnpm run dev:stop
commands to run the plugin locally for development purposes. #493- E2E test for recommended widget. #434
- JavaScript code-scanning #453
Changed
- Minimum PHP and WP versions required to run the plugin are now 7.1 (from 5.6) and 5.0 from (4.0), respectively. #416
- The development Node JS version has been bumped from 14 to 16.
- Extract logic from
class-parsely.php
file: - Rename
Parsely_Recommended_Widget
class toParsely\UI\Recommended_Widget
. - Rename methods in
Parsely\Scripts
class #481:register_js()
toregister_scripts()
.load_js_api()
toenqueue_js_api()
.load_js_tracker()
toenqueue_js_tracker()
.
- Move Parse.ly settings file to
views/parsely-settings.php
. #459 - Open on Parse.ly links are displayed by default. #433
- To disable the feature, the
wp_parsely_enable_row_action_links
filter must returnfalse
.
- To disable the feature, the
Parsely::get_current_url()
default value for argumentstring $parsely_type
changed fromnonpost
tonon-post
. #447- This change has been done to better align with Parse.ly's backend.
- Enqueue scripts with theme independent hook. #458
- The JavaScript scripts are now enqueued at the
wp_enqueue_scripts
hook instead ofwp_footer
.
- The JavaScript scripts are now enqueued at the
- Replace multi-select fields with checkboxes on the settings page. #482
- Existing selections will be retained.
- Made class members private #486:
Parsely\Integrations\Facebook_Instant_Articles
:REGISTRY_IDENTIFIER
,REGISTRY_DISPLAY_NAME
,get_embed_code()
.Parsely\UI\Recommended_Widget
:get_api_url()
.
- Tests: Specify
coverage: none
where it is not needed. #419 - Bump @wordpress/e2e-test-utils from 5.4.3 to 5.4.8. #492
- Bump @wordpress/scripts from 18.0.1 to 19.1.0. #480
- Bump @wordpress/eslint-plugin from 9.2.0 to 9.3.0. #490
Fixed
- Fix missing translation support for Yes and No labels in the settings page. #463
- Avoid making duplicate calls to Parse.ly API on the Recommended Widget's front-end. #460
- Fix JS string translation in settings page. #462
- Consistent return types on
update_metadata_endpoint
. #446- The function used to return different return types, now it always returns
void
.
- The function used to return different return types, now it always returns
- Consistent return type on
insert_parsely_page
. #443- The function used to return
string|null|array
, now it returnsvoid
.
- The function used to return
- Tests: Stop using deprecated
setMethods()
method. #427 - e2e tests: fix watch command. #476
- Fix non-working README code example. #439
Removed
- Previously deprecated filter
after_set_parsely_page
. #436- Use
wp_parsely_metadata
instead.
- Use
- Previously deprecated filter
parsely_filter_insert_javascript
. #437- Use
wp_parsely_load_js_tracker
instead.
- Use
post_has_viewable_type
function. #417- Use
is_post_viewable
instead. Thepost_has_viewable_type
function was only added to support older versions of WordPress.
- Use
- Custom Parse.ly load text domain. #457
- Since the plugin now supports versions of WordPress that load custom text domains automatically, the plugins doesn't have to explicitly load the text domain itself.
- Empty functions for admin settings. #456
- The callbacks were never utilised.
- Redundant code coverage annotations. #469
- Old init Python script. #441
- "Add admin warning for minimum requirements in 3.0" notice. #424
- This was only added in the previous version of the plugin.
- Upgrade README notice. #470
3.0.0-beta-2
Important information about this release
wp-parsely 3.0.0 is a major release of the Parse.ly WordPress plugin. The major version bump is because we are introducing a number of breaking changes that have allowed us to modernize the codebase and make future features easier to implement.
The biggest breaking change is the new minimum requirements for running the plugin. You now need PHP 7.1 or newer and WordPress 5.0 or newer. If you are running one of those old versions, you shouldn't get the update option on your WordPress admin.
If you are using the plugin without any code-level customizations (for instance, calling the plugin's functions or methods or hooking in the plugin's WordPress hooks), this update should be seamless and everything should keep operating normally. The plugin's way of working is still fundamentally the same. If you are using those customizations, we recommend you going through the detailed changelog to see if they affect you. In most of the cases, only trivial changes will be required to make your code work.
Added
- Namespaces to files. #430 #475 #477
- Now all functions and classes are under the
Parsely
namespace, or a child namespace of that e.g.Parsely\Parsely
orParsely\UI\Recommended_Widget
. If your code is calling a wp-parsely function (directly, or as a hook callback) without the namespace, then you'll need to update that call.
- Now all functions and classes are under the
- Strict typing (
strict_types=1
) to all files in the codebase #420.- Passing a value to a function in wp-parsely with an incorrect type will now raise an error.
- Type declarations have been added to function returns #429 and arguments #455.
wp_parsely_should_insert_metadata
filter. #440- The filter controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returns
true
).
- The filter controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returns
wp_parsely_enable_cfasync_tag
filter. #473.- The Cloudflare
cfasync
attributes are now not rendered by default, but they can be enabled by returningtrue
to this filter.
- The Cloudflare
- WordPress plugin uninstall script. #444
- When the plugin is uninstalled, the options will be removed from the database. Deactivating the plugin will not cause the options to be deleted.
npm run dev:start
andnpm run dev:stop
commands to run the plugin locally for development purposes. #493- E2E test for recommended widget. #434
- JavaScript code-scanning #453
Changed
- Minimum PHP and WP versions required to run the plugin are now 7.1 (from 5.6) and 5.0 from (4.0), respectively. #416
- The development Node JS version has been bumped from 14 to 16.
- Extract logic from
class-parsely.php
file: - Rename
Parsely_Recommended_Widget
class toParsely\UI\Recommended_Widget
. - Rename methods in
Parsely\Scripts
class #481:register_js()
toregister_scripts()
.load_js_api()
toenqueue_js_api()
.load_js_tracker()
toenqueue_js_tracker()
.
- Move Parse.ly settings file to
views/parsely-settings.php
. #459 - Open on Parse.ly links are displayed by default. #433
- To disable the feature, the
wp_parsely_enable_row_action_links
filter must returnfalse
.
- To disable the feature, the
Parsely::get_current_url()
default value for argumentstring $parsely_type
changed fromnonpost
tonon-post
. #447- This change has been done to better align with Parse.ly's backend.
- Enqueue scripts with theme independent hook. #458
- The JavaScript scripts are now enqueued at the
wp_enqueue_scripts
hook instead ofwp_footer
.
- The JavaScript scripts are now enqueued at the
- Replace multi-select fields with checkboxes on the settings page. #482
- Existing selections will be retained.
- Made class members private #486:
Parsely\Integrations\Facebook_Instant_Articles
:REGISTRY_IDENTIFIER
,REGISTRY_DISPLAY_NAME
,get_embed_code()
.Parsely\UI\Recommended_Widget
:get_api_url()
.
- Tests: Specify
coverage: none
where it is not needed. #419 - Bump @wordpress/e2e-test-utils from 5.4.3 to 5.4.8. #492
- Bump @wordpress/scripts from 18.0.1 to 19.1.0. #480
- Bump @wordpress/eslint-plugin from 9.2.0 to 9.3.0. #490
Fixed
- Fix missing translation support for Yes and No labels in the settings page. #463
- Avoid making duplicate calls to Parse.ly API on the Recommended Widget's front-end. #460
- Fix JS string translation in settings page. #462
- Consistent return types on
update_metadata_endpoint
. #446- The function used to return different return types, now it always returns
void
.
- The function used to return different return types, now it always returns
- Consistent return type on
insert_parsely_page
. #443- The function used to return
string|null|array
, now it returnsvoid
.
- The function used to return
- Tests: Stop using deprecated
setMethods()
method. #427 - e2e tests: fix watch command. #476
- Fix non-working README code example. #439
Removed
- Previously deprecated filter
after_set_parsely_page
. #436- Use
wp_parsely_metadata
instead.
- Use
- Previously deprecated filter
parsely_filter_insert_javascript
. #437- Use
wp_parsely_load_js_tracker
instead.
- Use
post_has_viewable_type
function. #417- Use
is_post_viewable
instead. Thepost_has_viewable_type
function was only added to support older versions of WordPress.
- Use
- Custom Parse.ly load text domain. #457
- Since the plugin now supports versions of WordPress that load custom text domains automatically, the plugins doesn't have to explicitly load the text domain itself.
- Empty functions for admin settings. #456
- The callbacks were never utilised.
- Redundant code coverage annotations. #469
- Old init Python script. #441
- "Add admin warning for minimum requirements in 3.0" notice. #424
- This was only added in the previous version of the plugin.
- Upgrade README notice. #470
3.0.0-beta
Important information about this release
wp-parsely 3.0.0 is a major release of the Parse.ly WordPress plugin. The major version bump is because we are introducing a number of breaking changes that have allowed us to modernize the codebase and make future features easier to implement.
The biggest breaking change is the new minimum requirements for running the plugin. You now need PHP 7.1 or newer and WordPress 5.0 or newer. If you are running one of those old versions, you shouldn't get the update option on your WordPress admin.
If you are using the plugin without any code-level customizations (for instance, calling the plugin's routines or hooking in the plugin's WordPress hooks), this update should be seamless and everything should keep operating normally. The plugin's way of working is still fundamentally the same. If you are using those customizations, we recommend you going through the detailed changelog to see if they affect you. In most of the cases, only trivial changes will be required to make your code work.
Added
- Namespaces to files. #430 #475 #477 Now all functions and classes are under the
Parsely
namespace. If plugin's function is being called without the namespace, that might need to be updated. - Strict typing (
strict_types=1
) to all files in the codebase #420. Passing a value to a function in wp-parsely with an incorrect type will now raise an error. All function return #429 and argument #455 types have been updated. - Checkboxes in fields that accept multiple selection on the settings page. #482
- Translation support for Yes and No fields in the settings page. #463
wp_parsely_should_insert_metadata
filter. #440 The filters controls whether the Parse.ly metadata should be inserted in the page's HTML. By default, the meta tags are rendered (the filter returnstrue
).wp_parsely_enable_cfasync_tag
filter. #473. Cloudflarecfasync
attributes are now not rendered by default, they can be enabled by returningtrue
to this filter.- WordPress plugin uninstall script. #444 When the plugin is uninstalled, the options will be removed from the database.
npm run dev:start
andnpm run dev:stop
commands to run the plugin locally for development purposes. #493- E2E test for recommended widget. #434
- JavaScript code-scanning #453
Changed
- Minimum PHP and WP versions required to run the plugin are now 7.1 (from 5.6) and 5.0 from (4.0), respectively. #416
- The development Node JS version has been bumped from 14 to 16.
- Renaming functions on
Scripts
class #481:register_js
toregister_scripts
.load_js_api
toenqueue_js_api
.load_js_tracker
toenqueue_js_tracker
.
- Open on Parse.ly links are displayed by default. #433 To disable the feature, the
wp_parsely_enable_row_action_links
filter must returnfalse
. Parsely::get_current_url
default value for argumentstring $parsely_type
changed fromnonpost
tonon-post
. #447 This change has been done to better align with Parse.ly's backend.- Enqueue scripts with theme independent hook. #458 The JS scripts are now enqueued with
wp_enqueue_scripts
instead ofwp_footer
. - Renamed
Parsely_Recommended_Widget
class toRecommended_Widget
. - Extracted logic from
class-parsely.php
file: - Move Parse.ly settings file to
views/parsely-settings.php
. #459 - Making class members private #486:
Facebook_Instant_Articles
:REGISTRY_IDENTIFIER
,REGISTRY_DISPLAY_NAME
,get_embed_code
.Recommended_Widget
:get_api_url
.
- Tests: Specify
coverage: none
where it is not needed. #419 - Bump @wordpress/e2e-test-utils from 5.4.3 to 5.4.8. #492
- Bump @wordpress/scripts from 18.0.1 to 19.1.0. #480
- Bump @wordpress/eslint-plugin from 9.2.0 to 9.3.0. #490
Fixed
- Avoid making duplicate calls to Parse.ly API on the Recommended Widget's front-end. #460
- Fix JS string translation in settings page. #462
- Constant return types on
update_metadata_endpoint
. #446 The function used to return different return types, now it always returnsvoid
. - Constant return type on
insert_parsely_page
. #443 The function used to returnstring|null|array
, now it returnsvoid
. - Tests: Stop using deprecated setMethods method. #427
- e2e tests: fix watch command. #476
- Fix non-working README code example. #439
Removed
- Deprecated filter
after_set_parsely_page
. #436 Usewp_parsely_metadata
instead. - Deprecated filter
parsely_filter_insert_javascript
. #437 Usewp_parsely_load_js_tracker
instead. post_has_viewable_type
function. #417 Useis_post_viewable
instead.- Custom Parse.ly load text domain. #457
- Empty functions for admin settings. #456
- Redundant code coverage annotations. #469
- Old init Python script. #441
- "Add admin warning for minimum requirements in 3.0" notice. #424
- Upgrade README notice. #470
Full Changelog: 2.6.1...3.0.0-beta