Saturday, February 20, 2010

DataObjects.Net 4.2 RC’s health status

It is considered as a good and beneficial idea for a development team and the whole product’s development process to become more open for its community. DataObjects.Net 4 team shares these views and tries to move step by step towards the goal of openness and transparency.

We moved the project repository to Google Code, which means that everybody has access to the source code, revision history and changeset tracking. We started to use publicly available issue tracker. Anybody can report an issue, request a feature and vote for it. We use it by ourselves to track development tasks and therefore the current status of the development process can be seen on project’s update page. Finally, support forum is open 24 hours a day, so everybody is always welcome.

A part of our English-speaking developers began their personal blogs in order to share their thoughts, ideas, new concepts, samples and examples with the community. The most outstanding blogs are:

  • the well-known Alex Yakunin’s blog. A must have source of information if you are interested in .Net in general and in DataObjects.Net in particular.
  • Alex Kofman’s blog. Not so frequently updated but anyway, it is worth reading. Alex prefers to discuss general ORM-related concepts, often in DataObjects.Net 4 context.
  • Alex Ilyin’s blog. Although he doesn’t work on DataObjects.Net 4 directly but he makes a contribution to the project on everyday basis participating in hot discussions and reporting tons of suggestions and remarks. It is he, who tests the very green alphas of DataObjects in his sophisticated (and sometimes even a bit weird) scenarios.
  • This blog. As you are already here, I suppose that you know what the blog is about ;)

But sometimes I’m asking myself – is it enough to  feel and understand whether the project is healthy, robust, well-doing, or not? How to figure out the core understanding of the product’s quality through the deluge of these numerous activities?
Finally, I’ve got the idea. It’s all about numbers, not words. Unit tests results can be used to assess the health status of the product. For now DataObjects.Net 4 has almost 1000 unit tests for the Core part and almost 1500 tests for storage providers (In-memory database, Oracle, PostgreSQL, MS SQL Server) and such number of tests is enough for a simple statistical analysis.

Here is the indication of DataObjects.Net 4 RC’s health status for today (20-02-2010):

The green/red bar shows the percentage of successful/failed tests for the Core and every storage provider. Note that PostgreSql 8.2, 8.3, 8.4, MS SQL Server 2005 providers show no failed tests at all. The worse result is for Oracle, its 90% only. Support for Oracle 11g is still in beta stage but we are going to improve it. The next unlucky one is the provider for MS SQL Server CE 3.5, it is also waiting for a bunch of fixes as well as its big brother  - MS SQL Server 2008.

So, I’m going to invent this health status meter publishing on a regular basis. Hope you’ll find it useful. In this case it could move to the official website of the project.

BTW, in case you have any suggestions on the topic – don’t hesitate to post a comment or two. You know, you are always welcome!

1 comment:

  1. Few remarks:

    7 out of 8 failing tests on SQL Server 2008 are failing with the same strange exception: "SQL Server encountered error 0x80070422 while communicating with full-text filter daemon host (FDHost) process. Make sure that the FDHost process is running. To re-start the FDHost process, run the sp_fulltext_service 'restart_all_fdhosts' command or restart the SQL Server instance."

    So most likely, there is something wrong with configuration.

    Most of tests on in-memory database tests fail because of differences in null handling & byte[] comparison (== works properly for them on SQL Server, but does not work the same in CLR, etc.)