Make WordPress Core

Opened 2 years ago

Last modified 5 weeks ago

#55604 new task (blessed)

Update SimplePie to version 1.8.0

Reported by: jrf's profile jrf Owned by:
Milestone: 6.7 Priority: normal
Severity: normal Version: 6.0
Component: External Libraries Keywords: needs-dev-note early needs-unit-tests 2nd-opinion has-patch
Focuses: Cc:

Description

A new version of SimplePie has just been released.

This version contains a few enhancements and some bug fixes.

The most notable change, however, is that this release contains a forward-compatibility layer for the change to PSR-4 namespaced classes which is targetted for SimplePie 2.0.0.

With some similarity to Requests - the namespaced versions of the classes are in a different base directory (src) from the original versions (library).

As WP currently only includes the files in the library directory, I would like to suggest to continue doing so for now.
This still makes the forward-compatibility layer available as all files in the library directory now create a class alias to their namespaced version.

Once 2.0.0 has been released, the files included in WP, should be switched to the files from the src directory (which is currently in place mostly to allow for Composer autoloading) and should start using the namespaced names for the SimplePie classes.

I'd recommend for this update to be mentioned in a dev-note, so plugins/themes directly using SimplePie can decide for themselves when they want to change to using the namespaced names for SimplePie classes.

Refs:

I've done a cursory check of the changes and they look sane to me, but would very much like to invite a second opinion and I'd recommend testing this change (more thoroughly than usually done for upgrades like these).

I'd also like to recommend for a few cursory tests to be added to the WP test suite to ensure that both the PSR-0 as well as the PSR-4 class names load correctly when only including the library directory in WP.

I'd recommend for this update to be applied in WP 6.1 early.

Previous: #36669, #51521, #54659

Change History (40)

This ticket was mentioned in Slack in #forums by costdev. View the logs.


2 years ago

This ticket was mentioned in Slack in #meta by costdev. View the logs.


2 years ago

#3 @costdev
2 years ago

  • Keywords needs-unit-tests 2nd-opinion added

Adding 2nd-opinion and needs-unit-tests per recommendations in the ticket summary.

This ticket was mentioned in Slack in #core by costdev. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by brianhenryie. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by chaion07. View the logs.


2 years ago

#9 @chaion07
2 years ago

Thanks @jrf for reporting this. We reviewed this ticket during a recent bug-scrub session. Based on the feedback received from the team, we feel that this ticket needs unit testing and/ or, patches before anything can be done for this ticket to move closer to a resolution.

Props: @cu121 & @markparnell

This ticket was mentioned in Slack in #core by chaion07. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


2 years ago

#12 @audrasjb
2 years ago

Hello there, as per today's bug scrub, just wanted to mention that we'll give this ticket a few days before moving in to Future Release, as it is marked as early and as we're just one month away from 6.1 beta 1 :)

This ticket was mentioned in Slack in #core by chaion07. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


2 years ago

This ticket was mentioned in Slack in #core by chaion07. View the logs.


2 years ago

#16 @chaion07
2 years ago

  • Milestone changed from 6.1 to Future Release

Thanks @jrf for reporting this. We reviewed this ticket during a recent bug-scrub session. We are updating the ticket with the following changes:

  1. Updating milestone to Future Release considering no significant change has taken place.

Props to @audrasjb

#17 @jrf
2 years ago

  • Milestone changed from Future Release to 6.2

#18 @jrf
2 years ago

In the mean time SimplePie 1.7.0 has just been released:

Note: as the codebase has undergone a code style cleanup, the diff is kind of useless.
For a code review of the 1.7.0 release, we'll probably need to review the individual commits (with the exception of the code style one).


Based on the discussion in this ticket in the SimplePie repo, the intention is to make 1.7.0 an LTS branch which will keep supporting PHP 5.6 for the foreseeable future.

SimplePie 1.8.0 is slated to drop support for PHP < 7.2.

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


20 months ago

#20 @audrasjb
20 months ago

  • Milestone changed from 6.2 to Future Release

As per today's bug scrub: since this ticket is marked for early commit and as it is still waiting for a patch and testing, let's move it to Future Release.

#21 @hellofromTonya
19 months ago

  • Milestone changed from Future Release to 6.3

Moving this into 6.3.

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


16 months ago

#23 @audrasjb
16 months ago

  • Summary changed from Update SimplePie to version 1.6.0 to Update SimplePie to version 1.7.0

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


15 months ago

#25 @audrasjb
15 months ago

  • Milestone changed from 6.3 to 6.4

No update during the 6.3 early cycle: moving to milestone 6.4.

#26 @Presskopp
15 months ago

  • Summary changed from Update SimplePie to version 1.7.0 to Update SimplePie to version 1.8.0

#27 @jrf
15 months ago

  • Summary changed from Update SimplePie to version 1.8.0 to Update SimplePie to version 1.7.0

@Presskopp Unfortunately upgrading to 1.8.0 is not an option for WordPress as it raises the minimum supported PHP version to 7.2, while WP still supports PHP 5.6.

https://github.com/simplepie/simplepie/blob/1.8.0/CHANGELOG.md#180---2023-01-20

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

#28 @Presskopp
15 months ago

Ah, yes, sorry I didn't think about that. But on the other hand the support for 5.6 could end soon, see https://core.trac.wordpress.org/ticket/57345#comment:111

#29 follow-up: @jrf
15 months ago

@Presskopp I hear you, but I'll believe when I see it...

#30 in reply to: ↑ 29 @Presskopp
15 months ago

Replying to jrf:

@Presskopp I hear you, but I'll believe when I see it...

:-) The hope dies last

https://make.wordpress.org/core/2023/07/05/dropping-support-for-php-5/ we're getting close @jrf

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

#31 @hellofromTonya
12 months ago

  • Milestone changed from 6.4 to 6.5

I'd recommend for this update to be applied in WP 6.1 early.

6.4 is in the middle of the beta cycle with RC1 fast approaching. It's too late for early tasks. Though it's marked as a blessed task, there's work to be done in reviewing the version and preparing tests

I've done a cursory check of the changes and they look sane to me, but would very much like to invite a second opinion and I'd recommend testing this change (more thoroughly than usually done for upgrades like these).

I'd also like to recommend for a few cursory tests to be added to the WP test suite to ensure that both the PSR-0 as well as the PSR-4 class names load correctly when only including the library directory in WP.

I know this ticket has been kicked down the road release after release. Should it go into Future Release or the next milestone 6.5? Moving it to 6.5 might give it visibility, though it hasn't yet. But in the effort to keep dependencies (near) up-to-date, trying for one more major. Punting to 6.5.

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


7 months ago

#33 @audrasjb
7 months ago

  • Milestone changed from 6.5 to Future Release

It’s a bit late in 6.5 cycle to commit an early ticket, moving to Future release

#34 @desrosj
5 months ago

Just noting that as of [57985], the minimum required version for WordPress has been updated to 7.2.24. This change will be shipped in WordPress 6.6, but beta is only 1 month away (currently scheduled for 4 June). That may be too soon for adequate testing unless there are enough interested contributors with the bandwidth. But it would be great to get a PR started.

Not going to move this to the 6.6 milestone until there's consensus that everyone is comfortabl with that timeline.

#35 @jrf
2 months ago

  • Milestone changed from Future Release to 6.7
  • Summary changed from Update SimplePie to version 1.7.0 to Update SimplePie to version 1.8.0

AS WP 6.6 has now been released, I'd recommend for a patch to be created based on SimplePie 1.8.0 ASAP for committal early in the 6.7 release cycle to allow for sufficient testing.

This ticket was mentioned in PR #7124 on WordPress/wordpress-develop by @faisal03.


6 weeks ago
#36

  • Keywords has-patch added; needs-patch removed

@mukesh27 commented on PR #7124:


6 weeks ago
#37

The PR only have one file change, There should be more per https://github.com/simplepie/simplepie/compare/1.5.8...1.8.0

@faisal03 commented on PR #7124:


6 weeks ago
#38

@mukeshpanchal27 I've added more files, but since the new version uses PSR-4, @peterwilsoncc suggested including the src folder as well. I'm still figuring out how to do that.

@faisal03 commented on PR #7124:


5 weeks ago
#39

@mukeshpanchal27 just following up on the blocker here. Can you please ping someone who can review or help with this PR?

@peterwilsoncc commented on PR #7124:


5 weeks ago
#40

@faisal-alvi I did some very rough experimenting with dropping the simple pie zip in to the existing folder (ie, moving the library files in to the library directory) and replacing inclusion of files with their new autoloader.

It wasn't super successful as WP_Feed_Cache_Transient is now required to implement SimplePie\Cache\Base which is not the case.

IN short, it loosk like there will be quite a bit of messing around require to upgrade to 1.8.0.

Note: See TracTickets for help on using tickets.