Let me explain what we do now because it has some similarities with what described in the video below.
There is a single web2py. I do not branch a release and fix bugs in the brunched release. A release in web2py is just a snapshot in time of the official web2py branch. This means we do not need to have a testing team and a development team. We do not have problems with people working on different branches. I always run the latest (trunk) version and I hope other developers are doing the same. Because web2py has to keep API backward compatibility we do not the concept of "locking" the API because they are always locked. When I receive patches they belong to one of the following categories: 1) a bug fix. Usually they are in response of a clear problem and problem and self contained. 2) a new feature. In this case I look at the code and make sure it is backward compatibility. I may or may not test the new feature. I usually ask users to do so. The person who proposed the new feature usually tests and maintains the new feature. 3) a rewrite. This happened rarely but has been the cause of some problem. Once in a while we feel that some piece of code (complex, designed and optimized over years) needs to be rewritten (this may be necessary because users feel the code could be more readable, faster or simply in order to a new "major" feature). We never had problems with 1 and 2. The problems we have had were always due to 3, code rewrite. Whether it was a single function or an entire module. The problem with code rewrite is that there is some collective knowledge about the code to be rewritten and no individual has the same knowledge about all the details. For example a certain line of code may be written in certain way to make sure that it works on python 2.4 or to provide a certain obscure feature that is not documented (not even designed) but users have unknowingly started to rely on it. When code is rewritten people make sure that the new code behaves exactly like the old code in regard to documented features but that is not enough. New code should behave exactly as old code even (before new features are added) in all cases. That is very hard to test. How do I handle this? If there is a minor code rewrite I test it myself and assign somebody to look at it. If the code rewrite is major, I keep it in a separate file (dal.py intead of sql.py and template2.py instead of template.py) and ask people to run web2py with the new module instead of the old module. We do not branch web2py because small (and safe) features and bug fixes are being added to web2py that do not interfere with the rewrite. What can we do? 1) we should have more unittests; 2) we should lock a release for one week before releasing and allow people testing it; 3) we should keep track of how many people are using the release candidate. Some people think that unittests fix all problems. That is not true. Consider the case of the rewrite of the template module. The new module worked almost identical to the original one (except for the new features) with one caveat: It changed the way application bugs were going to reported in the ticket. How do you write unittests for application bugs? It is possible but very time consuming. Even if the code has been in the nightly built for two weeks and even if emailed other developers for checking it, some of the issues did not come up because web2py developers tend not to introduce bugs in their application code and therefore they did not notice the differences in how errors were reported. Only once released to the general public the problem showed up. The problem was identified and fixed in 24 hours. Unfortunately some of the new features introduced in the rewrite had to be reverted and their release postponed pending more testing (now that we know what to test). Massimo On May 22, 1:56 pm, b00m_chef <[email protected]> wrote: > Learn from the best on how to manage a release > cycle:http://www.youtube.com/watch?v=i7pkyDUX5uM > > On May 22, 7:31 am, mdipierro <[email protected]> wrote: > > > I am very much interested in this. We may even find a couple of $100 > > to pay for some security testing of web2py. Let me know what we need > > to do. > > > Massimo > > > On May 22, 8:53 am, GoldenTiger <[email protected]> wrote: > > > > Well, I have been working for years as security auditor and etichal > > > hacking. Last years I decided focusing at more creative works and I > > > started personal projects. > > > I can do tests against web2py, no problem, but first I want to > > > understand the framework as well as possible. > > > a friend of mine who audits banks web and networks is interested in > > > python frameworks as I said him, so they could be a good help > > > In my opinion, the most important thing in secure software is the > > > design and the logic, ( microsoft declared some windows desing flaws > > > as a not possible solution) > > > since web2py was designed 100% before implemention, I can say that > > > web2py is probably one of the most consistent frameworks today > > > :D

