On Fri, Jul 2, 2010 at 8:16 PM, Julian Edwards <[email protected]> wrote: > On Friday 02 July 2010 11:44:50 Robert Collins wrote: >> @Julian If we only rollout one branch, and we develop on the same >> branch,and we have a DB change, where does it go, how does it get >> controlled, how do we make it work? Not necessarily a hard problem, >> but not solved just by having one branch. > > Sure, I didn't say it would be straightforward, I was just pointing out why we > need to worry about maintaining 2 branches.
We would have two branches - devel and stable (we could do it with one, but it is nice having a trunk guaranteed to have the tests passing). A branch with DB changes would land on trunk along with the code that makes things work with the current production schema and the devel schema. The test suite would be run twice, once against the production db schema and once against the devel schema. On success, devel is merged to stable. There would need to be some sort of mechanism of recording what code needs to be removed after a given DB patch is rolled out. These reminders would need to be followed up on in a timely fashion or we drown in a tangle of legacy code. Rollouts are done from stable. For any given rollout, it is optional if DB patches are applied or not. If DB patches are applied, the updated production schema needs to be backported to the tree. I don't like this because it doesn't gain us anything. It would allow us to rollout to some systems but not others, but I don't think we have enough servers that this is necessary - we don't have hundreds or thousands of servers, and if pushing code to systems and restarting them is a hassle there are much simpler ways of making this less of a hassle. It also increases the complexity of our code, and limits our ability to make some changes (there will be cases where it will just be impractical to have code work with both old schema and new schema, so the desirable change gets compromised down to the practical change). I don't see anything stopping us from tossing our monthly cycle and deploying stable or db-stable to lpnet more often - I think that is just QA and LOSA time issues. -- Stuart Bishop <[email protected]> http://www.stuartbishop.net/ _______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp

