It seems like we've all cooled off a bit about this. :-) I've thought a bunch about this over the past several days; here's my $0.02 (in no particular order):
- The request for OpenMP support came from two Open MPI community members who are deeply involved in OpenMP (including the OpenMP standards body itself): IBM and LLNL. To be clear: this wasn't an arbitrary request. I believe the feature was implemented in good faith with what seemed to be a reasonable representation of the OpenMP (and Open MPI) community. - From looking at this objectively, I think the process did work like it was supposed to: there was some initial development and testing, it went to a pull request, it passed all the Jenkins tests, and then it was pushed to master. That night, it failed in MTT, which caused further discussion. - Recently, we have started adding Jenkins into the mix for pre-master-commit validation, and it's helped a lot. But it also hasn't been perfect -- as a community, we are still working to make Jenkins more useful (e.g., dealing with instability in Jenkins / the Github Pull Request Builder plugin, random local failures, ...etc). We need more work in this area. - My $0.02: Jenkins testing -- when it works -- has shown to be great for limited smoke testing. MTT, however, is still also required: the Open MPI code base is so large that the amount of time required for full validation (for a single platform) can be upwards of 24 hours. This is simply too much for individual pull request testing -- we don't (and won't) have the resources to invoke that level of testing on each pull request. Put simply: bugs show up in MTT that (intentionally) do not show up in smoke testing. - Another $0.02: a unique strength of the Open MPI community is our speed of development and reaction to user requests. When someone asks for a feature, sometimes we are able to implement it very, very quickly. That is -- quite frankly -- fantastic, and one of the reasons that users like Open MPI so much. On the other hand, sometimes quick development like this leads to instability; there is definite value in the enterprise development model: extended testing and verification before committing, etc. This end of the spectrum can lead to fewer bugs. - There must be a compromise between the two ends of this spectrum; both ends seem undesirable. I think the combination of pull requests + Jenkins (once it becomes stable) and MTT is nicely in the middle, and represents a good compromise. My final $0.01: master breaks. It happens. I wish it didn't, but I also a) strongly value the fact that we can bring in random features quickly, and b) am unwilling to require every developer to test every possible platform before pushing to master. More testing and review will help reduce breakage; it seems like a good step in this direction will be to a) help make the pull request CI testing be more stable, and b) publish recipes for more organizations to hook into both our pull request smoke testing and MTT. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/