extensions.typo3.org issueshttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues2022-08-12T12:26:46Zhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/560Allow declaring multiple authors / multiple donation links2022-08-12T12:26:46ZNikita HovratovAllow declaring multiple authors / multiple donation links### Problem to solve
Sometimes the extension maintainer changes, but the original author should still be displayed as one of the extension authors.
If there are multiple authors, it makes sense to allow for multiple donation links as wel...### Problem to solve
Sometimes the extension maintainer changes, but the original author should still be displayed as one of the extension authors.
If there are multiple authors, it makes sense to allow for multiple donation links as well.
<!--- What problem do we solve? -->
### Further details
Other platforms like packagist and Github already allow multiple authors / donation links. The TER should allow it as well.
<!--- Include use cases, benefits, and/or goals (contributes to our vision?) -->
### Proposal
The composer.json file already contains all needed information in the keys "authors" and "funding". In addition, GitHub funding links could be generated from the .github/FUNDING.yml.
<!--- How are we going to solve the problem? Try to include the user journey! -->
### What does success look like, and how can we measure that?
Authors and donation links are automatically read from composer.json and/or FUNDING.yml and displayed accordingly in the extension detail view.
<!--- Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this -->
### Links / references
Example multiple donation links for the Mask extension: https://packagist.org/packages/mask/maskhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/557Feature request: RSS feed for new/updated extensions2023-09-18T11:49:34ZWolfgang WagnerFeature request: RSS feed for new/updated extensionsIt would be great if the TER could provide an RSS feed to track all changes (new extensions, updated extensions).It would be great if the TER could provide an RSS feed to track all changes (new extensions, updated extensions).BacklogWolfgang WagnerWolfgang Wagnerhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/555Provide TOP 10 statistics for TYPO3 newsletter2022-05-15T19:23:29ZAlexander NitscheProvide TOP 10 statistics for TYPO3 newsletter### Problem to solve
The newsletter has space to fill in every edition and the reader is expecting interesting topics around TYPO3.
### Proposal
Integrate TER statistics into the newsletter to inspire the reader. It would be cheap to ...### Problem to solve
The newsletter has space to fill in every edition and the reader is expecting interesting topics around TYPO3.
### Proposal
Integrate TER statistics into the newsletter to inspire the reader. It would be cheap to achieve but an interesting part nevertheless and it further increases traffic at the store. For example, it would be interesting to have the following statistics
1. the top 10 of extensions regarding download rates for the current LTS only (with comparison to ranking of last newsletter)
2. the top 10 of extensions regarding download rates summarized over all versions of ELTS or LTS series (with comparison to ranking of last newsletter)
3. the top 10 of extensions regarding the increase of download rates for the current LTS only (having passed a certain threshold, with comparison to ranking of last newsletter)
4. the top 10 of extensions regarding the increase of download rates summarized over all versions of current ELTS or LTS (having passed a certain threshold, with comparison to ranking of last newsletter)
presented in tables like the book bestseller tables and linking the extension names into the store.
### What does success look like, and how can we measure that?
Increased traffic in TER with a benefit for the most popular extensions. Guidance for new TYPO3 community members in choosing the right solution for their specific challenges.
### Additional notes
The statistics could be also published automatically as content elements at the TER page in perspective.Backloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/554Question: REST API - query extensions2022-05-17T17:12:15ZOliver HaderQuestion: REST API - query extensions```
GET /api/v1/extension?page=1&per_page=50&filter%5Btypo3_version%5D=10
```
I was using above endpoint and foundation in order to fetch all extensions that
* are at least compatible with TYPO3 v10 (`typo3_version>=10`)
* that referen...```
GET /api/v1/extension?page=1&per_page=50&filter%5Btypo3_version%5D=10
```
I was using above endpoint and foundation in order to fetch all extensions that
* are at least compatible with TYPO3 v10 (`typo3_version>=10`)
* that reference to a composer name (`meta/composer_name<>''`)
Thanks in advance for any feedback, how to retrieve that data.BacklogOliver BartschOliver Bartschhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/548TER REST API throws exception on TYPO3 version although the version is given2022-05-15T19:23:44ZChristian BuelterTER REST API throws exception on TYPO3 version although the version is givenWhen uploading the Extension "access_keys" via tailor the API throws an exception that no full version for TYPO3 Core is given although a version is given.
Uploading manually into the TER works.
## Exception
```
array (
0 => '{"stat...When uploading the Extension "access_keys" via tailor the API throws an exception that no full version for TYPO3 Core is given although a version is given.
Uploading manually into the TER works.
## Exception
```
array (
0 => '{"status":400,"code":1604923182,"error":"invalid_request","error_description":"No full version for TYPO3 Core given."}',
)
```
The exeception seems to be generated here:
https://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/blob/develop/extensions/ter_rest/Classes/Service/Extension/VersionService.php#L313
## em_conf.php
The full `em_conf.php` is:
https://gitlab.com/codingms/typo3-public/access_keys/-/blob/main/ext_emconf.php
```
<?php
$EM_CONF['access_keys'] = [
'title' => 'Access-Keys for Backend',
'description' => '',
'category' => 'backend',
'author' => 'Thomas Deuling',
'author_email' => 'typo3@coding.ms',
'state' => 'alpha',
'internal' => '',
'uploadfolder' => '0',
'createDirs' => '',
'clearCacheOnLoad' => 0,
'version' => '1.0.1',
'constraints' => [
'depends' => [
'typo3' => '10.4.0-11.5.99',
],
'conflicts' => [
],
'suggests' => [
],
],
];
```BacklogOliver BartschOliver Bartschhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/547Use composer/semver for version validation2022-09-09T10:31:24ZgilbertsoftUse composer/semver for version validationWe should consider to use composer/semver for the version validation.We should consider to use composer/semver for the version validation.Backloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/546Validate composer.json on extension upload2022-01-15T20:43:22ZThomas LöfflerValidate composer.json on extension upload## Background
TYPO3 moves more and more into "composer first". [This feature](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.4/Feature-94996-ConsiderAllComposerInstalledExtensionsAsActive.html) is describing it best.<br...## Background
TYPO3 moves more and more into "composer first". [This feature](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.4/Feature-94996-ConsiderAllComposerInstalledExtensionsAsActive.html) is describing it best.<br>
In TER we still validate only the ext_emconf.php file and do only check the existence of a composer.json and some of its content.
## ACs
* [ ] Add a check for a valid composer.json on extension upload (similar to [this minimal composer.json](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/ComposerJson/Index.html#minimal-composer-json))
* [ ] name is set
* [ ] description is set
* [ ] license is set
* [ ] type is `typo3-cms-extension`
* [ ] extras/typo3-cms/extension-key is set
* [ ] requires `typo3/cms-core`
* [ ] Return a warning if composer.json is invalid or not existing on extension upload until date XX.XX.2022
* [ ] Return an error and deny extension upload after date XX.XX.2022Backloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/545Better error messages on extension key validation2022-08-05T22:27:24ZgilbertsoftBetter error messages on extension key validationCurrently the error messages produced during a failing extension key validation are very inaccurate. The error should point to the rule which was failing during the validation.Currently the error messages produced during a failing extension key validation are very inaccurate. The error should point to the rule which was failing during the validation._Ready for sprintJonas GötzeJonas Götzehttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/543Integrate extension license handling2022-06-16T10:15:44ZAlexander NitscheIntegrate extension license handling### Problem to solve
Currently, it is not possible to filter extensions by license type, display the license on the TER detail page, or manually filter the TER database by license type. Also, when uploading extensions to TER, the licens...### Problem to solve
Currently, it is not possible to filter extensions by license type, display the license on the TER detail page, or manually filter the TER database by license type. Also, when uploading extensions to TER, the license is not checked on the server side, so you have to rely on the user's responsibility.
### Further details
The license is currently written to composer.json and/or a special extension license file that is not checked by TER.
### Proposal
It would be nice to integrate a license handling into the TER by:
1. implementing a license scanner of TYPO3 extensions
* scanning for license in common files (composer.json, LICENSE(.txt|.rst|.md)?)
* returning license in unified wording (or null)
2. scanning for and storing the licenses of all TYPO3 extensions in TER on-demand
* scanning with license scanner
* option for dry-run
* option for being verbose with grouping extensions by
* no license
* changed license
* same license
* and sub grouping all types by license.
3. scanning for the license on upload to TER on server side
* scanning with license scanner
* rejecting if wrong license
* with response containing all supported licenses and a getting in contact note
* with logging extension details and wrong license
* storing license in TER database
* adapting clients to handle responses (API = Tailor, UI = Upload form of my.typo3.org)
4. showing license in TER list tile and linking license to TYPO3 license page with explanations of all common licenses
5. showing license in TER detail page and linking license to TYPO3 license page with explanations of all common licenses
6. extending TER filter by license type
7. extending TER sorting by license type
### What does success look like, and how can we measure that?
Success can be
1. The license scanner recognizes the license in composer.json and LICENSE* file on manual run.
2. A TER run has been successful in dry-run mode and is listing all extensions with either no license or with changed license (as the extension license DB field is empty on first run).
3. A second TER run without dry-run mode shows the same listing (as the first run was in dry-run mode).
4. A third TER run in dry-run mode is listing all extensions with either no license or with same license (as no modifications have been done between second and third run).
5. A TER upload has been successful and the license field is not empty in the TER DB.
6. An exception is logged on TER side which states which license was rejected on extension upload.
7. The TER frontend filters by/sorts by/displays the license in list view
8. The TER frontend shows the license in detail view_Ready for sprinthttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/540Provide a JSON File with the list of verified Extensions2022-06-16T10:15:45ZmultanifxProvide a JSON File with the list of verified Extensions### Problem to solve
<!--- What problem do we solve? -->
### Further details
<!--- Include use cases, benefits, and/or goals (contributes to our vision?) -->
To highlight/display the verified Extensions in the Extension Manager, the ...### Problem to solve
<!--- What problem do we solve? -->
### Further details
<!--- Include use cases, benefits, and/or goals (contributes to our vision?) -->
To highlight/display the verified Extensions in the Extension Manager, the list of verified Extensions is needed.
Providing an endpoint, where the list of verified extensions is returned as JSON File.
The List should include:
extension_key, latest version number
### What does success look like, and how can we measure that?
There is an URL to a JSON File, which includes the full list of verified extensions.
**Acceptence Criterias**
* [ ] The file could be opened via URL and includes all verified extensions with the latest version number for the given TYPO3 major version
* [ ] The file contains only extensions and versions that matches the given TYPO3 major version
### Links / references
```json
{
"extensions": {
"extension-key-a": "1.0.0",
"extension-key-b": "1.3.0",
}
}
```_Ready for sprinthttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/530Stats for extensions2023-06-15T19:22:13ZmultanifxStats for extensions### Describe the task
For an analysis of the extension updates, I would need some data about the supported TYPO3 versions of the Extensions in the Extension Manager.
I need the information about "works with TYPO3" (https://extensions.t...### Describe the task
For an analysis of the extension updates, I would need some data about the supported TYPO3 versions of the Extensions in the Extension Manager.
I need the information about "works with TYPO3" (https://extensions.typo3.org/ )
from
- 22.03.2021 (3 month after 11.0 Release)
- 21.07.2020 (3 month after 10LTS Release)
- 23.11.2019 (3 month after 10.0 Release)
- 02.01.2019 (3 month after 9LTS Release)
### Further details
I wanted to know, when people are updating their extensions.
### What does success look like, and how can we measure that?
Information about the numbers of extensions for Version 7,8,9,10 and 11
### Links / references
https://extensions.typo3.org/
```sql
SELECT DISTINCT e.ext_key
FROM tx_terfe2_domain_model_extension AS e
JOIN tx_terfe2_domain_model_version AS v ON v.extension = e.uid
JOIN tx_terfe2_domain_model_relation AS r ON r.version = v.uid
WHERE r.relation_key = "typo3" AND r.maximum_version >= 10004000 AND v.upload_date <= UNIX_TIMESTAMP("2020-07-21")
ORDER BY e.ext_key
```_Ready for sprintThomas LöfflermultanifxThomas Löfflerhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/529Allow extension key prefixes 'tt_'2022-05-20T11:40:58ZFranz HolzingerAllow extension key prefixes 'tt_'### Describe the task
In Version 3.6.2 from 2004-07-12 the exensions starting with 'tt' have been removed from TYPO3 and published as external extensions.
So please allow those 'tt_' prefixes for all extension keys.
### What does succe...### Describe the task
In Version 3.6.2 from 2004-07-12 the exensions starting with 'tt' have been removed from TYPO3 and published as external extensions.
So please allow those 'tt_' prefixes for all extension keys.
### What does success look like, and how can we measure that?
The reservation of an extension key tt_example shall be possible.
### Links / referencesBackloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/528Change lables and add link for version badges2022-08-12T13:47:13ZFrank NäglerChange lables and add link for version badges### Problem to solve
The labels of the TYPO3 should contain the correct wording. e.g. "v10 LTS" and "v8 ELTS", "v7 ELTS" etc.
So use "LTS" for community-supported versions and "ELTS" for the ELTS versions.
Also, it would be cool to lin...### Problem to solve
The labels of the TYPO3 should contain the correct wording. e.g. "v10 LTS" and "v8 ELTS", "v7 ELTS" etc.
So use "LTS" for community-supported versions and "ELTS" for the ELTS versions.
Also, it would be cool to link these labels to:
- https://get.typo3.org
- https://typo3.com/elts
Example:
![bildschirmfoto_2021-06-02_um_16.03.56](/uploads/0c8c45fbfcd8f599eadec7546a052e3d/bildschirmfoto_2021-06-02_um_16.03.56.png)
### Further details
The user gets clear information about the supported versions and can get the direct link to get the TYPO3 version.
### Proposal
change the names and link the labels ;)
### What does success look like, and how can we measure that?
Labels:
- 7 ELTS
- 8 ELTS
- 9 LTS
- 10 LTS
- 11 LTS
since version 6 is out of support, this label should not be displayed or maybe with a hint: "not supported" anymore.
**Acceptence Criterias**
* [ ] Labeles use "LTS" or "ELTS"
* [ ] LTS labels link to https://get.typo3.org
* [ ] ELTS labels link to https://typo3.com/elts
### Links / references_Ready for sprinthttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/527Add pre-release check when releasing extension2022-04-04T17:31:06ZThomas LöfflerAdd pre-release check when releasing extensionThere should be some checks for basic things when there is an extension release (via form, SOAP or REST)
1. `composer.json` file (?) and mandatory fields inside
1. `extension-key`
2. `vendor` (`TYPO3` not allowed)
3. `require` ...There should be some checks for basic things when there is an extension release (via form, SOAP or REST)
1. `composer.json` file (?) and mandatory fields inside
1. `extension-key`
2. `vendor` (`TYPO3` not allowed)
3. `require` includes `typo3/cms-core`
4. Link to the repository (?)
5. `autoload` information if Classes folder exists (?)
2. Documentation exists in any way (Readme file, Documentation folder including not only fake)
Additionally provide this as GitHub Action, GitLab job, etc. for automatic checks before even tags are set.Backloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/526Create abstract notification command where all automatic notification are reg...2022-04-04T17:31:06ZThomas LöfflerCreate abstract notification command where all automatic notification are registered## Problem
Many commands that notify the user of specific
## Solution
One command which runs regularly and all other notification service can hook into it## Problem
Many commands that notify the user of specific
## Solution
One command which runs regularly and all other notification service can hook into itBackloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/525Email notification on token expiration2022-04-04T17:31:04ZRudy GnoddeEmail notification on token expiration### Problem to solve
Access tokens expire after at most a year. It would be handy if there was an email notification when a token is about to expire, so users can update them.
### What does success look like, and how can we measure tha...### Problem to solve
Access tokens expire after at most a year. It would be handy if there was an email notification when a token is about to expire, so users can update them.
### What does success look like, and how can we measure that?
**Acceptence Criterias**
* [ ] Email notification when token is about to expire
* [ ] Email notification when token has expiredBackloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/522Re-index extension after change of documentation link2023-06-15T19:18:04ZThomas LöfflerRe-index extension after change of documentation linkIf there is a change in the documentation link (currently fetched by intercept.typo3.com) there is a need of re-indexing.If there is a change in the documentation link (currently fetched by intercept.typo3.com) there is a need of re-indexing.Backloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/521Provide JSON files with extension information that work for specific or all T...2022-04-04T17:31:04ZThomas LöfflerProvide JSON files with extension information that work for specific or all TYPO3 versionsExamples:
`fileadmin/ter/extensions.json` => All extensions<br>
`fileadmin/ter/extensions.v9.json` => All extensions working with TYPO3 v9<br>
`fileadmin/ter/extensions.v10.json` => All extensions working with TYPO3 v10
Additionally ad...Examples:
`fileadmin/ter/extensions.json` => All extensions<br>
`fileadmin/ter/extensions.v9.json` => All extensions working with TYPO3 v9<br>
`fileadmin/ter/extensions.v10.json` => All extensions working with TYPO3 v10
Additionally add a `json-file.md5` file for fast check if file has changedBackloghttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/519Show Distribution Image in List and Detail view2023-06-15T19:18:33ZStefan BusemannShow Distribution Image in List and Detail view### Problem to solve
As a user, I want to identify distributions, in the list and detail view
**Acceptence Criterias**
* [ ] List view shows an icon or the distribution image
* [x] detail view shows the distribution image
### Lin...### Problem to solve
As a user, I want to identify distributions, in the list and detail view
**Acceptence Criterias**
* [ ] List view shows an icon or the distribution image
* [x] detail view shows the distribution image
### Links / references_Ready for sprintThomas LöfflerThomas Löfflerhttps://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter/-/issues/517Upload of Extensions with Emoji(🔺🟨🟢) in the ext_emconf.php title2022-04-04T17:31:05ZMatthias VogelUpload of Extensions with Emoji(🔺🟨🟢) in the ext_emconf.php title### Problem to solve
Allow emojis in the title of Extensions. Because it is 2021 😀 and makes our lives colorful 🎨
### Further details
Currently we get an error on Upload if the extension title has an emoji in it:
```
Error 0: An excep...### Problem to solve
Allow emojis in the title of Extensions. Because it is 2021 😀 and makes our lives colorful 🎨
### Further details
Currently we get an error on Upload if the extension title has an emoji in it:
```
Error 0: An exception occurred while executing 'INSERT INTO `tx_terfe2_domain_model_version` (`pid`, `crdate`, `tstamp`, `extension`, `title`, `description`, `author`, `version_number`, `version_string`, `upload_date`, `upload_comment`, `file_hash`, `download_counter`, `frontend_download_counter`, `state`, `em_category`, `create_dirs`, `uploadfolder`, `clear_cache_on_load`, `review_state`, `manual`, `has_manual`, `software_relations`, `t3x_file_size`, `zip_file_size`, `composer_info`, `compatible_typo3_versions`, `dependencies`, `authorname`, `authoremail`, `authorcompany`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [2, 1620981173, 1620981173, 20747, "Web Vitals Tracker \ud83d\udd3a\ud83d\udfe8\ud83d\udfe2", "Real Measurement Web Vitals Statistic for your TYPO3", "36626", 1000000, "1.0.0", 1620981173, "first working version", "6be7963f94e68d443f79770ea0585e0b", 0, 0, "stable", "fe", "", 0, 0, 0, "", 0, 0, 61568, 0, "{\"autoload\":{\"psr-4\":{\"Kanti\\\\WebVitalsTracker\\\\\":\"Classes\"}},\"name\":\"kanti\\\/web-vitals-tracker\"}", "", "[{\"kind\":\"depends\",\"extensionKey\":\"typo3\",\"versionRange\":\"11.2.0 - 11.5.99\"},{\"kind\":\"suggests\",\"extensionKey\":\"dashboard\",\"versionRange\":\"11.2.0 - 11.5.99\"}]", "Matthias Vogel", "typo3@kanti.de", ""]: Incorrect string value: '\xF0\x9F\x94\xBA\xF0\x9F...' for column `extensions-prod`.`tx_terfe2_domain_model_version`.`title` at row 1
```
Tried with the title "Web Vitals Tracker 🔺🟨🟢"
### Proposal
a Possible solution could be to change the Database to utf8mb4 encoding
I found this Article (in german) https://www.hydroxi.de/utf8-vs-utf8mb4/
### What does success look like, and how can we measure that?
<!--- Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this -->
**Acceptence Criterias**
* [ ] You can upload an extension that contains emoji's
* [ ] and this title will be displayed correctly everywhere.
### Links / references
- https://www.hydroxi.de/utf8-vs-utf8mb4/
- https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.5/Feature-80398-Utf8mb4OnMysqlByDefaultForNewInstances.html
- https://docs.typo3.org/m/typo3/guide-installation/9.5/en-us/Upgrade/Preparation/Index.html#upgrade-hints-for-version-9Backlog