xp-framework / rfc

One of the major deficiencies in the development of many projects is that there is no roadmap or strategy available other than in the developers' heads. The XP team publishes its decisions by documenting change requests in form of RFCs.
2 stars 1 forks source link

Drop XP <= 9 compatibility #341

Open thekid opened 2 years ago

thekid commented 2 years ago

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

thekid commented 2 years ago

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

thekid commented 7 months ago

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