felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall" <he...@ungoverned.org>
Subject Re: [VOTE] Policy change for use of unreleased (spec) apis
Date Thu, 22 May 2014 12:53:38 GMT

-> richard

On 5/20/14, 13:01 , David Jencks wrote:
> Following some dev list discussion, proposal is to change  http://felix.apache.org/documentation/development/provisional-osgi-api-policy.html
to this (markdown source):
> --------------------------------------------------------------------------------------
> The OSGi Alliance exposes provisional API that may or may not become part of future OSGI
specifications.  This policy explains how and when Felix subprojects may relate to such API.
Provisional OSGi API refers to anything in the `org.osgi.*` package namespace that is not
part of a final released specification.
> ## Policy
> 1. No Felix release may contain or refer to provisional OSGI API.
> 1. Provisional API may be included and used in unreleased source code, however the API
must be part of a final released OSGI specification before this Felix source may be released.
> 1. Although it is STRONGLY NOT RECOMMENDED, modified versions of provisional api may
be released with these modifications:
> 1. Any provisional OSGi API must be recreated in the `org.apache.felix.*` package name
space; this effectively makes it provisional Felix API.
> 1. All Felix provisional API must be marked as deprecated.
> 1. All Felix provisional API exported from bundles should be exported with a mandatory
attribute of `status="provisional"`.
> ## Discussion
> The first goal of this policy is to completely avoid using provisional OSGi API in released
Felix projects given the potential confusion and questions by doing so. The second goal is
to make the existence of any released Felix provisional API completely obvious to downstream
users and make it difficult for them to use it unknowingly. However, any such release is likely
to involve numerous problems such as incorrect semantic versioning or version mismatch between
the provisional and eventual OSGI release and bundle version inflation if the Felix provisional
api is removed after the OSGI API is released.
> As an example, to provisionally export the `org.apache.felix.service.metatype` package,
> `Export-Package` statement would look something like this:
>     :::xml
>     <Export-Package>
>       org.apache.felix.service.metatype; version="0.1"; mandatory="status"; status="provisional"
>     </Export-Package>
> When working with new OSGI specifications, constructing a Felix provisional API will
likely result in parallel package structures between the provisional OSGi and Felix APIs.
When working with existing specifications, it may be necessary to create extensions to existing
OSGi interfaces in the Felix package namespace.
> --------------------------------------------------------------------------------------
> +1 [ ] Adopt this replacement text
> -1 [ ] Keep the existing text
> 0 [ ] Don't care
> Vote open for 72 hours or until I can get enough people to vote :-)
> thanks
> david jencks

View raw message