On Jun 14, 2008, at 1:24 PM, Rajdeep Dua wrote:

1. Check in by developer in one language doesn't break something for the other language., this is especially important as there are some common files
  shared between PHP and Java version

2. Make sure that the unit tests are run for both the versions are run
  before a check-in is made

First of all when ever a patch is to be applied that is known to affect one or the other language, there is coordination between the developers to make sure it doesn't break things. In my recollection this has only occurred twice though, and in general since the nature of the 2 versions is so closely related (and we're both implementing the same spec) this doesn't and won't happen a lot.

That doesn't exclude the accidental mishaps though where there was a hidden bug in one of the 2 languages, take the broken container.js configuration parser on the php side as an example .. it's a bit kludgy since the json parser in php is much more sensitive then the java one, so when a http://uri resource comes along for the first time, poof it crashes because it thought it was a comment that was meant to be stripped. In such situations, there's enough people using the svn repo directly that this will get noticed and fixed a very short time after it occurring.

Keep in mind that there is a fine balance between development efficiency & easily allowing people to make contributions, and rules about how to proceed with contributions. I think that requiring all java developers to have and maintain a full PHP deployment on their development systems would prevent a good few of our top java coders from being able to work on shindig, and visa versa for the php guys. It would require something unrelated to their skill set to be able to contribute, and that's something i think non of us wants.

In a sense it's the nature of working out of an open source svn repo.. if it breaks you get to keep both pieces :-)

The version in SVN is usually production ready unless otherwise announced. Keep in mind that both versions touch a -lot- of end users, > 200 mil for the java versions and soon > 100 mil for the php version ... so believe me when i say we all want to keep things running smoothly and if mistakes do happen they are addressed quite quickly.

  3. Have stable source code tree tagged and documented for reducing
  developers efforts in trying to build and run an unstable version.

Our current intention is to have an release when we completed 0.8 specification support and we feel it's ready to be blessed as a real 'release'. Thats what we are collectively currently working towards.

However things aren't often 'unstable' though as mentioned above, so even working from svn is quite doable at the moment. Most containers take a snapshot of svn when they feel it satisfies their needs and work from that . (tools like Piston: http://piston.rubyforge.org/ can help with that btw)

        -- Chris

Reply via email to