[TYPO3-v4] Minutes from the 4th meeting of the 4.6 Release Team

Oliver Hader oliver.hader at typo3.org
Tue Apr 5 10:54:54 CEST 2011


Hi dear TYPO3 community,

here are the notes of the 4th meeting of the 4.6 Release Team.

The minutes are also available in the wiki of TYPO3 4.6:
http://forge.typo3.org/projects/typo3v46-projects/wiki/2011-04-04_-_Minutes_from_the_4th_meeting

----------------------------------------------------------------------

Minutes from the 4th meeting of the 4.6 Release Team

*April 4th, 2011*

The 4.6 release team meets weekly for a Skype discussion round on the
current activities. If you find this report interesting or have some
comment or question about a particular topic, don't hesitate to
follow-up on the thread in the v4 mailing list.

On Monday, April 4th 2011 we hold our 4th meeting with the following
participants:

* Xavier Perseguers (4.6 Release Manager)
* Oliver Hader (Core Team Leader)
* Benjamin Mack (4.4 Release Manager)
* Steffen Kamper (4.5 Technical Leader)
* Ben van't Ende (Community Manager)


Projects
========

Backend User Interface
----------------------

Concerning reorganizing elements in the backend user interface, Xavier
and Jens had a Skype Meeting (forge issue [1]) with these results:
* backend users shall have an accordant widget in the topbar that
  allows to enable/disable features like the localization view, RTE,
  etc. - for admin users this is extended by the accordant
  possibilities (see screenshot in the issue)
* the left part of the topbar shall be used to display informations,
  the right part to provide (module) actions
* it is planned to visualize warnings, errors and notices by displaying
  an icon in the topbar - by clicking the icon details are shown

[1] http://forge.typo3.org/issues/13999

Code Cleanup
------------

The cleanup is in a good progress [2] and shall be finished until TYPO3
4.6 alpha1.
Xavier provided a start for changing the visibility of class member
variables - he does not have time to finish this for all classes in the
Core, however it's a good start one can continue with [3]

[2] http://forge.typo3.org/issues/24954
[3] https://review.typo3.org/#change,1446

XLIFF vs. locallang.xml
-----------------------

A new project to integrate the XLIFF standard into TYPO3 v4 was created
[4]. XLIFF, which is also used by other OSS projects and TYPO3
Phoenix/5.0, will replace the current locallang.xml solution.

[4] http://forge.typo3.org/projects/typo3v4-xliff

TYPO3 4.6 Progress
------------------

There are a lot of issues assigned and targeted for TYPO3 4.6 alpha1.
Since the first alpha will be released in one month on May 10th 2011,
it's required to put some pressure on those tasks, at least it would be
great to have at least 80% finished. So, this is a reminder to all
assignees to take over the responsibility to really have those tasks
finished within the next few weeks.
Our 4.6 Release Manager Xavier will be at the Swiss Military Service
between April 12th 2011 and May 6th 2011 - thus he will be offline most
of the time and only available at the weekend. Benni and Olly will jump
in and take care of the prioritized projects to be ready for 4.6 alpha1.


General issues
==============

TYPO3 4.5 Performance
---------------------

Steffen and Olly had a Skype meeting on the performance of the TYPO3
backend and here are the results:

* AJAX requests in general (ExtDirect)
** Different ExtDirect requests are already combined to one single
   request if they are triggered in an accordant time frame.
** Each AJAX request will do the whole backend bootstrapping (init.php)
   which is not required in all cases (see init.php part).
** The goal is to determine, combine and thus lower the AJAX requests
   and the load produced by doing the bootstrap again and again.
* PageTree issues
** It turned out that showing the PageTree takes seconds(!) on sites
   with many pages.
** Each page node creates a separate request that will be processed and
   creates another request if there are subpages of that node.
*** This behavior can be modified by setting
    $GLOBALS['TYPO3_CONF_VARS']['BE']['pageTree']['preloadLimit'] to a
    higher value e.g. 500 (default is 50)
*** The mentioned property was used in a wrong way
    ($GLOBALS['BE']['pageTree']['preloadLimit'], "TYPO3_CONF_VARS" was
    missing), resulting in having a default value of "0" - this will be
    fixed with TYPO3 4.5.3 [5]
*** Steffen came up with the idea to automatically calculate this value
    which will depend on the number of pages of a site and can be
    influenced only by defining a factor to multiply the value
*** Using a higher value than zero (e.g. 50 or 100) here already
    reduced the number of AJAX requests a lot.
*** The state of a node in the pagetree is now always stored once the
    node was expanded or collapsed and contains additional information
    on the rootline of the node. In TYPO3 4.4 only the expanded nodes
    with the accordant uid were stored. Since the information is
    persisted in the BE_USER->uc, it might exceed the available space
    of that field in the database.
* BE_USER->uc storage
** Since nearly all modules store temporary states to the backend user,
   it's worth to think about a different solution here.
** t3lib_registry/sys_registry provides a way to persist information in
   the database that is accessible by a unique namespace.
** However, this information is related to a particular backend user
   and there is no way to introduce the uid of the backend user with
   t3lib_registry (it can be part of the namespace of course, however
   on flushing this by uid, all elements must be iterated).
* Bootstrap / init.php
** init.php contains a lot of stuff and checks that are not required on
   each request - e.g. checking whether the install tool shall be
   loaded seems to be superfluous in 99% of all requests.
** Some results are already ready since there was a workshop to rewrite
   and clean-up during the T3DD10 in Elmshorn.
** Maybe it's also worth to provide a way to only initialize a basic
   environment and load other parts on demand (similar to the eID
   approach in the frontend).
* ExtJS usage in the backend
** ExtJS is already loaded in backend.php and available there
** However, modules that are based on ExtJS still load their set of
   ExtJS in the content area and thus double include ExtJS.
** Steffen evaluated whether it's possible to reference and use the
   ExtJS from top (backend.php), but this seems to be problematic if
   requests are triggered since the URI being used is different.
   Besides that it will be difficult to extend the TYPO3 JavaScript
   that holds information on settings and used language labels.
* Concatenation of JavaScript files
** Currently only CSS files are merged to one file (if defined on
   loading the file).
** To lower the number of requests to load JavaScript files this shall
   also be done in this case.
** It might lead to difficulties if relative URIs are used (since the
   concatenated file will be loaded from /typo3temp/).
** Steffen already created an accordant patch some months ago [6]
* Optimize database queries
** There are a lot of superfluous database queries used in the backend
   (e.g. for checking the rootline and access to a page) that can be
   reduced and optimized.
** In general queries shall be examined by using the EXPLAIN statement
   to determine whether additional indexes can be used for a query.
* Disable loading mask in the backend
** One thing seems to be annoying to some users is the loading mask
   (spinning wheel) shown on every click in the backend.
** We agreed on having a possibility to disable this in the backend
   user settings for advanced users that know where they can click when
   a module is still loading [7]
* Disable tooltips being shown in the backend
** Since tooltips also might be annoying sometime and besides that are
   fetching the information by using an AJAX request, we agreed to have
   a possibility to disable them as well [8]
* Common testing environment
** Since we need a way to ensure whether performance gets better or
   worse, we need a common reference server.
** This server then holds some automatic test cases that allows to put
   a change to accordant numbers (e.g. "loading improved from 3500ms to
   500ms")
** Olly will take care of asking Ernesto concerning a reference server
   (since he also provided a system for the skinning team) and ask some
   selenium experts concerning Selenium tests and how to implement
   automatic measurements here.

Xavier mentioned that prepared queries are only simulated at the moment
and make most sense in TYPO3 if DBAL is enabled, thus for non-MySQL
databases. However, as MySQL supports real prepared queries, this would
really be worth the effort to use it natively for MySQL if we manage to
have them used more widely within TYPO3.

[5] http://forge.typo3.org/issues/25431
[6] http://forge.typo3.org/issues/23616
[7] http://forge.typo3.org/issues/25435
[8] http://forge.typo3.org/issues/25430

Improve GMENU
-------------

GMENU in the frontend creates a lot of files for accordant states. Since
this is bad concerning performance as well and also has a negative
impact on loading a website, it's considerable to integrate a solution
that will use sprites here, like ggspritedgmenu [9]. There are still
some problems with transparency, however the solution already seems to
be almost ready.

[9] http://typo3.org/extensions/repository/view/ggspritedgmenu/current/

Backend Sprite API
------------------

Steffen asked whether it's possible to use bigger icons (more than 16x16
pixels) with the sprites being used in the backend. Benni mentioned that
it's possible to override this by using custom CSS.
However, it turned out that proper documentation and examples are
missing in this area. The idea is to have e.g. a skinning_tutorial
extension that shows how the new features can be used. Xavier wants to
ask two of the Steffens (Ritter and Gebert) since they have been very
active in this topic.

Backend API
-----------

Steffen raised the topic of a general backend API that can be used to
determine e.g. the current page a user selected and the current module
being used. Currently it seems that this is too tricky and needs some
improvement. However, we did not come up with a proper solution but
wanted to share this with the community and hopefully get a discussion
out of that.

TYPO3.org Relaunch Week
-----------------------

The TYPO3.org Relaunch Week will he held from April 16th to 23rd 2011 in
Essen/Germany. The goal is to finish the tasks that were already defined
and have a new shiny TYPO3.org website after that week. After that week
the discussions, issue trackers and mailing lists shall be shared with
the public - this is also the time when custom issues can be handed in.

Git/Gerrit
----------

It seems that some people are still not used to the new Git/Gerrit
infrastructure - in general the amount of new patches and reviews could
be a bit more. It's not quite sure whether people are having technical
difficulties or just did not try out the new tools. Anyways, if it's
required we can arrange some support sessions on IRC to help community
members to get started with Git and Gerrit.
Steffen came up with the idea to have a Git sandbox which can just be
used to try out the behavior of Git without the possibility to break
something or start superfluous discussions. Since the Core mailing list
is not used anymore to discuss patches, it might be worth to send a mail
to the list if a new patch is ready to be reviewed. Xavier came up with
the idea of automatizing this within Gerrit as we are already able to
subscribe and be informed of such activity.

ExtJS 4
-------

Since Steffen is currently very active to elaborate the new features of
the next ExtJS version 4 [10], he shared a video with us that
demonstrates the new possibilities. We were discussing how to
automatically test and do quality assurance for ExtJS applications and
user interfaces in general - using Selenium is one aspect here, however
this video shows how the ExtJS developers from Sencha are doing it.

[10] http://vimeo.com/17666102


Dates
=====

* TYPO3 4.6 alpha1 on May 10th 2011
* Feature Freeze and TYPO3 4.6 beta1 on August 2nd 2011
  no new features and no exceptions after the feature freeze date
* Final Release of TYPO3 4.6.0 on October 25th 2011


Next steps
==========

If you feel interested in a particular project or task, please reply on
the list or directly get in contact with Xavier Perseguers as Release
Manager of TYPO3 4.6.

----------------------------------------------------------------------

Cheers,
Olly
-- 
Oliver Hader
TYPO3 v4 Core Team Leader

TYPO3 .... inspiring people to share!
Get involved: http://typo3.org


More information about the TYPO3-project-v4 mailing list