Bringing Workspaces up to speed

Categories: Development Created by Benjamin Mack
First meeting of the new Workspaces team in Wiesbaden on June 1st, 2010
One of the key features that makes TYPO3 an enterprise-level open source content management system is the possibility to work with Workspaces, a functionality that is built right into the TYPO3 Core. Workspaces in TYPO3 are an advanced way of versioning in an installation in order to have a sophisticated workflow system when publishing pages. The concept and implementation was originally done by Kasper Skårhøj, the original developer of TYPO3, back in 2005. Although feature-rich, workspaces are considered difficult to handle for the average user as well as for extension and core developers. Although versioning and workspaces is almost feature-complete, it has been hard to change something within code itself. Some developers who have already contributed work regarding the workspaces feature were invited to meet in Wiesbaden at the offices of AOE media in order to discuss the current state and the future of workspaces in TYPO3. The participants were Sonja Scholz from cab services ag, Benjamin Mack (Release Manager TYPO3 4.4), Oliver Hader (Leader of the TYPO3 v4 Core Team), Core Team developer Peter Niederlag, Michael Klapper and Tolliev Nietsch, both from AOE Media and Ben van 't Ende (TYPO3 Product Manager). First, there was a short personal round about what had been done with workspaces and what everbody expected from this meeting. We then got introduced to the various enhancements each of the developers had done. There was also a short discussion about whether or not there should be attempt to separate Workspaces from the TYPO3 Core, but it was soon clear that this would also imply a complete refactoring of the “heart of TYPO3”, the TCEmain class, and that the focus should be on something else for now. A list with all open tasks and possible features was then written on the whiteboard, each of the issues was discussed and decided on how certain aspects should be dealt with. Here are some of the outcomes: Handling of the DB and file mounts in workspaces As there was no clear decision on how DB and file mounts should be handled within workspaces, the group discussed this topic at length. The result, which is going into TYPO3 4.5, will be explained like this: The usual DB and file mounts that are attached to the usergroup (and thus the user) record restrict every user as usual. The selected mounts in the Workspace record restrict each user even more to only allow a certain subset of the users' available DB mounts. If none was selected at the workspace, there are all user-based mounts available in this workspace. Thus, mounts in both areas (user/usergroup and workspace records) act as „filters“ and narrows the selection down even more. Deprecation of branch and page type versioning TYPO3 4.0 came with three types of versioning, the underlying technique that workspaces are using inside TYPO3. The three types were “Page” versioning, which versions elements on a per-page basis, “Branch” versioning that tracks changes on a per-branch basis, and “Element” versioning. At first, “Element” versioning didn't support moving of versioned elements within a workspace. Kasper made this possible with TYPO3 4.2, and wrote that the other options should not be used anymore, and made a small announcement in the NEWS.txt information back then, but still allowed the other two versioning types to exist. In order to make the whole process more maintainable, the group decided to officially deprecate them and disable the two versioning types “branch” and “pages” by default with the next version TYPO3 4.4, and that these versioning types will then be removed with TYPO3 4.6. Until then, these versioning types will not be maintained anymore. Deprecation of the draft workspace The draft workspace was always hardcoded in the TYPO3 core since 4.0, and is a special “workspace” that can't either be configured nor removed. It acts as a small introduction on the workspace feature, but when working with workspaces, it was a rather confusing element as it doesn't allow mounts to be shown up and doesn't have a specific workspace record associated with it. That's why the group decided to remove this workspace by default, while keeping the possibility to activate the draft workspace through the extension configuration of the “version” extension. The change is included in TYPO3 4.4 already. Visual cleanup and improving usability One of the problems most editors struggled with, was the complicated module in the backend. All participants agreed that this task should be done soon, but that the Design team should be included in the process. Same goes for the preview window and the notification mechanism. Documentation The group agreed on having better documentation on how to set up workspaces, how to work with workspaces as an editor, and what an extension developer needs to keep in mind when supporting workspaces. Of course, more topics than these five issues were discussed, you can find more detailed information in the meeting protocol, available on <link http: forge.typo3.org projects typo3v4-workspaces activity>forge.typo3.org. All participants agreed that Workspaces are an important feature and that the work in that area needs to be consolidated. Everybody decided to take part in further work and meetings, that's why an official “Workspaces team” was created at that day, and was later approved by Kasper, who had led the workspaces development so far as a one-man-show. For the future, the team will be responsible for the workspaces part of the TYPO3 Core and form a vision for the workspaces development. Anyone in the community willing to participate in this area is welcome to get in contact with the team. The workspaces team also agreed on having regular meetings via Skype, a workshop with hands-on sessions at the T3DD10 to make more changes, as well as a possible three-day-meeting in September to make sure everyone's enhancements and other issues that might arise, will be fixed in time, to have user-friendly workspaces for TYPO3 4.5, to be released in December of this year.