Regression tests, now more than everUsually when I am changing mondrian, if I see a piece of logic in the code, I will try to preserve that logic, and will rework it if necessary when internal APIs change. That goes for other committers too. But I don't propose to do that for mondrian-4.0: the changes to the code are quite widespread, and besides, it's chance to clean out some of the cruft that has built up over the years.
Yes, it's true. Even in mondrian's impeccably clean code — almost 300,000 lines of it — there are some pieces of code that we're not sure are actually used. My natural inclination as a developer is to remove that code, and see whether anything breaks. If that piece of code is a something you contributed but didn't write a test for, then nothing will break, and your code will be on the cutting room floor of history.
So, if you have contributed a feature or bug fix to mondrian over the past years or months, make sure that there is a test case checked in as part of mondrian's regression test suite. I will do my best to make sure that the test case stays working, even if the code underneath is all different. If there isn't a test, your beloved feature may just disappear in mondrian-4.0.
Schema changes, and compatibilityIn mondrian-4.0 there will be changes to how schemas are structured. A few examples:
- Virtual cubes will be obsolete, or more precisely, any cube can have multiple groups of measures, each group based on a separate fact table.
- Linkages between snowflake tables, currently specified using the
element, will be specified using new <PhysicalSchema> element that declares table usages, relationships, and derived columns for the whole schema.
- The present XML grammar isn't very forgiving if you get things in the wrong order: if you define a <NamedSet> before your <CalculatedMember>s in a cube, mondrian currently ignores all calculated members. The new XML grammar will be more forgiving.
In a few weeks I will be ready to release the specification for the new-style schemas. I would appreciate review of the new schemas. Since it is a major change, mondrian-4.0 will have a long beta phase. During which time I could use your help testing both new features and backwards compatibility.