Although our testing infrastructure appears to heavily rely on
built-in-formats.xsd, I still think it needs be to deprecated and
eventually removed. Having real world schemas that reference
"tns:daffodilTest1" is clearly wrong. And we probably don't want TDML
files using that since those are obvious starting points as a reference
when building a new schema. So I feel this must be deprecated, and if we
are going to deprecated it, I'd rather go through the headache now and
be done with it.

To deprecate this without too much pain, it seems reasonable to me to
create our own version of IBM's GeneralPurposeFormat (which actually has
odd choices for defaults IMO) and modify our TDMLRunner to use that. I
think modifying all our tests to reference that should be pretty easily
scriptable. I'm fine putting built-in-formats back in and adding some
backwards compatibility that isn't quite so aggressive as what let to
this change. If done right, I'm a little more optimistic about this not
causing subtle bugs since it's would essentially just be a rename.

I'll spend a little time this morning investigating this change.

- Steve

On 02/14/2018 04:46 PM, Mike Beckerle wrote:
> This change is causing no end of headaches. I have wasted a day already 
> fixing things that are now broken on account of this.
> 
> 
> Turns out built-in-formats.xsd is *not* only used by our internal tests.
> 
> 
> It is part of the TDML runner's tdml:defineSchema infrastructure - included 
> into every such embedded schema implicitly.
> 
> TDML runner is callable/usable from our CLI, which means it is part of the 
> published non-test daffodil jars.
> 
> 
> built-in-formats.xsd and daffodilTest1 are also is "out there" in that they 
> appear on slides that are full of small examples that have been published on 
> the web for a while now.
> 
> 
> I think this horse has left the barn, and we're committed to supporting 
> built-in-formats.xsd as is, in the original location as part of daffodil-lib.
> 
> 
> If we want to deprecate it in the future in favor of some better named thing 
> I'm fine with that. But changing this is going to require a deprecate, and 
> slow-cut over, otherwise it requires a big comprehensive sweep hundreds of 
> lines of code change, subtle bugs come up. And the changes have to be done in 
> lots of things that aren't even part of the apache daffodil code base.
> 
> 
> Also unless DAFFODIL-900 is fixed (missing diagnostic on dfdl:ref not found), 
> changing any of this stuff is very dangerous.
> 
> 
> 

Reply via email to