Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [hono-dev] Definition of Hono's public API
  • From: Julian Feinauer <j.feinauer@xxxxxxxxxxxxxxxxx>
  • Date: Wed, 15 Jan 2020 14:43:23 +0000
  • Accept-language: de-DE, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=pragmaticminds.de; dmarc=pass action=none header.from=pragmaticminds.de; dkim=pass header.d=pragmaticminds.de; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ozWTrKDFrVQwTk+I15M5PlLiJKbPxxsjbuZn8H5BvKE=; b=e8hTFv7guvadw5yFbg2xyfhMVRrMZfMr1ZDODiUP5A5MOv9fr4UQ9RvAcRU5+YelGciFLmmJJXFUTRhXkIfxPBUCUwyWC2yQx3mRUOYXp8LIjogh73fMwxGuvd55jbDulxJeJ7P4oTAZb6CBmyPtE5rVJAVTe1XIX5+D1Zdr11SDMPx3EKMz4xTXm7Wjat/Km1Bh90wj8yJKfHKgESgpkEQFSGG6E/it7u74TPpLWhsYeho3KBvvMMkHZu8QyIMDIwNfLTHPZr/WXBJj2Yu2xLAHkOk77WCTZsILnI9qcww17Dz150fkCXGkRqZ5TBQ3OxGsYfCsqe+65KBhq/kLpw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l6nGkPNBnB9INzuvP+fYeY2OG7V6wQ19jhIiOZIp7aPjxPj5nI19HWxu27u047B7w2V3LN6N16ECbhQsyw5xo8agNEnVCr9YnhV0sF7zJlU/LjIS4JhAUU9SySOC+VTsJoazlic7O6viHB5iMVLRvaHsuOK/dBeFktr+wcTlLK0V1CFWD0UNCeSvYisiYNNbCUok/oAt3h0tIMIarYit6tvLWScePRYBuaFBjKpmxs4mbq9xmwUGXVBR9e8p24Hj3Qxo0S3LabDNgNShIyPstN+ZJzXW36PLnNEAAInnHijwePdAYb7Nn7rNYH8DdgXPrk6NZY+YhuA3uf0cKLwoUQ==
  • Delivered-to: hono-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/hono-dev>
  • List-help: <mailto:hono-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/hono-dev>, <mailto:hono-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/hono-dev>, <mailto:hono-dev-request@eclipse.org?subject=unsubscribe>
  • Thread-index: AQHVyq98L7EWg4P38EC5lfRLSv8b7KfroFwAgAAi8DWAAAMQgIAAAtqAgAAWdIA=
  • Thread-topic: [hono-dev] Definition of Hono's public API
  • User-agent: Microsoft-MacOutlook/10.21.0.200113

Hi,

I would go for the first option, i.e. 
> The default would then be
> that protected members/methods are not public API unless marked as such
>  explicitly

But just a gut feeling.

Julian

Am 15.01.20, 15:23 schrieb "hono-dev-bounces@xxxxxxxxxxx im Auftrag von Hudalla Kai (INST/ECS4)" <hono-dev-bounces@xxxxxxxxxxx im Auftrag von Kai.Hudalla@xxxxxxxx>:

    On 15.01.20 15:12, Hudalla Kai (INST/ECS4) wrote:
    > On 15.01.20 15:01, Dejan Bosanac wrote:
    >> This somehow went off the list ...
    >>
    >> But that would mean that even changes in the implementation of the
    >> classes and changes to protected/private methods would trigger version
    >> increment? 
    > 
    > No, that's a misunderstanding. I was only trying to set the scope at the
    > class level. I hope we can agree that we only want to include public
    > classes in the public API. Private members and methods should not be
    > affected, of course. However, protected members and protected non-final
    > methods of public classes can be overridden by subclasses and therefore
    > have to be considered part of the public API, right?
    >
    
    However, we can also decide on a case by case basis for the protected
    members/methods and mark those protected members/methods that we
    consider part of public API accordingly, e.g. by means of JavaDoc or
    annotations as proposed by Julian already. The default would then be
    that protected members/methods are not public API unless marked as such
    explicitly. Or we could do it the other way around, i.e. by default all
    is public API unless marked as private explicitly. WDYT?
    
    
    
    > I'm not sure going into such strict requirements would
    >> bring us too much benefits.
    >>
    >> On Wed, Jan 15, 2020 at 2:14 PM Hudalla Kai (INST/ECS4)
    >> <Kai.Hudalla@xxxxxxxx <mailto:Kai.Hudalla@xxxxxxxx>> wrote:
    >>
    >>     On 15.01.20 12:56, Dejan Bosanac wrote:
    >>     > Hi Kai,
    >>     >
    >>     > this seems reasonable to me. Just one thing, when you say "all
    >>     classes",
    >>     > do you mean public methods signatures by that or something else?
    >>     >
    >>
    >>     Good point. I would say that this affects all public classes in the
    >>     "public" packages which are currently
    >>
    >>     core: all packages
    >>
    >>     client: all packages
    >>
    >>     service-base: all packages
    >>
    >>     Does that make sense?
    >>
    >>     > On Tue, Jan 14, 2020 at 8:52 AM Hudalla Kai (INST/ECS4)
    >>     > <Kai.Hudalla@xxxxxxxx <mailto:Kai.Hudalla@xxxxxxxx>
    >>     <mailto:Kai.Hudalla@xxxxxxxx <mailto:Kai.Hudalla@xxxxxxxx>>> wrote:
    >>     >
    >>     >     Hi list,
    >>     >
    >>     >     with Hono 1.0.0 having been released last year, we now need to
    >>     follow
    >>     >     semantic versioning for its public API. So far so good. During
    >>     the past
    >>     >     weeks while implementing new features, we already ran in to
    >>     situations
    >>     >     where some refactoring would have been beneficial but where we
    >>     had to
    >>     >     think twice about whether we can simply change a method's
    >>     signature or
    >>     >     remove some obsolete class(es). I think we can all agree that this
    >>     >     depends on whether the affected artifacts are to be considered
    >>     part of
    >>     >     Hono's public API or not.
    >>     >
    >>     >     However, we haven't yet defined which parts of Hono actually
    >>     constitute
    >>     >     its public API. Thus, I would like to propose a draft of what
    >>     I would
    >>     >     consider (or like to see as) part of Hono's public API:
    >>     >
    >>     >     1) All remote APIs documented under [1]
    >>     >     2) All classes in the core module
    >>     >     3) All classes in the client module
    >>     >     4) All classes in the service-base module
    >>     >
    >>     >     IMHO the rest would then automatically not be public API and
    >>     would thus
    >>     >     not be subject to semantic versioning.
    >>     >
    >>     >     WDYT?
    >>     >
    >>     >     [1] https://www.eclipse.org/hono/docs/api/
    >>     >
    >>     >     --
    >>     >     Mit freundlichen Grüßen / Best regards
    >>     >
    >>     >     Kai Hudalla
    >>     >
    >>     >     Software Developer - Bosch IoT Hub
    >>     >
    >>     >     Bosch.IO GmbH
    >>     >     Ullsteinstr. 128
    >>     >     12109 Berlin
    >>     >     GERMANY
    >>     >     www.bosch.io <http://www.bosch.io> <http://www.bosch.io>
    >>     >
    >>     >     Registered Office: Berlin, Registration Court: Amtsgericht
    >>     >     Charlottenburg; HRB 148411 B
    >>     >     Chairman of the Supervisory Board: Dr.-Ing. Thorsten Lücke;
    >>     >     Managing Directors: Dr. Stefan Ferber, Dr. Aleksandar
    >>     Mitrovic, Yvonne
    >>     >     Reckling
    >>     >     _______________________________________________
    >>     >     hono-dev mailing list
    >>     >     hono-dev@xxxxxxxxxxx <mailto:hono-dev@xxxxxxxxxxx>
    >>     <mailto:hono-dev@xxxxxxxxxxx <mailto:hono-dev@xxxxxxxxxxx>>
    >>     >     To change your delivery options, retrieve your password, or
    >>     >     unsubscribe from this list, visit
    >>     >     https://www.eclipse.org/mailman/listinfo/hono-dev
    >>     >
    >>     >
    >>     >
    >>     > --
    >>     > Regards
    >>     > --
    >>     > Dejan Bosanac
    >>     > http://sensatic.net/about
    >>     >
    >>     > _______________________________________________
    >>     > hono-dev mailing list
    >>     > hono-dev@xxxxxxxxxxx <mailto:hono-dev@xxxxxxxxxxx>
    >>     > To change your delivery options, retrieve your password, or
    >>     unsubscribe from this list, visit
    >>     > https://www.eclipse.org/mailman/listinfo/hono-dev
    >>     >
    >>
    >>     -- 
    >>     Mit freundlichen Grüßen / Best regards
    >>
    >>     Kai Hudalla
    >>
    >>     Software Developer - Bosch IoT Hub
    >>
    >>     Bosch.IO GmbH
    >>     Ullsteinstr. 128
    >>     12109 Berlin
    >>     GERMANY
    >>     www.bosch.io <http://www.bosch.io>
    >>
    >>     Registered Office: Berlin, Registration Court: Amtsgericht
    >>     Charlottenburg; HRB 148411 B
    >>     Chairman of the Supervisory Board: Dr.-Ing. Thorsten Lücke;
    >>     Managing Directors: Dr. Stefan Ferber, Dr. Aleksandar Mitrovic, Yvonne
    >>     Reckling
    >>
    >>
    >>
    >> -- 
    >> Regards
    >> --
    >> Dejan Bosanac
    >> http://sensatic.net/about
    >>
    >> _______________________________________________
    >> hono-dev mailing list
    >> hono-dev@xxxxxxxxxxx
    >> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
    >> https://www.eclipse.org/mailman/listinfo/hono-dev
    >>
    > 
    
    -- 
    Mit freundlichen Grüßen / Best regards
    
    Kai Hudalla
    
    Software Developer - Bosch IoT Hub
    
    Bosch.IO GmbH
    Ullsteinstr. 128
    12109 Berlin
    GERMANY
    www.bosch.io
    
    Registered Office: Berlin, Registration Court: Amtsgericht
    Charlottenburg; HRB 148411 B
    Chairman of the Supervisory Board: Dr.-Ing. Thorsten Lücke;
    Managing Directors: Dr. Stefan Ferber, Dr. Aleksandar Mitrovic, Yvonne
    Reckling
    _______________________________________________
    hono-dev mailing list
    hono-dev@xxxxxxxxxxx
    To change your delivery options, retrieve your password, or unsubscribe from this list, visit
    https://www.eclipse.org/mailman/listinfo/hono-dev
    


Back to the top