From 37c6abee07de910eaa79e4da52116a1dbfbc932e Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Sun, 15 Mar 2026 00:24:08 -0500 Subject: [PATCH 1/7] Add FAIR specification for TYPO3 packages This document outlines the FAIR specification for TYPO3 packages, including package types, metadata, and release document extensions. Signed-off-by: Brent Toderash --- ext-typo3.md | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 ext-typo3.md diff --git a/ext-typo3.md b/ext-typo3.md new file mode 100644 index 0000000..900a0ac --- /dev/null +++ b/ext-typo3.md @@ -0,0 +1,178 @@ +# FAIR for TYPO3 Packages + +FAIR for TYPO3 Packages is an extension to the [FAIR Core specification](./specification) for the TYPO3 Content Management System (CMS). + + +## Package Types + +This specification provides the following package types and associated semantic meanings: + +| Type | Description | +| -------------- | ------------------------------------------------------------ | +| `typo3-core` | The TYPO3 CMS itself, or alternative distributions of it | +| `typo3-extension` | Extensions for the TYPO3 CMS | +| `typo3-theme` | Themes for the TYPO3 CMS | + + +## Common + +For each of the `typo3-core`, `typo3-extension`, and `typo3-theme` package types, several definitions are common. + extra: { + tags: Stable, PHP 7.1, PHP 7.2, PHP 7.3, PHP 7.4, PHP 8.0, PHP 8.1, PHP 8.2, PHP 8.3, PHP 8.4, TYPO3 8.7, TYPO3 9 +.5, TYPO3 11.5, TYPO3 12.4, TYPO3 13.4, English, German, Backend, OpenSource, Free, TER, + compatibility: { + typo3-8.7: 1.0.0-2.0.0, + typo3-9.5: 1.1.1-2.99.99, + typo3-10.4: 2.0.0-3.99.99, + typo3-11.5: 3.0.0-4.99.99, + typo3-12.4: 4.0.0-x.x.x, + typo3-13.4: 5.0.0-x.x.x + }, + typo3/cms: { + extension-key: glossaries + } + } +} + +### Metadata Document + +#### sections + +All common section types specified in FAIR Core and in this specification MAY use HTML formatting. Clients SHOULD perform sanitization on section content to ensure only safe HTML is rendered. + + +### Release Document + +The following are extensions to the Release Document specified in FAIR Core. + +#### requires and suggests + +The `requires` and `suggests` properties (collectively, dependencies) MAY contain further values specified here. + +Dependencies MAY require a certain version of the PHP software, specified as `env:php`. + +Dependencies MAY require PHP extensions, specified with a `env:php-` prefix. + +Dependencies MAY require the TYPO3 CMS, specified as `env:typo3`. + + +## Core Package Type + +The `typo3-core` package type indicates packages containing the TYPO3 CMS, or alternative distributions of it. + + +### Release Document + +The following are extensions to the Release Document specified in FAIR Core. + +#### artifacts + +The following artifact types are defined for the `typo3-core` type. + +##### package + +The common `package` type is used for the artifact containing the installable PHP application. + +This artifact SHOULD be a zip or tarball archive containing a single directory. Clients SHOULD treat the single directory within the archive as representing the installable PHP application, and MUST NOT rely on this directory having a fixed name. + +Repositories SHOULD publish at least one `package` artifact using the `application/zip` MIME type. + + +## Plugin Package Type + +The `typo3-extension` package type indicates plugins compatible with the TYPO3 CMS. + + +### Metadata Document + +The following are extensions to the Metadata Document specified in FAIR Core. + + +#### sections + +The following keys are specified in addition to the common sections. + +The following keys and their semantic meaning are specified: + +* `installation` - Instructions to the user on how to install the package. +* `faq` - Frequently asked questions about the package. +* `other_notes` - Miscellaneous additional notes. +* `screenshots` - Preview images of the package's UI. + +Additionally, the following are recognised as aliases: + +* `change_log` - Alias for `changelog`. +* `frequently_asked_questions` - Alias for `faq`. +* `screenshot` - Alias for `screenshots`. + +All section content MAY contain HTML + + +### Release Document + +#### artifacts + +The following artifact types are defined for the `typo3-extension` type. + + +##### package + +The common `package` type is used for the artifact containing the installable PHP plugin. + +Repositories SHOULD publish at least one `package` artifact using the `application/zip` MIME type. Clients may fail to install packages without a zip archive artifact. + + +##### icon + +The `icon` artifact type is used for an icon representing the package. + +Icons SHOULD be a square image, with dimensions 128x128 or 256x256. The `height` and `width` properties SHOULD be specified as numbers for raster images, indicating the dimensions of the image. + +Icons SHOULD specify the `content-type` property, with an image MIME type matching `image/png`, `image/jpeg`, `image/svg`, or `image/gif` types. Clients MAY ignore unknown types or non-image types. + +Icons MAY specify a `lang` property, which is a string containing an [RFC4646][]-compliant ("IETF") language specifier. Clients MAY conditionally show icons based on the user's language. + +Icons SHOULD NOT require authentication. + +[rfc4646]: https://datatracker.ietf.org/doc/html/rfc4646 + + +##### banner + +The `banner` artifact type is used for header banners to display on plugin listing pages. + +Banners SHOULD specify the `height` and `width` properties as numbers for raster images, indicating the dimensions of the image. Banners SHOULD NOT exceed 4MB. + +The sizes 772x250 and 1544x500 are commonly used by clients. Clients MAY ignore banners which do not match a usable size. + +Banners SHOULD specify the `content-type` property, with an image MIME type matching `image/png`, `image/jpeg`, `image/svg`, or `image/gif` types. Clients MAY ignore unknown types or non-image types. + +Banners MAY specify a `lang` property, which is a string containing an [RFC4646][]-compliant ("IETF") language specifier. Clients MAY conditionally show icons based on the user's language. + +Banners SHOULD NOT require authentication. + + +##### screenshot + +The `screenshot` artifact type is used for screenshots of the plugin's UI. + +Screenshots SHOULD specify the `height` and `width` properties as numbers for raster images, indicating the dimensions of the image. Linked artifacts SHOULD NOT exceed 10MB. + +Screenshots SHOULD specify the `content-type` property, with an image MIME type matching `image/png`, `image/jpeg`, `image/svg`, or `image/gif` types. Clients MAY ignore unknown types or non-image types. + +Screenshots MAY specify a `lang` property, which is a string containing an [RFC4646][]-compliant ("IETF") language specifier. Clients MAY conditionally show icons based on the user's language. + +Screenshots SHOULD NOT require authentication. + + + +#### requires + +The `requires` property SHOULD only contain valid package IDs for other `typo3-extension`-type packages, or PHP environment requirements as specified in [Common](#common). + +Clients MAY treat the package as invalid if other package types are required. + + +## Theme Package Type + +*to be specified* From 1b8b1e7a36e18574f7fa7c9d34654ef9b99a83c8 Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Fri, 20 Mar 2026 09:16:55 -0500 Subject: [PATCH 2/7] Add TYPO3 package types to registry.md Signed-off-by: Brent Toderash --- registry.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/registry.md b/registry.md index 1d507dc..fede252 100644 --- a/registry.md +++ b/registry.md @@ -8,16 +8,19 @@ This document is a registry for the known extensions to the FAIR Package Managem | -------------------------------------------- | ------------------ | | [FAIR Authentication Methods](./ext-auth.md) | FAIR Working Group | | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | +| [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | ## Package Types -| Type | Extension | Contact | -| ----------- | ------------------------------------------ | ------------------ | -| `wp-core` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | -| `wp-plugin` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | -| `wp-theme` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | - +| Type | Extension | Contact | +| ----------------- | ------------------------------------------ | ------------------ | +| `wp-core` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | +| `wp-plugin` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | +| `wp-theme` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | +| `typo3-core` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | +| `typo3-extension` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | +| `typo3-theme` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | ## Authentication Methods From cfb26b4412d0b350f0b33ecb329f9044e512f229 Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Fri, 20 Mar 2026 09:27:39 -0500 Subject: [PATCH 3/7] Revise package types and add document status Updated the FAIR for TYPO3 Packages documentation to include a draft status and revised package type definitions. Signed-off-by: Brent Toderash --- ext-typo3.md | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/ext-typo3.md b/ext-typo3.md index 900a0ac..b978d09 100644 --- a/ext-typo3.md +++ b/ext-typo3.md @@ -2,37 +2,36 @@ FAIR for TYPO3 Packages is an extension to the [FAIR Core specification](./specification) for the TYPO3 Content Management System (CMS). +| Document Status: | Draft | +| ---------------- | ----- | ## Package Types This specification provides the following package types and associated semantic meanings: -| Type | Description | -| -------------- | ------------------------------------------------------------ | +| Type | Description | +| ----------------- | ------------------------------------------------------------ | | `typo3-core` | The TYPO3 CMS itself, or alternative distributions of it | | `typo3-extension` | Extensions for the TYPO3 CMS | | `typo3-theme` | Themes for the TYPO3 CMS | +## Core + +*to be specified* + + ## Common -For each of the `typo3-core`, `typo3-extension`, and `typo3-theme` package types, several definitions are common. - extra: { - tags: Stable, PHP 7.1, PHP 7.2, PHP 7.3, PHP 7.4, PHP 8.0, PHP 8.1, PHP 8.2, PHP 8.3, PHP 8.4, TYPO3 8.7, TYPO3 9 -.5, TYPO3 11.5, TYPO3 12.4, TYPO3 13.4, English, German, Backend, OpenSource, Free, TER, - compatibility: { - typo3-8.7: 1.0.0-2.0.0, - typo3-9.5: 1.1.1-2.99.99, - typo3-10.4: 2.0.0-3.99.99, - typo3-11.5: 3.0.0-4.99.99, - typo3-12.4: 4.0.0-x.x.x, - typo3-13.4: 5.0.0-x.x.x - }, - typo3/cms: { - extension-key: glossaries - } - } +For the `typo3-extension` and `typo3-theme` package types, several definitions are common. + +```json +tags: [], +compatibility: [], +typo3: { + extension-key: "key-name" } +``` ### Metadata Document From 0d9b74eb0746b938e091a9c2513cf2a771ea7fcb Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Fri, 20 Mar 2026 10:09:32 -0500 Subject: [PATCH 4/7] Add TYPO3 Extension link to README Signed-off-by: Brent Toderash --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72c7733..b072c25 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This repository contains the specification for the FAIR protocol, as well as doc * [Documentation](./docs/README.md) * [Specification](./specification.md) * [Extension Registry](./registry.md) + * [TYPO3 Extension](./ext-typo3.md) * [WordPress Extension](./ext-wp.md) This repository is managed by the FAIR Working Group. See [the TSC repo for contributing docs](https://github.com/fairpm/tsc). From 9703029c5d1f62190262fcd32a577ab9b9d122a0 Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Sat, 21 Mar 2026 06:57:37 -0500 Subject: [PATCH 5/7] Apply suggestion from @jdevalk Co-authored-by: Joost de Valk Signed-off-by: Brent Toderash --- ext-typo3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext-typo3.md b/ext-typo3.md index b978d09..ba656db 100644 --- a/ext-typo3.md +++ b/ext-typo3.md @@ -26,7 +26,7 @@ This specification provides the following package types and associated semantic For the `typo3-extension` and `typo3-theme` package types, several definitions are common. ```json -tags: [], +keywords: [], compatibility: [], typo3: { extension-key: "key-name" From 263bef41590449f4de42a9d88006207fb8d268eb Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Sat, 21 Mar 2026 06:59:49 -0500 Subject: [PATCH 6/7] Update TYPO3 package type descriptions Signed-off-by: Brent Toderash --- ext-typo3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext-typo3.md b/ext-typo3.md index ba656db..03bcb0c 100644 --- a/ext-typo3.md +++ b/ext-typo3.md @@ -11,9 +11,9 @@ This specification provides the following package types and associated semantic | Type | Description | | ----------------- | ------------------------------------------------------------ | -| `typo3-core` | The TYPO3 CMS itself, or alternative distributions of it | +| `typo3-core` | Reserved for future use | | `typo3-extension` | Extensions for the TYPO3 CMS | -| `typo3-theme` | Themes for the TYPO3 CMS | +| `typo3-theme` | Reserved for future use | ## Core From 2f29a4f79bd02a434aedbe69067c3e3e797d5a82 Mon Sep 17 00:00:00 2001 From: Brent Toderash Date: Sat, 21 Mar 2026 07:03:03 -0500 Subject: [PATCH 7/7] Update TYPO3 package entries in registry.md Signed-off-by: Brent Toderash --- registry.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/registry.md b/registry.md index fede252..ee75b7d 100644 --- a/registry.md +++ b/registry.md @@ -18,9 +18,9 @@ This document is a registry for the known extensions to the FAIR Package Managem | `wp-core` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | | `wp-plugin` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | | `wp-theme` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group | -| `typo3-core` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | -| `typo3-extension` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | -| `typo3-theme` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | +| `typo3-core` | Reserved for future use. | FAIR Working Group | +| `typo3-extension` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group | +| `typo3-theme` | Reserved for future use. | FAIR Working Group | ## Authentication Methods