TYPO3 CMS 6.1 - Improve

Categories: Community Created by Benni Mack
The upcoming release, TYPO3 CMS 6.1, will be a small increase by going further on the way that 6.0 paved for the future. The base tone for 6.1 is therefore simple called "Improve."
The release of TYPO3 CMS 6.0 in November 2012 was a huge success for the TYPO3 community. A new milestone for the current CMS was set by Helmut Hummel, his Release Team and the hundreds of contributors that joined the development. Some groundbreaking changes like the use of PHP namespaces, the refactoring of the TYPO3 loading process (Bootstrap) and the File Abstraction Layer were introduced. But… we don't stop after 6.0. According to our release cycle, a new version is planned for the end of April 2013. The short release cycle of just 3.5 more months shows us that it's hard to set high goals in a community-based project like TYPO3 - I suggest to go the other way around: The goal is to improve in any kind of way,not just code-wise.
Improve the communication, improve the contributions, improve the product

Improving communication

We noticed so many problems with the communication channels in our community over the past years - and I am thankful we get new chances to improve this in the future.
With 6.1 we will introduce regular release team meetings via Google Hangout - they will take place on every monday at 4pm (UTC+1). A small protocol ("meeting minutes") will be released shortly afterwards on forge every week. Everybody is welcome to these meetings, if you have an idea or a topic that is up for discussion and related to 6.1, you can join. Just let me know in advance via email (benni.mack@typo3.org) or twitter (@bennimack) The main developer-centered communication channel will be the mailing list (typo3.teams.core) - especially for discussions and topics. The wiki, forge for new issues and Gerrit for code changes will play a role in communication. Also, make sure to keep an eye on twitter and the news channel on typo3.org.

Improving contributions

One of the great strengths of TYPO3 is that you can do almost everything with it. Most people just don't know how to do that. This blocks the TYPO3 community and the TYPO3 project from growing even more. That’s whay I want to clear up some topics: “The TYPO3 CMS Core Team is the team that develops the TYPO3 CMS Core
This small group of the community has a clear mission - it is responsible for the maintenance and the further development of the product (see our mission statement). This doesn't mean that every line of code and every pixel of a small png image will come from them. In fact it's the reverse: TYPO3 6.0 was shaped by more people outside the core team than from the TYPO3 CMS core team.
TYPO3 has a steep learning curve. People don’t know where to start off.
No! There are coding guidelines, contributor guidelines and documentation. And it is very good. I feel like the "old guys" just don't point to these documents, and we should get better in that regards. Help others get involved. Part of that also means that the introduction to handling of the product itself, the coding and styling should be streamlined better and documented more. The old wise guys should help the documentation team to shift the documentation in the front row. “I need more reviews to get my patches in. I would like to have more feedback on my code
I see the point that it is very frustrating if the patches won't get reviewed. However, as we really want to improve this problem, I see the rise back to certain regular "review days" to get further. Also, we have quite some code sprints in the pipeline - a great chance to get deeper in the development parts. Contribution is more than just hacking the TYPO3 CMS Core
The good thing about TYPO3 is that it doesn't end with the CMS Core. There are numerous amazing extensions out there that enhance this "base model" greatly. Therefore, let's make sure that the ecosystem around TYPO3 evolves as well. This goes for extension development (helping people to develop, maintain and publish extensions) but also for keeping the possibility to allow old extension to work (don't worry, pibase will still be around, although I don't encourage). Other areas like the package management, typo3.org and just news about TYPO3 is being part of the community.
Let's talk and blog about these topics. Tell people how you solve problems, to show the "best practices" - enrich the TYPO3 experience.

Improving the product

If you compare TYPO3 CMS with a car, you notice that the TYPO3 car is a massive, big SUV with a lot of cool things out-of-the-box that you might not even use or know about. But I often feel that if you look on the inside of that TYPO3 car, the drivers seat is orange leather, and the other seats are just simple and basic. Some areas outside are not even painted the same color as the main hood. Of course you can add a lot of new comfortable add ons like seat heatings - but my definition of improving means not to add more gadgets to the drivers set but fixing broken things, exchanging the gears to make the overall feeling of that car more intuitive. Then, the car runs better, safer and faster than before - the actual purpose of a car - right? ;-). Taking Kasper's initial motivation - fixing personal itches, I think this shapes the goals for 6.1 pretty clearly. Let's improve TYPO3 CMS by focussing on the small half-baked things that make this piece of software better, safer and faster. I see so many small itches I would love to scratch: We have multiple tree rendering types, we have different behaviors in click menus, we have different types of hooks, different ways to delete a single file, different ways to list elements etc. This is not just appearance and usability, but also code and docs cleanup (seriously, there are parts where you shouldn't read the documentation inside the PHP code from 2003 anymore). Another aspect in improving TYPO3 CMS is to get closer to our new flagships, TYPO3 Flow and TYPO3 Neos. Extbase, Fluid and Caching are directly related to Flow and Neos development. The main topics to exchange ideas in particular relate to JavaScript development and coding guidelines as well as package handling / extension handling.
To sum up the previous, the following elements will be essential for the next release:
  • Regular release meetings, open for everybody
  • Regular information about the release status
  • Get coders back and closer to our existing documentation, improve guidelines and point to them more clearly
  • Talk about your experience with TYPO3
  • Embrace Code sprints and review days
  • Streamline any kind of inconsistency in any part of the product
  • Exchange ideas with the TYPO3 Flow and TYPO3 Neos team on how to approach certain common problems together.
Detailed information about the code sprints will follow in the coming days. And yes, for the planned new features in 6.1 - that's what you've been waiting for, right? These are my personal goals in terms of features:
  • File Abstraction Layer
    • Enable FAL to be better and faster, and a good base for a new way "Media handling"
    • Make sure the Media team has all the flexibility in the hooks (FYI the Media extension will someday be the new DAM)
  • JavaScript
    • No use of prototype.js anymore in TYPO3, have a stable and documented API for jQuery within TYPO3, to make it easy to go with JavaScript in TYPO3
    • Coding Guidelines for JavaScript, Review our existing coding guidelines
  • Extensions
    • Make the process of extension handling even easier and flexible (we will see what that will mean ;-))
    • Build a compatibility layer for outdated extensions, new documentation on best practices for extensions (work in progress, see <link http: forge.typo3.org projects show extension-compatibility>forge.typo3.org/projects/show/extension-compatibility)
  • … But I count on your personal goals for 6.1 as well! I am sure that bigger projects inside the community like “Media”, “Deployment” or “Grid Elements” will get closer to the TYPo3 Core.

The time frame on the way to the final release will be:
  • Alpha 1: Feb 18, 2013
  • Alpha 2: Mar 5, 2013
  • Beta 1: Mar 26, 2013
  • Beta 2: Apr 9, 2013
  • RC 1: Apr 23, 2013
  • Final Release: Apr 30, 2013
If you have any ideas, questions or time for coding :) - feel free to contact me directly, or the TYPO3 mailing list. Let's go further, let's improve!