Announcing TER cleanup process

Categories: Development Created by Jigal van Hemert
Everybody recognizes this situation: you're looking for an extension with a certain functionality and after you've installed it all kinds of errors appear about missing functions or even worse, you only see a blank page. Further investigation shows that the extension isn't compatible with your TYPO3 version. For a long time extensions can set the TYPO3 version(s) they are compatible with. Unfortunately not many extension authors use that setting. You could take a look at the date of publication, but even that won't be a sure sign.

The plans

To reduce the chances for such problems some things will change:
  • the dependency setting in an extension for a TYPO3 version (or a range of versions) will become mandatory; this means that extensions without a dependency for one of the currently supported core versions will be rejected during the upload.
  • extensions without a TYPO3 dependency setting or with a dependency for none of the current TYPO3 versions will be marked as "outdated".
  • "outdated" extensions will not show up at first in the TER search results; you can activate a switch to also show "outdated" extensions.
  • "outdated" extensions will be clearly marked in the Extension Manager.

The schedule

  • Announcements in as many places as possible (end of January)
  • Mails to extension authors to notify them of the changes (February)
  • Patches for TYPO3 Extension Manager to display "outdated" extensions differently (beginning of February)
  • Rejecting extensions without valid dependency during upload (August 1st, 2013)
  • Marking extensions without (valid) dependency in TER (beginning of August 2013)
  • Hiding "outdated" extensions in TER search (beginning of August 2013)

Definition of an "outdated" extension

An extension is called "outdated" if it has set a dependency for TYPO3, but none of the versions it depends on is actively maintained. For example: it has a dependency for TYPO3 4.0-4.3; all these versions are 'end-of-life' and this extension is clearly not designed to work with any current TYPO3 installation.
Because a lot of extensions don't have a dependency set, we have to expand the definition a bit in the beginning: extensions which were uploaded before the release of the oldest, currently maintained TYPO3 version are also "outdated". If an extension was uploaded before the release of TYPO3 4.5 it was obviously not tested with that version.

And in the (near) future...

Shortly we will have a 'gap' in the range of supported versions: 4.5 (LTS), 4.7, 6.0. This will mean that the check will be a bit more complicated, but the basic rule will remain the same:
check if there is a match between the range of TYPO3 versions set in the dependency property and the currently maintained versions.

Implications for integrators

If you search for extensions in TER after August 1st, 2013 these "outdated" extensions will not show up immediately. Only if you activate the option to include "outdated" extensions they will be included in the results. It is still possible to download these extensions, but you need extra effort.
If you search in the Extension Manager in the list of extensions in TER the "outdated" extensions will not show up.
If you try to install an "outdated" extension (uploading it in the EM) the behavior will depend on whether the TYPO3 dependency has been set or not in the extension. This is the current situation already.
If an extension you currently use is marked as "outdated" there is really no problem. It works for you, but it might not work in newer TYPO3 versions. You could ask the extension author to update the extension.
Please note that also not-"outdated" extensions might fail with a new TYPO3 core version. If the extension is compatible with TYPO3 4.5 it is not "outdated", but it may be incompatible with TYPO3 4.7 you want to upgrade to. Checks to see if your installation is upgrade-ready might be a nice feature for a new tool.

Implications for extension authors

If you try to upload an extension without a dependency for TYPO3 or with a dependency which is outside the range of currently supported TYPO3 versions your upload will be rejected and an error message will be shown. Simply add to ext_emconf.php a dependency for the version(s) you tested the extension with:
  'constraints' => array(
    'depends' => array(
      'typo3' => '4.5.0-4.7.99',
    ),
  ),
You can set the minimum for a version of TYPO3 which is not supported anymore, but then the maximum must be within the supported range. You cannot set a maximum outside the range of supported versions.

What happens with "outdated" extensions and their keys?

Really, nothing much. They will remain in TER, but not as visible as they were before. The extension keys will still remain with their owners.
If you upload a new version of an "outdated" extension it will appear again in the search results, because the dependency is set for one or more of the currently maintained TYPO3 versions.

Security issues and "outdated" extensions

The security team will give more attention to extensions which are actively maintained. If a security issue is reported for an "outdated" extension the normal procedure will be followed.

Future developments

The information about the TYPO3 versions an extension will work with can be used for other features of the TER and the Extension Manager.
In the future it will be possible to search for compatibility with a specific TYPO3 version.
It would also be possible to show in the EM the list of extensions in the TER which are compatible with the installed TYPO3 version.
A check to see if all installed extensions are compatible with a new TYPO3 version before you perform the upgrade would also be possible.

More information

The Extension Coordination Team [1] handles this operation. See [2] for the wiki information. There is a mailing list / newsgroup "typo3.teams.extension-coordination" to ask questions and discuss the procedures. [1] <link http: forge.typo3.org projects team-ect _blank>forge.typo3.org/projects/team-ect
[2] <link http: forge.typo3.org projects team-ect wiki ter_clean-up _blank>forge.typo3.org/projects/team-ect/wiki/TER_Clean-up