Committers,
I am going through all the JIRA issues and there are quite a few dialect-specific things there. For example, there is a contributed SQL Anywhere dialect (NH-1106). While a new dialect is very useful, I think it should go into the NHibernate Contrib (NHC) project. Now, if that should go into NHC, the natural next question is "what determines which dialects stay in the core and which go to NHC?"
One of the challenges in having all these dialects is that the NH core developers do not have all those databases for testing. As a result, not all tests pass under every dialect. When there is an issue specific to a dialect, there is no easy way for us to test and fix the issue. I think it is inevitable that some dialects have to be moved to NHC, it is just a matter of which ones. The only dialects that are under constant vigorous testing are SQL2000 and SQL2005. As such, I propose naming these two dialects as "officially maintained", and the rest can go to NHC.
For the users of the other dialects, I think this is the perfect opportunity for them get to involved. Most dialects are minor variants from the base Dialect class. The largest of them all is the Mssql2000Dialect, and it is only 500 lines of code (including comments). Those who are motivated can be added to the NHC project and become the lead/maintainer of their chosen dialect. I think it will be beneficial to them because if there is an issue with their dialect, they can get it fixed faster and better because:
- they are more motivated to fix the issue than, say, I am because I don't use that database
- they have access the database to test against, I don't
- they won't be waiting on us to apply their patches; frankly, sometimes that can take a while
- it will be easier for someone with a new dialect to make it available for others to use
Thoughts?