Hi Kay,

Kay Ramme - Sun Germany - Hamburg wrote:
FYI

Matthias Huetsch, Malte Timmermann, Michael Brauer and I recently had a discussions regarding how to deal with binfilter in case of incompatible changes of modules used by binfilter.

I am still wondering why nobody invited me to this discussion as i surely would have been able to add some background and initial thoughts to the whole theme. Anyways, i am pretty happy with the direction it is taking.

We came up with the following recipe: For every request of an additional module for / change of binfilter the following steps are to be tried in the following order:

1. Check if the dependency could not be removed / avoided completely. - For the above change this means, to verify that basctl is indeed needed for loading / storing documents. 2. Copy the code which is needed only. - For the above change this means, that the serializers (import / export) may just be copied out of basctl to binfilter (respectively they may be just reimplemented if this is easier :-) . 3. Copy the whole module. - If the target module is reasonable small, the whole module may be copied to binfilter. For the above change this would mean to copy basctl to binfilter. 4. Adapt binfilter to the incompatible changes done in the dependent module. - For the above change this would mean, to adapt binfilter to the changes done in basctl. 5. Do not change the dependent module incompatible. - For the above change this would mean, not to change basctl incompatible.

That's the right way to go.
Please take in mind what kind of code is/will be moved to binfilter:

- code that is no longer used in the 'living' office modules, but needed by the old binary filter mechanisms - code that is completely rearranged and cannot be adapted to also keep up the needed (C++) APIs and functionalities for binfilter

Both cases happen, BECAUSE binfilter allows us to do things like that at all and to enhance the 'living' office modules, not to expand binfilter. The expansion of binfilter is the price to pay to keep the old binary filters running, and that price was intended and is accepted ATM.

Do not forget that it is even DANGEROUS to change functionality/code without noticing that binfilter is still using it. Binfilter may well need controlled fixes from time to time in shared code regions which may also enhance the living modules, but the other way around You risk to break binfilter functionality which cannot/is rarely tested anymore.

That's (one of the reasons, there were many others) why my initial plan always was to freeze binfilter on a defined state.

Defined state means: Let it rest on a published version, this is never deleted and stays buildable (if fixes are needed).

Freeze means: Add all still missing and urgently necessary C++ dependencies methodically: Link without the standard modules and add missing code. Yes, this might take a while and is not easy but might have been done by one person methodically, not costing man-years of bandwidth, service, maintaining, bulding, adapting, developer time, ...

With the suggested steps we move to that target, so i am happy about them.

Comparing the costs spent up to now by all and that will be spent until the goal is reached, i again have to suggest (as years ago) to do it once, by one person and for the next public release. The resulting binfilter module will be an UNO-API only module, independent of 'living' C++ code and can then rest on that version.



I created a module page for the binfilter module in the OOo wiki and copied the receipt to this page as well:

 http://wiki.services.openoffice.org/wiki/Framework/Modules/binfilter


Hope that helps

  Kay

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to