in2publish_core 10.0.0 - a milestone
As described, support for TYPO3 v9 has been removed, as this version is no longer officially supported. At the same time, this allowed us to make some far-reaching changes, such as converting signal slots into events, using dependency injection and declaring central components as services.
TYPO3 v10 integrates another component of the Symfony framework, the event component. This allowed us to replace the clunky implementation of signal slots in extbase with the fast and lean DI container-based event system.
For our users who rely on signals to implement their additional publishing logic, we added a backwards compatibility layer for signals (only for signals and only for in2publish_core v10). You can still use the old signals, but you will need to switch to event listeners before upgrading TYPO3 and in2publish_core to the futures version 11.
Here you will find a list of all signals and the events that replace the signals.
Events not only make it easier to get your code to interact with the content publisher, they are also much faster.
Another feature introduced with TYPO3 v10 is the Dependency Injection Container, another component of the Symfony framework.
We use the service definition to define factors for different services, such as the local and foreign database connection, which are now injectable. So you don't need to use the DatabaseUtility anymore. Please note: An error is caused if a connection is injected that is not available. (This means that connections must not be injected into classes that are always loaded, as this will put the backend in an unusable state).
Another possibility is to dynamically register services in the Services.php file, which removes some conditions from the ext_tables.php file, making the TYPO3 boot mechanism a bit more efficient.
Tests are only useful if they are actually executed. That's why we have restructured our tests to run in GitHub actions. They are run on every push into the repository and daily on a scheduled basis. The latter is to ensure compatibility with third-party libraries that are updated independently.
The test run for this version can be found here.
Content Publisher version 10
in2publish v10 has the same backwards compatibility layer for signals as in2publish_core. You can continue to use signals, but you will have to replace them at some point. The backward compatibility layer will be removed in in2publish v11. The comprehensive list of all signals and the events that replace the signals can be found here.
in2publish_core has already done it and in2publish goes one step further. We use service configuration, but we still want to keep a strict separation between the features that come with in2publish. Each in2publish feature has its own service configuration, which allows us to reduce side effects and conflicts.
There is not much special about this release, except that support for TYPO3 v9 has been terminated like the other extensions. This version therefore explicitly supports in2publish_core v10 and TYPO3 v10.
In addition, debugging support has been improved, which essentially means that xdebug sessions are redirected from the CLI.
in2publish local file adapter 1.1.0
This extension allows the content publisher to publish the local file store to another local (live) file store. Version 1.1.0 supports TYPO3 v10 with in2publish v9 or v10.
in2publish_native SSH/SCP adapter 1.1.0
This extension provides Content Publisher communication adapters to replace the standard SSH2 adapters in the Community Edition. These adapters use the operating system's ssh and scp binaries to connect and transfer files to the third-party system. DAs Release 1.1.0 supports TYPO3 v10 with in2publish v9 or v10.