[ 
https://issues.apache.org/jira/browse/NIFI-1373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15393903#comment-15393903
 ] 

Joseph Witt commented on NIFI-1373:
-----------------------------------

This is a bit stalled for the moment.  We'll need to hold off until the Yetus 
artifacts are published to a maven repo.  Sent request to dev list of yetus. 

https://lists.apache.org/thread.html/b5ef8359f4aa0e6c8eba70b6cac46098b82dcc814cee21df4eaf60c3@%3Cdev.yetus.apache.org%3E

Also, as Mark flagged something we'll need to be careful of is separating the 
notion of API visibility and stability from the perspective of a caller of that 
class/interface vs the perspective of someone who might implement that 
interface.  The current annotations do not have this distinction so we'd need 
to articulate this via docs.  Wee should probably be making the decision to 
mark something as API public and stable ONLY if we believe it to be true for 
both the interface as a caller and as one that might want to implement it.

Furthermore, we should document that unless otherwise noted all interfaces are 
private and unstable so we can avoid having to do put this on the entire 
codebase at once.

My thinking is that I'll make this artifact available at the root of the 
project to all the things marked as provided then just make sure via the 
assembly it is at the root of classpath.

> Annotate all classes to indicate their API stability and intended audience
> --------------------------------------------------------------------------
>
>                 Key: NIFI-1373
>                 URL: https://issues.apache.org/jira/browse/NIFI-1373
>             Project: Apache NiFi
>          Issue Type: Task
>          Components: Core Framework, Core UI, Extensions
>            Reporter: Joseph Witt
>            Assignee: Joseph Witt
>             Fix For: 1.0.0
>
>
> Sean Busbey and Tony Kurc have pointed out the need to document the intended 
> audience and stability of the APIs.  This is very necessary as we need to be 
> able to make changes and be fluid where intended and extremely strict to 
> compatibility where intended.  Presently with things being unmarked it can be 
> ambiguous for those not deeply familiar with the api and codebase.
> By leveraging the annotations from Apache Yetus we can resolve this 
> discrepancy across the codebase:  
> http://yetus.apache.org/documentation/0.1.0/audience-annotations-apidocs/
> To Do:
> 1) Go through entire codebase and tag classes appropriate with Yetus 
> annotations.
> 2) Update our versioning guidance to reflect that our major/minor/incremental 
> model only applies to those classes which are tagged as stable/etc..  We 
> should be able to safely maneuver and update internal APIs without any risks 
> to compatibility.  Through discussions things should become more stable and 
> if we find folks wanting to extend/alter things which we didn't have listed 
> as stable then those are great things to start discussion on.  Right now 
> we're too hamstrung by thinking we have to hold onto everything.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to