Coding for a better 6.1 in Bochum - FAL Code Sprint

Categories: Development Created by Benni Mack
Last Thursday to sunday, the community had two code sprints - one was about the typo3.org website, and one was centered around the current implementation of the File Abstraction Layer (short: FAL), shipped with TYPO3 CMS 6.0, set in Bochum, Germany.

Although the concepts are great and are already integrated in the CMS tool, the antivirus software company G Data Software AG, the host of the code sprint, had very impressive use-cases on where the  current limitations lie. Editors cannot work with the file collections as there is no suitable UI for them. Picking a folder in large installations is unhandy, and the migration wizards currently don't care about the Magic Images of the RTE. A lot of the small details came up in the last months, so this code sprint was all about "making it right" and cleaning up.

These talented hard-core coders had their fingers on their keyboards the whole time:

  • Nicole "Debug it all" Cordes - cleaned up so many small nitpicks the right way
  • Michael "G Data code weasel" Staatz - found his way into so many hidden bugs :)
  • Sebastian Dudda - Our personal Extbase knowledge base
  • Tom Rüther - our organization master and UI specialist
  • Alexander "it's all about speed" Opitz
  • Fabien "media-master" Udriot
  • Andreas Wolf - the man behind the concepts
  • Oliver Hader (thursday only) - workspaces reloaded
  • Benjamin Mack - cleaning up the rest

The most amazing location and the best to-date food yet at a code sprint was provided by Tom Rüther and G Data Software AG in Bochum. Probably for the first time we actually did not order nor eat any pizza at all, as one of G Data's company philosophies is about eating Slow Food. A small wine-tasting and whiskey-tasting almost each night was available - although most of us wanted to code further instead.

As there were a lot of different areas we worked on, each developer had his/her own speciality and field to contribute:

  • Media Gallery - an Extension that ships with a Frontend Extbase plugin to show FAL / media elements in a gallery with a lightbox. Initially sponsored by the BLE project for 4.7, it needed to be updated to the 6.0 surroundings. - Tom and Michael took care of that.
  • As the collection handling is unsatisfying for editors currently, Michael created a new extension that provides a better UI. This is still in the works.
  • Tom looked into ways to improve the usability in the Backend regarding integrating the file handling into the Element Browser and IRRE.
  • Media itself was introduced, as Fabien did a lot of work in that area to demonstrate the current state
  • The reference implementation for an external driver, WebDAV (Extension key "fal_webdav") was improved and re-tested with some special cases
  • The wiki page <link http: wiki.typo3.org file_abstraction_layer>wiki.typo3.org/File_Abstraction_Layer  was improved with some useful results of the last weeks
  • Smaller topics like "How do I delete file?" and "what is the correct default upload folder?" were identified and solved

Most of the issues were already merged to the TYPO3 core, also merged into the 6.0 branch.

The following issues are still open and need reviews:

Apart from FAL and its implementation, we also did some work outside of that area:

  • Fixed and reviewed over a dozen of unrelated open issues that needed more reviews
  • Alexander looked into the performance issues with the current class loader to speed up both the TYPO3 frontend and backend
  • Tom checked out certain tree implementations to improve the file and folder selection, and also the UI of the element browser, where we usually have a tree structure.
  • Rather on the side, Michael and Nicole worked on a rather trivial issue - that is to use your own non-EXT-JS navigation frame component. This was unfortunately not documented anymore, but the two found a way, and will create a blogpost, documentation issue or anything like that to inform the rest of the world on how to do that in your own extension.
  • Benni looked into different JobQueue Implementations that could be included in the TYPO3 Core, to help supporting the indexing process for FAL.

The next steps:

  • Everybody: Get the missing core reviews to narrow down the open FAL bugs
  • Fabien will work on Media, will create a use-case for media and then publish the extension to the TER
  • Tom will add the updated version of media_gallery to forge, so we can test the extension
  • Andreas will publish the extension fal_webdav to TER
  • Andreas and Benni will have another meeting in Stuttgart or Karlsruhe about more concepts that is recycler, versioning, property bags and more sophisticated indexing.
  • Michael will continue his work on the File Collection management extension

Thanks go to all participants, to Tom Rüther and G Data Software AG for the code sprint organization, as well as the G Data Software AG and TYPO3 Association for sponsoring hotel and travel costs. Also, thanks to all external reviewers that supported us from remote.