[hydra-dev] White paper about interface versioning

Ken Hunt ken.hunt at digium.com
Tue Apr 27 11:39:40 CDT 2010


----- Original Message -----
> From: "Leif Madsen" <lmadsen at digium.com>
> To: hydra-dev at lists.digium.com
> Sent: Tuesday, April 27, 2010 10:26:33 AM
> Subject: Re: [hydra-dev] White paper about interface versioning

> ----- Original Message -----
> > ----- Original Message -----
> > > It was stated that support would be maintained for as long as the
> > > burden to support such a module did not exceed a threshold. Would
> > > it be wise to specify what such a threshold might be, and how long
> > > ahead of EOL a notice of deprecation would be announced?
> > >
> > > For example, we not give dates as to when Asterisk versions will
> > > no longer be maintained. Perhaps we should do something similar
> > > where we give a minimum date, with the ability to extend support
> > > for that
> > > module indefinitely, but always giving a date as to when support
> > > *may* be terminated?
> >
> > If this was done it would have to be at a per-interface level, since
> > that is where versioning occurs. It would also potentially force us
> > to maintain an interface version past the point where the burden
> > becomes immense/insane/nuts.
> >
> > I can certainly see how it would be attractive to third party
> > developers using
> > the interfaces though. With a fixed schedule they could plan
> > accordingly to update
> > their components.
> >
> > My gut feeling says that versioning is going to be a big job no
> > matter what and
> > trying to make it adhere to some form of schedule like above might
> > be pushing it,
> > but I must personally give it more thought.
> 
> I can certainly see that, and I guess I'm not specifically saying we
> should have an end-date for every version. Perhaps it can be general
> like, "will support at least 1 year from inception, but after that
> will no longer be supported after 30 days notice".
> 
> Or maybe we just say at any point in time it can be deprecated and no
> longer supported with 60 days notice. I know this isn't a "release" so
> it doesn't make sense to create an announcement everytime something is
> deprecated. Perhaps it's just a wiki with the inception date of the
> function and updating that page 60 days ahead of when you want to no
> longer support a version any longer.
> 

Just FYI, Ice supports a deprecated tag in slice which is cross-platform aware (since Linux and Windows handle deprecated tags differently in C++), as well as cross language (for Java and C#). So anyone compiling code that uses a deprecated operation can be made aware of it. 

interface Example {
    ["deprecated:someOperation() has been deprecated, \
    use alternativeOperation() instead."]
    void someOperation();

    void alternativeOperation();
};

http://www.zeroc.com/doc/Ice-3.4.0/manual/Slice.5.19.html

<snip...>




More information about the asterisk-scf-dev mailing list