[TYPO3-core] RFC 17978 -.... 30% performance drop without discussion

Christian Kuhn lolli at schwarzbu.ch
Wed Feb 6 23:29:57 CET 2013


Hey.

On 02/06/2013 08:31 PM, Tolleiv Nietsch wrote:
> Thanks for your answer - this doesn't answer my question. Why does this
> have to be merged without proper measurements done by multiple people
> and why don't we use a  dedicated branch for these changes until we gain
> back the "original" performance? What's so urgent here?


There are lots of reasons not to develop things in a sandbox:

* We've made the experience that (especially big) sandbox or github 
forks do not tend to get ready at all.

* Big work-in-progress things are hard to maintain and need to be 
rebased very often. This patch had to be rebased two times even during 
the short time frame it was pending.

* Rebasing can introduce bugs and adds complexity, for example because 
related code was changed meanwhile.

* Merging big things to master again is a lot of work: If done right, it 
must be split into several single patches and every single patch needs 
patch sets until everyone is happy, which means even more rebasing for 
patches that depend on each other. If done wrong, it will be only one 
big patch, or a series of big patches which makes them just 
un-reviewable. We've had this situation with FAL, and there are still 
really heavy bugs like https://review.typo3.org/#/c/17588/ Chances are 
lower that those things happen if taking smaller steps. Chances are 
higher that issues pop up and fixed more early if things are already in 
master.

* I tend to introduce more bugs and forget about details if I do not get 
every single patch review ready, just because I'm already working on the 
next part of, with a mindset "Well, its just my sandbox, I can clean up 
details later on".

* It is more effective to work in single steps and merging them to 
master in steps than working on own stuff in a sandbox for a long time: 
Changes are higher that other people step in for help. Very good example 
for that was the namespace merge: After the initial big merge (which had 
to be done in master directly, too, we even had a merge freeze dedicated 
for this), we've had more than 100 patches (I did not look up exact 
numbers, but it was huge) quickly going through to fix things. They came 
from a large group of contributors.

* It is much more motivating to have small feelings of success more 
often because single things are done.

* It is very well possible that the "do not always load all ext_tables" 
approach in FE might be re-implemented later on because for example our 
ideas did not work out, or are not finished. But, the solution will be 
different and better. I'd for example never ever under no circumstances 
re-implement the TCcachedExtras thing or the includeTca method again 
this way. So, we *might* end up with a similar solution again, but it 
will still profit from the improved code and other changes that happened 
afterwards. And there will be a larger group of people who understand 
the details for further improvements because they did the reviews and 
followed the other patches in this area.

* Release early and often.


As only drawback, working directly in master so much with lots of 
on-top-of-patch-patches needs quick merges, otherwise you are quickly 
stuck, or you are in rebase hell all the time. I'm extremely happy there 
is a group of active reviewers and contributors around, getting things 
done and helping each other.
BIG thanks to our active people, it is great to works with you!


Regards
Christian


More information about the TYPO3-team-core mailing list