Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


Hi Zolnai,

On Monday, 2016-11-21 22:30:42 +0100, Zolnai Tamás wrote:

I wrote down my opinion. Sorry if I went to far with that word
"ridiculous". Ignore that paragraph and you have what I should say on
an ESC call. I would not bother with this API stability/instability
anymore in general. I'm interested in only this specific case.
Discuss it on ESC if needed and send me your decision. I can't do
anything more with that.

Then let me explain why I consider changing this enum a non-acceptable
incompatible change.

For Java, receiving an unknown UNO API enum value results in a null
value. That can happen if an external Java process not knowing about the
new enum value using older LO jar files connects against a LibreOffice
process.

The css::sheet::GeneralFunction is marked 'published', which means we
strive to keep it stable and external applications can rely on it.
Specifically the pivot table context API is something which I think is
used mainly in larger organizations to extract data groups in preset
environments. As we don't know who is using a published API for which
purposes and what the implications might be if we break it, we should
not.

With commit
https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=50244309501d738e7314fa79785db139c826f8d7
I reverted the incompatible change before we branch off to 5-3, keeping
all places that use GeneralFunction_MEDIAN in #if 0 so they can be
easily grep'ed for and adapted and where the new value was returned
I used GeneralFunction_NONE instead.

What now needs to be done is
* come up with a new css::sheet constant type (not enum) that can be extended
* an additional optional property for services where GeneralFunction is used
  * sheet::DataPilotField
  * sheet::DataPilotSourceLevel
  * sheet::DataPilotSourceDimension
* an internal mapping between the enum and the constant
* use the new constants in datapilot code
* return both properties to be read from services
* when evaluating properties written to services, if the new constant is
  present let it override the old enum
  * document that fact in the service's .idl files

Hope this helps.

  Eike

-- 
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
GPG key "ID" 0x65632D3A - 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Better use 64-bit 0x6A6CD5B765632D3A here is why: https://evil32.com/
Care about Free Software, support the FSFE https://fsfe.org/support/?erack

Attachment: signature.asc
Description: PGP signature


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.