Skip to content

Releases: in2code-de/in2publish_core

12.0.0 Query Aggregation

19 Aug 13:18
12.0.0
3fb1639
Compare
Choose a tag to compare

🎉 Version 12.0.0 is here

And it's the fastest version of the Content Publisher for TYPO3 ever!

We call this feature "Query Aggregation", because thats what it does. In over 300 hours of development we changed 770 files, we wrote 20836 lines and deleted 24441 lines in over 400 commits1.
This means, that the new Version has 6585 less lines of code (17.2%), that is more than but the catch is, that it is up to 88,4% faster2 than the v11 of the Content Publisher. in2publish_core uses up to 96% less database queries2, which is a huge relief for your editors, databases and servers.

Upgrading

We try to make upgrading as easy as possible for all Admins and Developers. The new UPGRADING documentation will tell you everything you need to know.

To keep it simple: As an admin, you have to rename a configuration value. For developers, everything changed. You have to check if you are using any events or API which was moved, replaced or deleted. This is also a good time to re-evaluate your choice of events and style of collecting data. You will find everything you need to know in the docs


  1. 3087 test lines added, 6585 lines of code removed, ~100 lines of templates, documentation and other files changed

  2. Tested in a real world TYPO3 v11 customer project, which aready uses in2publish_core 2

11.0.3 Bug fixes

18 Aug 07:39
6c5b9cf
Compare
Choose a tag to compare

This release contains all changes of the 10.2.4 release.

These bugs were adresses:

  • Envelope chunking now works on the receiving end, too.
  • Added a missing slash to created combined identifiers of folders
  • Reworked the upgrading docs in UPGRADING.md
  • The flash message severity was set to error and error messages will be shown when the publishing of a file failed
  • Fix the task that rebuilds the redirects cache after publishing a redirect

Issues in this release:

#90
https://projekte.in2code.de/issues/50044
https://projekte.in2code.de/issues/51007
https://projekte.in2code.de/issues/51055
https://projekte.in2code.de/issues/51213
https://projekte.in2code.de/issues/51299
https://projekte.in2code.de/issues/51301
https://projekte.in2code.de/issues/51302
https://projekte.in2code.de/issues/51690
https://projekte.in2code.de/issues/51693
https://projekte.in2code.de/issues/51779
https://projekte.in2code.de/issues/51795
https://projekte.in2code.de/issues/52187

10.2.4 Bug fixes

17 Aug 11:20
042e675
Compare
Choose a tag to compare

Hello content publisher community!

The release of version 12 of the content publisher is within reach. In preparation for this, all minor versions that are still supported will be released to make a clean break.

This version mainly contains bug fixes, some compatibility changes and a few non-feature improvements.

  • Increased compatibility with third-party FAL drivers that do not strictly adhere to TYPO3's LocalDriver behavior
  • Ensured commands don't fail again due to TYPO3 version/compatibility issues
  • Fixed issues with older doctrine/dbal versions installed in non-composer TYPO3 systems
  • Added MM records to the list of records being released to block duplicate publishing
  • The communication between the TYPO3 instances is no longer limited in size
  • Updated the list of required tables
  • Resetting backend user preferences is no longer blocked by an error
  • An error caused by deleted records has been fixed
  • MM records that link a table to an ignored table are no longer ignored themselves
  • itemsProcFunc is no longer a reason to ignore a column when resolving relations
  • Input fields with type inputLink are now supported for resolving links
  • Unexpected test result messages no longer cause internal errors
  • Array keys are checked before access
  • The TableGarbageCollectorTest fails if EXT:scheduler is not installed
  • Fixes a long-known error "duplicate insert into sys_file" that sometimes occurred when publishing files.
  • The HostNameValidator has been removed as it can lead to false negatives.
  • Prevent infinite recursion when publishing records that have a circular realtion.

Issues in this release:
#90
https://projekte.in2code.de/issues/50044
https://projekte.in2code.de/issues/51007
https://projekte.in2code.de/issues/51055
https://projekte.in2code.de/issues/51213
https://projekte.in2code.de/issues/51299
https://projekte.in2code.de/issues/51301
https://projekte.in2code.de/issues/51302
https://projekte.in2code.de/issues/51690
https://projekte.in2code.de/issues/51693
https://projekte.in2code.de/issues/51779
https://projekte.in2code.de/issues/51795
https://projekte.in2code.de/issues/52187

11.0.2 FAL driver compatibility and small fixes and forward port of 10.2.3

18 May 08:06
927ff6f
Compare
Choose a tag to compare

This release also contains all changes of the 10.2.3 release.

FAL driver support

The Content Publisher supports any FAL driver which is compatible with TYPO3. At least that's the promise. Some 3rd party drivers rely on subtle differences of folder identifiers. Depending on which method was called, a folder identifier must or must not start or end with a slash.
Fixing all of the FAL drivers would be a fight against windmills, so it is not feasible. Instead, we are trying once more to mimic TYPO3's seemingly random choice when to strip and when to add slashes to folder identifiers.
This should resolve most problems when publishing files and folders of storages, which use 3rd party FAL drivers.
(https://projekte.in2code.de/issues/50044)

Bugs fixed:

  • replace filter_var with deprecated flag with htmlspecialchars
  • ignore if FAL drivers don't return mime type info
  • hide publish file/redirect button if the record is being published (https://projekte.in2code.de/issues/50387)

10.2.3 Fire and Forget and other publishing processes

06 May 10:30
053024a
Compare
Choose a tag to compare

Currently publishing Records -> Fire and Forget

Related Issues:

For users

This release changes how the content publisher handles records that are selected for publishing in a different process (as in "computer process"). This effectively changes that backend users now see which records are currently being published when having any view opened that would contain a publish button (Which, in the Community Edition, boils down to the Publish Overview and Publish Redirects Module. In the Enterprise Edition there are Buttons on the Page, List and Publish Workflow Module).

The Content Publisher now keeps track of all records which are selected for publishing. These Records and any related record that will be published in the whole process will be marked as such, which disables the option to publish one of these records until the publishing process is finished. This prevents editors from publishing a page twice and therefor cause an even higher load on the servers, aside from the fact that publishing a page/record twice will not have a beneficial effect whatsoever.

The Content Publisher will show a spinning circle icon for all pages and records which are currently publishing, regardless which backend user started the process, if the user opened the Publish Overview Module in a new tab or another user views the module.

The overall gain of this change is more transparency of which record is currently publishing and reducing multiple publishing processes for the same record.

This change trickles down to the enterprise feature "Fire and Forget", which puts all publishing processes into the background and lets editors publish multiple pages without the need to stay on the page. The icon of Fire and Forget was changed to the circle-spinner and it will mark records as publishing, too.

For admins

Please create a garbage collector task to remove stale records from the table tx_in2publishcore_running_request.
This is a bug fix, which prevents unwanted side effects. It is always active, you can not enable/disable it.

Developer info

If you are a developer and use the Content Publisher to publish records, you might have to dispatch a new event:
For any action that will publish multiple records, you have to create and dispatch the event RecordsWereSelectedForPublishing (link to docs)

Further bug fixes

  • Fixed a bug in the ShallowRecordFinder which lead to missing child records (especially pages)
  • Corrected the record depth counter when using ShallowRecordFinder (only visible when debug.showRecordDepth = TRUE)
  • Ensure that confirmation for publishing a record is asked before anything else (https://projekte.in2code.de/issues/50088)
  • Fixed undefined index access in DefaultRecordFinder (x2) and TableInfoService
  • Ignore FlexForm type = select fields without a foreign_table
  • Rely on the actual sortby field instead of using a fixed field name
  • Fixed associative array keys which are used for call_user_func_array (https://projekte.in2code.de/issues/50000)
  • Support non-composer TYPO3 distributions again (by reversing the upgrade to doctrine/dbal > 2.11.0) (https://projekte.in2code.de/issues/50175)
  • Ue both the local and foreign file name to identify a file

Further non-feature changes

  • Updated all extension icons for a better look & feel (https://projekte.in2code.de/issues/49147)
  • Replace class constants access with the class that defines the constant
  • Added missing documentation for all events
  • Various code style issues

9.5.4 Backport TaskExecutionService

21 Mar 10:26
9.5.4
ef6657b
Compare
Choose a tag to compare

This release backports a refactoring. It does not fix a bug or introduce a feature. There is, however, a new signal slot you can use. The signal will be dispatched after all tasks in the task queue have been executed, regardless of the outcome.

Signal class name: In2code\In2publishCore\Component\PostPublishTaskExecution\Service\TaskExecutionService
Signal name: afterTaskExecution

11.0.1 Minor bug fixes

16 Feb 14:46
11.0.1
1f46984
Compare
Choose a tag to compare

This release fixes minor bugs (typos and PHP warnings).

10.2.2 Minor bug fixes

16 Feb 14:42
1aa5b93
Compare
Choose a tag to compare

This release fixes minor bugs (typos and PHP warnings).

11.0.0 TYPO3 v11 compatibility

10 Feb 09:07
11.0.0
36e4655
Compare
Choose a tag to compare

TYPO3 v11 compatibility

Hey people,

with some unscheduled delay compared to our planning, i am happy to present the new major version of the Content Publisher. We have never spent as much time on a release as we did on this one. In addition to countless adjustments for TYPO3 11, we also fixed a lot of bugs that also went back into version 10. We also did a lot for quality assurance. Now, the Content Publisher is tested automatically in a (currently private) CI pipeline with acceptance tests in addition to the existing unit and functional tests. These very elaborate browser-based tests run at least once a week with the latest version of the Content Publisher.

The biggest changes are in the area of layouts. Not only has the rendering been completely adapted for TYPO3 v11, but the Publish Files module is the first module to get a full makeover.
The new module fits much better to the look and feel of the Backend. Also the "Publishing Bag" feature has been added to the Enterprise version, which allows to select and publish multiple files at once.

The filters for files have been revised. We added a search field to filter files by name. The status filters are now applied with immediate effect and are saved much faster in the user session.

As far as code quality is concerned, we have also made great leaps. With the introduction of GrumPHP, every new commit is now checked for style and quality using phpcs, phpcsfixer, phpmd, phpstan and psalm. With the introduction of the tool over 2400 lines of code were adjusted.

10.2.1 Bugfixes, bugfixes, bugfixes,...

09 Feb 15:00
a786f49
Compare
Choose a tag to compare

🐛 Gotta fix 'em all

Important ones

  • Using foreign_types in IRRE MM relations is no reason to not support those anymore. The key will be ignored and IRRE relations with MM tables will be supported.
  • Command registrations are now dependent on the context. Commands only available on Local will only be registered on Local. This fixes an exception in the Scheduler module on Foreign.
  • Return correct value in VoteIfRecordShouldBeSkipped::getCommonRepository. Fixes exceptions when this events' method is used.
  • The SysInfo exporter which dumps the config will actually dump the config again.
  • Fix variable type in ReplaceMarkersService. Fixes exceptions when ### markers with IDs are used in PageTS.
  • Fix exceptions when localized Records withouth given identifiers are created using a custom Factory.
  • Fix exceptions when file preview domains to not contain a path nor scheme.
  • Disable ConfigContainer UserTsProvider until the Backend User was loaded. PageTS may contain conditions referring to the BE User group and the evaluation result is cached. This will fix broken PageTS conditions in the Backend.
  • Added new event TaskExecutionWasFinished. The actual bug occurs in the Enterprise Edition, but you get this event for free 😉
  • Support T3 URIs as redirect targets. This will link redirects to pages which are the target defined in that T3 URI. Fixes missing redirect associations (TYPO3 changed the redirect target format)
  • Make RecordFinder and RecordPublisher public services. Prevents exceptions in the Publish Redirects module.

Fixes under the hood

  • TaskRepository::findByExecutionBegin return type hint and annotation fixed to return the actual type
  • Set default values for typed properties which are not injected.
  • Fix property name MissingRequiredAttributesException::$requiredAttributes (it's an array but was named requiredAttributesString)
  • Removed superfluous checks for the ToolsController which was refactored some time ago.
  • Correctly rethrow exception in the Letterbox. These exception will now contain the actual error again.
  • Record properties are sometimes false and sometimes [] and sometimes [false]. The latter case will not occur anymore.
  • Prevent exception when files don't exist on foreign. These exceptions have never been seen because they were handled gracefully.
  • Fix annotations and type hints for method EnvelopeDispatcher::getFileObject