Skip to content

Changelog: Mention some more changes since 1.8.0#923

Closed
jtojnar wants to merge 3 commits intomasterfrom
wip/jtojnar/update-news
Closed

Changelog: Mention some more changes since 1.8.0#923
jtojnar wants to merge 3 commits intomasterfrom
wip/jtojnar/update-news

Conversation

@jtojnar
Copy link
Member

@jtojnar jtojnar commented Jun 29, 2025

Also parenthesize author and PR link.

jtojnar added 3 commits June 28, 2025 22:49
Most of the entries sound pretty unnatural with “by @ghost in #123” suffix.
Let’s start putting the details in parentheses, they are secondary anyway.
I converted the entries for the upcoming 1.9.0 release but did not bother with the older ones.
Copy link
Contributor

@Art4 Art4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of the changes were backported into 1.8.1. We should insert the 1.8.1 section as well.

https://github.com/simplepie/simplepie/blob/one-dot-eight/CHANGELOG.md#181---2024-10-01


### Deprecated

- Most public properties on `SimplePie\File` are deprecated in favour of new methods of `SimplePie\Response` interface:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SimplePie\HTTP\Response interface is marked as internal. We should not reference it in the CHANGELOG, so we can have some changes in the interface before it will be non-internal in 1.10.

Suggested change
- Most public properties on `SimplePie\File` are deprecated in favour of new methods of `SimplePie\Response` interface:
- Most public properties on `SimplePie\File` are deprecated in favour of new methods:

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, good point. Though that means the suggested replacement methods should not be mentioned either?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, would be better to not mention them at all but refer to PSR-18 client to replace File class starting with SimplePie 1.10.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But using the methods instead of the properties now will help the future migration. I think we can keep them but should not mention the interface.

Comment on lines +39 to +45
- `SimplePie\File::$url` → `SimplePie\File::get_final_requested_uri()`
- `SimplePie\File::$useragent` → Pass the user agent in constructor.
- `SimplePie\File::$body` → `SimplePie\File::get_body_content()`
- `SimplePie\File::$headers` → `SimplePie\File::get_headers()`
- `SimplePie\File::$status_code` → `SimplePie\File::get_status_code()`
- `SimplePie\File::$method` – no replacement: backend is implementation detail which you should not care about; to see if the file was retrieved over HTTP, check the protocol of `SimplePie\File::get_final_requested_uri()`.
- `SimplePie\File::$permanent_url` → `SimplePie\File::get_permanent_uri()`
Copy link
Contributor

@Art4 Art4 Jun 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `SimplePie\File::$url` `SimplePie\File::get_final_requested_uri()`
- `SimplePie\File::$useragent` → Pass the user agent in constructor.
- `SimplePie\File::$body` `SimplePie\File::get_body_content()`
- `SimplePie\File::$headers` `SimplePie\File::get_headers()`
- `SimplePie\File::$status_code` `SimplePie\File::get_status_code()`
- `SimplePie\File::$method` – no replacement: backend is implementation detail which you should not care about; to see if the file was retrieved over HTTP, check the protocol of `SimplePie\File::get_final_requested_uri()`.
- `SimplePie\File::$permanent_url` `SimplePie\File::get_permanent_uri()`
- `SimplePie\File::$url`, use `SimplePie\File::get_final_requested_uri()` instead.
- `SimplePie\File::$useragent`, pass the user agent in constructor instead.
- `SimplePie\File::$body`, use `SimplePie\File::get_body_content()` instead.
- `SimplePie\File::$headers`, use `SimplePie\File::get_headers()` instead.
- `SimplePie\File::$status_code`, use `SimplePie\File::get_status_code()` instead.
- `SimplePie\File::$method` without replacement: backend is implementation detail which you should not care about; to see if the file was retrieved over HTTP, check the protocol of `SimplePie\File::get_final_requested_uri()`.
- `SimplePie\File::$permanent_url`, use `SimplePie\File::get_permanent_uri()` instead.

### Fixed

- Do not crash when `Content-Type` header is missing (by @Art4 in [#774](https://github.com/simplepie/simplepie/pull/774))
- Correct `File::$permanent_url` when multiple redirects are chained (by @jtojnar in [#812](https://github.com/simplepie/simplepie/pull/812))
Copy link
Contributor

@Art4 Art4 Jun 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Correct `File::$permanent_url` when multiple redirects are chained (by @jtojnar in [#812](https://github.com/simplepie/simplepie/pull/812))
- Correct `SimplePie\File::$permanent_url` when multiple redirects are chained (by @jtojnar in [#812](https://github.com/simplepie/simplepie/pull/812))

- Correct `File::$permanent_url` when multiple redirects are chained (by @jtojnar in [#812](https://github.com/simplepie/simplepie/pull/812))
- Improve PHP 8.4 compatibility (by @jrfnl in [#880](https://github.com/simplepie/simplepie/pull/880), [#881](https://github.com/simplepie/simplepie/pull/881), @jtojnar in [#837](https://github.com/simplepie/simplepie/pull/837), @Girgias in [#851](https://github.com/simplepie/simplepie/pull/851))
- Fix regression from 1.8.0 in cache invalidation (by @Alkarex in [#883](https://github.com/simplepie/simplepie/pull/883))
- `SimplePie::strip_htmltags()` correctly propagates `$encode` argument to `Sanitize` (by @jtojnar in [#894](https://github.com/simplepie/simplepie/pull/894))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change was backported into 1.8.1.

Suggested change
- `SimplePie::strip_htmltags()` correctly propagates `$encode` argument to `Sanitize` (by @jtojnar in [#894](https://github.com/simplepie/simplepie/pull/894))
- `SimplePie\SimplePie::strip_htmltags()` correctly propagates `$encode` argument to `Sanitize` (by @jtojnar in [#894](https://github.com/simplepie/simplepie/pull/894))

- Improve PHP 8.4 compatibility (by @jrfnl in [#880](https://github.com/simplepie/simplepie/pull/880), [#881](https://github.com/simplepie/simplepie/pull/881), @jtojnar in [#837](https://github.com/simplepie/simplepie/pull/837), @Girgias in [#851](https://github.com/simplepie/simplepie/pull/851))
- Fix regression from 1.8.0 in cache invalidation (by @Alkarex in [#883](https://github.com/simplepie/simplepie/pull/883))
- `SimplePie::strip_htmltags()` correctly propagates `$encode` argument to `Sanitize` (by @jtojnar in [#894](https://github.com/simplepie/simplepie/pull/894))
- Stop `File` from mangling UTF-16 and UTF-32 encoded feeds (by @Alkarex in [#916](https://github.com/simplepie/simplepie/pull/916) and [#917](https://github.com/simplepie/simplepie/pull/917))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Stop `File` from mangling UTF-16 and UTF-32 encoded feeds (by @Alkarex in [#916](https://github.com/simplepie/simplepie/pull/916) and [#917](https://github.com/simplepie/simplepie/pull/917))
- Stop `SimplePie\File` from mangling UTF-16 and UTF-32 encoded feeds (by @Alkarex in [#916](https://github.com/simplepie/simplepie/pull/916) and [#917](https://github.com/simplepie/simplepie/pull/917))

- Use `idn_to_ascii` function instead of `idna_convert` library (requires `intl` extension or a [polyfill](https://github.com/symfony/polyfill-intl-idn)) (by @jtojnar in [#785](https://github.com/simplepie/simplepie/pull/785))
- Improve precision of type annotations and increased level of PHPStan checks (by @jtojnar in [#837](https://github.com/simplepie/simplepie/pull/837))
- Use native `gzdecode` function instead of internal PHP implementation (by @jtojnar in [#882](https://github.com/simplepie/simplepie/pull/882))
- `SimplePie::set_curl_options([CURLOPT_HTTPHEADER => …])` will no longer prevent the following headers defined by SimplePie from being sent `Accept`, `if-modified-since`, `if-none-match` and `X-FORWARDED-FOR`. (by @Alkarex in [#912](https://github.com/simplepie/simplepie/pull/912))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `SimplePie::set_curl_options([CURLOPT_HTTPHEADER => …])` will no longer prevent the following headers defined by SimplePie from being sent `Accept`, `if-modified-since`, `if-none-match` and `X-FORWARDED-FOR`. (by @Alkarex in [#912](https://github.com/simplepie/simplepie/pull/912))
- `SimplePie\SimplePie::set_curl_options([CURLOPT_HTTPHEADER => …])` will no longer prevent the following headers defined by SimplePie from being sent `Accept`, `if-modified-since`, `if-none-match` and `X-FORWARDED-FOR`. (by @Alkarex in [#912](https://github.com/simplepie/simplepie/pull/912))


- Do not crash when `Content-Type` header is missing (by @Art4 in [#774](https://github.com/simplepie/simplepie/pull/774))
- Correct `File::$permanent_url` when multiple redirects are chained (by @jtojnar in [#812](https://github.com/simplepie/simplepie/pull/812))
- Improve PHP 8.4 compatibility (by @jrfnl in [#880](https://github.com/simplepie/simplepie/pull/880), [#881](https://github.com/simplepie/simplepie/pull/881), @jtojnar in [#837](https://github.com/simplepie/simplepie/pull/837), @Girgias in [#851](https://github.com/simplepie/simplepie/pull/851))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was backported to 1.8.1

- Use `idn_to_ascii` function instead of `idna_convert` library (requires `intl` extension or a [polyfill](https://github.com/symfony/polyfill-intl-idn)) by @jtojnar in [#785](https://github.com/simplepie/simplepie/pull/785)
- Use native `gzdecode` function instead of internal PHP implementation by @jtojnar in [#882](https://github.com/simplepie/simplepie/pull/882)
- Use `idn_to_ascii` function instead of `idna_convert` library (requires `intl` extension or a [polyfill](https://github.com/symfony/polyfill-intl-idn)) (by @jtojnar in [#785](https://github.com/simplepie/simplepie/pull/785))
- Improve precision of type annotations and increased level of PHPStan checks (by @jtojnar in [#837](https://github.com/simplepie/simplepie/pull/837))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should mention that declare(strict_types=1); are declared furthermore in contrast to the removal in 1.8.1?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was already done in 1.8.0?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, see #763

@Art4 Art4 added this to the 1.9.0 milestone Jun 30, 2025
@jtojnar
Copy link
Member Author

jtojnar commented Aug 15, 2025

Some of the changes were backported into 1.8.1. We should insert the 1.8.1 section as well.

How would that interact with the 1.9.0 changelog? Then some changes would be listed twice. Or should I omit the backported changes from 1.9.0?

What about changes that were fixed differently on master and 1.8.1 like #891?

@Art4
Copy link
Contributor

Art4 commented Aug 16, 2025

Some of the changes were backported into 1.8.1. We should insert the 1.8.1 section as well.

How would that interact with the 1.9.0 changelog? Then some changes would be listed twice. Or should I omit the backported changes from 1.9.0?

Yes, the changes, that was backported to 1.8.1 should be omitted in 1.9.0.

What about changes that were fixed differently on master and 1.8.1 like #891?

In general: The Changelog is written for the humans. So I recommend the changes should sort by the release dates. Backports to 1.8.1 don't have to be mentioned again in 1.9.0. But we should to address every issue separately, like:

But I'm not fully sure about that. I'll take a look how other projects like nextcloud handle this situation.

@jtojnar
Copy link
Member Author

jtojnar commented Aug 16, 2025

Hmm, also curious what they do if we were to release 1.8.2 with backports after 1.9.0.

Art4 added a commit to Art4/simplepie that referenced this pull request Aug 29, 2025
@Art4 Art4 mentioned this pull request Aug 29, 2025
7 tasks
@Art4
Copy link
Contributor

Art4 commented Sep 12, 2025

Closing this in favor of #850.

@Art4 Art4 closed this Sep 12, 2025
Alkarex added a commit to FreshRSS/simplepie that referenced this pull request Sep 12, 2025
* bump SimplePie::VERSION to 1.9.0

* bump SimplePie::VERSION to 1.9.0

* Add CHANGELOG for 1.8.1 section

* Parenthesize author and PR link

* import changelog changes from simplepie#923

* Add 1.9.0 section, update unreleased section

* improve changelog

* Add missing authors of changes

* PHP 8.5: Conditionally call deprecated functions (simplepie#937)

Several PHP functions that have not been doing anything since PHP 8.0/8.1 will be deprecated in PHP 8.5 and will thus be throwing warnings: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_no-op_functions_from_the_resource_to_object_conversion

To solve this while supporting multiple versions of PHP, they can be called conditionally based on a PHP version check.

This PR adds this for affected functions throughout the SimplePie codebase.

* Update release date

---------

Co-authored-by: Art4 <art4@wlabs.de>
Co-authored-by: Tobias Bäthge <git@tobias.baethge.com>
Co-authored-by: Artur Weigandt <Art4@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants