xp-framework/rfc

Drop XP <= 9 compatibility

thekid opened this issue ยท 2 comments

Scope of Change

This RFC suggests dropping compatibility for XP 9 (and lower).

Rationale

XP 9.0.0 was released 2017-09-24, more than 4 years ago and has no support for PHP 8, released roughly a year ago at the time of writing.

Functionality

Libraries will drop support for XP 9 and lower with their next major release.

The typical diff will look something like this:

-"xp-framework/core": "^10.0 | ^9.0 | ^8.0 | ^7.0"
+"xp-framework/core": "^10.0"

We can also bump minimum library requirements by looking when they started supporting XP 10 when doing so, e.g.:

-    "xp-framework/http": "^10.0 | ^9.0 | ^8.0 | ^7.0",
-    "xp-framework/zip": "^9.0 | ^8.0 | ^7.0",
+    "xp-framework/http": "^10.0 | ^9.0",
+    "xp-framework/zip": "^9.0 | ^8.0",

Here's a complete list:

Library Compatible with XP 10 since Compatible with XP 10 only since Status
xp-forge/address 1.0.0 / 2020-04-04 3.0.0 / 2021-10-24 โœ…
xp-forge/aggregate 1.0.0 / 2019-11-30
xp-forge/assert 3.0.2 / 2020-04-05 (deprecated) ๐Ÿ›‘
xp-framework/ast 3.0.3 / 2019-11-30 8.0.0 / 2022-01-07 โœ…
xp-framework/collections 8.0.1 / 2019-12-01
xp-framework/command 9.0.1 / 2019-12-02 11.0.0 / 2021-10-21 โœ…
xp-framework/compiler 4.3.1 / 2019-11-30 7.0.0 / 2021-10-21 โœ…
xp-forge/coverage 1.0.1 / 2020-04-05
xp-forge/credentials 1.0.1 / 2019-11-30 3.0.0 / 2024-02-04 โœ…
xp-framework/csv 8.0.2 / 2019-12-02 10.0.0 / 2021-10-21 โœ…
xp-forge/frontend 1.0.1 / 2019-11-30 6.0.0 2023-12-25 โœ…
xp-framework/ftp 9.1.1 / 2020-04-04 11.0.0 / 2021-09-26 โœ…
xp-forge/functions 0.1.0 / 2020-04-04
xp-forge/geoip 3.1.0 / 2020-04-05 5.0.0 / 2024-02-04 โœ…
xp-forge/google-authenticator 4.0.1 / 2020-04-04
xp-forge/handlebars-templates 0.1.0 / 2021-02-13
xp-forge/handlebars 4.3.3 / 2019-12-01 7.0.0 / 2021-10-21 โœ…
xp-forge/hashing 1.0.1 / 2019-12-01
xp-framework/http 9.1.2 / 2019-12-01
xp-forge/ical 2.1.2 / 2020-04-04 4.0.0 / 2021-10-24 โœ…
xp-framework/imaging 8.0.1 / 2020-04-04 10.0.0 / 2022-02-28 โœ…
xp-forge/inject 4.3.1 / 2019-12-01
xp-framework/io-collections 8.0.1 / 2020-04-04
xp-forge/json-patch 1.1.1 / 2020-04-05
xp-forge/json 3.1.1 / 2019-12-01 5.0.0 / 2021-10-21 โœ…
xp-forge/keepass 0.6.1 / 2019-12-01 2.0.0 / 2024-02-04 โœ…
xp-forge/lambda-ws 0.1.0 / 2021-08-28 2.0.0 / 2023-11-20 โœ…
xp-forge/lambda 0.1.0 / 2021-08-20 3.0.0 / 2021-09-26 โœ…
xp-framework/ldap 8.1.3 / 2020-04-04
xp-framework/logging 9.1.3 / 2019-12-01 11.0.0 / 2021-10-21 โœ…
xp-framework/mail 8.0.2 / 2020-04-04
xp-forge/markdown 5.2.1 / 2019-12-01 7.0.0 / 2023-03-23 โœ…
xp-forge/marshalling 0.3.2 / 2019-12-01
xp-framework/math 8.0.1 / 2019-12-01
xp-forge/measure 2.0.1 / 2020-01-07
xp-forge/meilisearch (no release yet)
xp-framework/mocks 7.0.1 / 2020-04-04
xp-forge/mongodb 0.1.0 / 2020-08-04
xp-forge/mongodb-sessions 0.1.0 / 2022-04-12 2.0.0 / 2024-02-04 โœ…
xp-forge/mustache 5.3.2 / 2019-12-01 8.0.0 / 2021-10-21 โœ…
xp-forge/neo4j 0.2.1 / 2019-12-01
xp-framework/networking 9.3.3 / 2019-12-01
xp-forge/nsca 6.0.1 / 2020-04-04
xp-forge/opensearch 4.0.0 / 2020-04-04
xp-forge/parse 2.0.2 / 2020-01-07
xp-forge/partial 3.1.1 / 2020-04-04
xp-framework/patterns 8.0.1 / 2020-04-04
xp-lang/php-compact-methods 0.1.0 / 2019-09-09
xp-lang/php-is-operator 0.1.0 / 2019-09-09
xp-forge/pivot 2.0.1 / 2020-04-05
xp-forge/ratelimit 2.0.1 / 2020-04-05
xp-framework/rdbms 12.0.2 / 2019-12-01
xp-forge/redis-sessions 1.0.0 / 2020-04-05 2.0.0 / 2024-02-04 โœ…
xp-forge/redis 1.0.0 / 2019-12-01
xp-framework/reflection 0.1.0 / 2020-12-07
xp-forge/rest-api 1.1.2 / 2019-12-01
xp-forge/rest-client 1.0.1 / 2019-12-01 3.0.0 / 2021-10-21 โœ…
xp-forge/sequence 8.0.4 / 2019-12-01 10.0.0 / 2021-10-21 โœ…
xp-forge/sessions 1.0.2 / 2019-12-01
xp-forge/sql-parser 0.1.0 / 2020-11-07
xp-forge/sql 1.0.0 / 2020-04-04
xp-forge/stomp 10.1.2 / 2020-04-04 12.0.0 / 2021-10-24 โœ…
xp-forge/terminal 1.0.0 / 2020-04-04
xp-framework/text-encode 8.0.1 / 2020-04-04 10.0.0 / 2022-02-27 โœ…
xp-framework/tokenize 8.1.1 / 2019-11-30
xp-framework/unittest 10.1.1 / 2019-11-29 (deprecated) ๐Ÿ›‘
xp-forge/uri 1.4.1 / 2019-12-01 3.0.0 / 2024-03-26 โœ…
xp-forge/web-auth 0.1.0 / 2019-12-01 4.0.0 / 2024-02-04 โœ…
xp-forge/web 1.10.1 / 2019-12-01 3.0.0 / 2021-09-26 โœ…
xp-forge/websockets 1.0.0 / 2019-12-01 2.0.0 / 2021-10-24 โœ…
xp-framework/webtest 6.6.0 / 2020-04-05
xp-framework/xml 9.0.3 / 2020-04-04 11.0.0 / 2021-10-21 โœ…
xp-lang/xp-enums 0.1.0 / 2019-10-06
xp-lang/xp-records 0.1.0 / 2020-03-28
xp-forge/yaml 5.2.1 / 2019-12-01 8.0.0 / 2024-02-04 โœ…
xp-framework/zip 8.0.1 / 2019-12-02 10.0.0 / 2021-10-21 โœ…

Security considerations

None

Speed impact

Faster library installs.

Dependencies

BC breaks

Related documents

This means libraries can use MemoryOutputStream::bytes() instead of getBytes(). The former was added in XP 9.8.0, see https://github.com/xp-framework/core/releases/tag/v9.8.0

Updates for a 2 hour session on this cold & gray Sunday:

Library Compatible with XP 10 since Compatible with XP 10 only since Status
xp-forge/credentials 1.0.1 / 2019-11-30 3.0.0 / 2024-02-04 โœ…
xp-forge/geoip 3.1.0 / 2020-04-05 5.0.0 / 2024-02-04 โœ…
xp-forge/keepass 0.6.1 / 2019-12-01 2.0.0 / 2024-02-04 โœ…
xp-forge/mongodb-sessions 0.1.0 / 2022-04-12 2.0.0 / 2024-02-04 โœ…
xp-forge/redis-sessions 1.0.0 / 2020-04-05 2.0.0 / 2024-02-04 โœ…
xp-forge/web-auth 0.1.0 / 2019-12-01 4.0.0 / 2024-02-04 โœ…
xp-forge/yaml 5.2.1 / 2019-12-01 8.0.0 / 2024-02-04 โœ