[Libreoffice-commits] core.git: offapi/com offapi/type_reference

Eike Rathke erack at redhat.com
Tue Nov 22 20:43:11 UTC 2016


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20161122/8c71af49/attachment.sig>


More information about the LibreOffice mailing list