JaroslavTulach: /* Purpose of API Reviews */ - 2019-12-04 06:56:36

Purpose of API Reviews

←Older revision Revision as of 06:56, 4 December 2019
Line 8: Line 8:
{{information|Are you curious to know [[APIDevelopment|when, how and why]] ask for a review? Then visit the description of [[APIDevelopment|the way we develop APIs]].}}
{{information|Are you curious to know [[APIDevelopment|when, how and why]] ask for a review? Then visit the description of [[APIDevelopment|the way we develop APIs]].}}
-
The goal of the API Reviews is to supervise the architecture of NetBeans IDE and other products based on NetBeans and provide help and suggestions by during the reviews. In some way this is a NetBeans way of doing ''review before integration''. The result of a review can be a suggestion to choose different solution, improve the [[apidesign:APIDesignPatterns|implementation methodologies]], [[APIDevelopment#Tests|development techniques]] or [[APIDevelopment#doc|documentation]].
+
The goal of the API Reviews is to supervise the architecture of NetBeans IDE and other products based on NetBeans and provide help and suggestions by during the reviews. In some way this is a NetBeans way of doing ''review before integration''. The result of a review can be a suggestion to choose different solution, improve the [[APIDesignPatterns|implementation methodologies]], [[APIDevelopment#Tests|development techniques]] or [[APIDevelopment#doc|documentation]].
-
The goal is to encourage the developers to look at their work from point of view of their customers including end users, developers building upon their libraries (that is the reason for strong emphasis on [[apidesign:Usecase|usecase]]s) we apply our knowledge gained from maintaining [[NetBeans]] for past ten years to make the archictecture more sound and more maintainable. The goal usually is not to do code reviews. Subject to review are usually aspects visible externally. However sometimes a review can suggest better algorithms or internal data structures if there are for example
+
The goal is to encourage the developers to look at their work from point of view of their customers including end users, developers building upon their libraries (that is the reason for strong emphasis on [[Usecase|usecase]]s) we apply our knowledge gained from maintaining [[NetBeans]] for past ten years to make the archictecture more sound and more maintainable. The goal usually is not to do code reviews. Subject to review are usually aspects visible externally. However sometimes a review can suggest better algorithms or internal data structures if there are for example
[[performance]] implications.
[[performance]] implications.

JaroslavTulach: New page: Copy of netbeans:APIReviews created for archiving purposes. __NOTOC__ ===Purpose of API Reviews=== The API Review is an interactive online process that provides architecture revi... - 2019-12-04 06:52:41

New page: Copy of netbeans:APIReviews created for archiving purposes. __NOTOC__ ===Purpose of API Reviews=== The API Review is an interactive online process that provides architecture revi...

New page

Copy of [[netbeans:APIReviews]] created for archiving purposes.

__NOTOC__
===Purpose of API Reviews===

The [[API]] Review is an interactive online process that provides architecture review of a feature, change in code or anything else that can influence the way [[NetBeans]] modules work and behave when assembled together to form an application.

{{information|Are you curious to know [[APIDevelopment|when, how and why]] ask for a review? Then visit the description of [[APIDevelopment|the way we develop APIs]].}}

The goal of the API Reviews is to supervise the architecture of NetBeans IDE and other products based on NetBeans and provide help and suggestions by during the reviews. In some way this is a NetBeans way of doing ''review before integration''. The result of a review can be a suggestion to choose different solution, improve the [[apidesign:APIDesignPatterns|implementation methodologies]], [[APIDevelopment#Tests|development techniques]] or [[APIDevelopment#doc|documentation]].

The goal is to encourage the developers to look at their work from point of view of their customers including end users, developers building upon their libraries (that is the reason for strong emphasis on [[apidesign:Usecase|usecase]]s) we apply our knowledge gained from maintaining [[NetBeans]] for past ten years to make the archictecture more sound and more maintainable. The goal usually is not to do code reviews. Subject to review are usually aspects visible externally. However sometimes a review can suggest better algorithms or internal data structures if there are for example
[[performance]] implications.

{{information|There are two types of reviews - Standard and Fasttrack. Each one can suit different purposes, read more in the [[APIReviewSteps|step-by-step tutorial]] to learn what
you can get and how to ask for them.}}

====How to Get Involved?====

The requests for reviews are entered as regular issues into our bug tracking system. They should be marked with keywords '''API_REVIEW''' or '''API_REVIEW_FAST''' and that is why it should be easy to query for them. Moreover each review is started by CCing or reassigning the issue to '''apireviews@netbeans.org''' which automatically sends an email to [http://netbeans.org/projects/www/lists/api-changes/archive api-changes@netbeans.org]
mailing list. That is why subscribe to [http://netbeans.org/projects/www/lists/api-changes/archive api-changes@netbeans.org] mailing list or observe '''What is currently happening?''' query that lists all issues that contain the '''API_REVIEW''' or '''API_REVIEW_FAST''' keyword
and are active, e.g. they were modified during last fourteen days.

{{information|Do you want to help with API reviews? Do you want to be notified when there is new review started? When an API changes? Then subscribe to [http://netbeans.org/community/lists/top.html#dev api-changes@netbeans.org] mailing list.}}

The mailing list receives not only before commit notifications but also daily notifications of what is happening in the codebase by using the verification framework. This includes changes in files layout, public packages, [[SignatureTest|signatures of various API classes]], module dependencies, etc. If you want to get daily notification about the general changes being made, this is the source of information
you have been looking for as the mailing list allows to observe the current state of the [[NetBeans]] codebase.

[https://netbeans.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=substring&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=substring&bug_file_loc=&status_whiteboard_type=substring&status_whiteboard=&keywords_type=anywords&keywords=&bug_status=NEW&bug_status=STARTED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2w&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=keywords&type0-0-0=substring&value0-0-0=API_REVIEW Recently Active Reviews]

====Reviews in Progress====

For each standard review there is an issue describing the problem, linking to appropriated documentation, potentially a review document:

[https://netbeans.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=substring&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=substring&bug_file_loc=&status_whiteboard_type=substring&status_whiteboard=&keywords_type=anywords&keywords=&bug_status=NEW&bug_status=STARTED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=keywords&type0-0-0=substring&value0-0-0=API_REVIEW Reviews In Progress]

====Accepted Reviews====

Accepted reviews, are listed here. Each of the issue contains information about the problem, list of material, set of technical changes requires or advices and a resolution:

[https://netbeans.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=substring&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=substring&bug_file_loc=&status_whiteboard_type=substring&status_whiteboard=&keywords_type=anywords&keywords=API_REVIEW&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Standard Reviews]


[https://netbeans.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=substring&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=substring&bug_file_loc=&status_whiteboard_type=substring&status_whiteboard=&keywords_type=anywords&keywords=API_REVIEW_FAST&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Fast Track Reviews]

====Rejected Reviews====

Rejected reviews were withdrawn or rejected without implementation. Each issue shall contain details describing the motivation and reasons for not implementing it:

[https://netbeans.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=substring&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=substring&bug_file_loc=&status_whiteboard_type=substring&status_whiteboard=&keywords_type=anywords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=INVALID&resolution=WONTFIX&resolution=WORKSFORME&resolution=INCOMPLETE&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=keywords&type0-0-0=substring&value0-0-0=API_REVIEW Rejected Reviews]

==== List of Suggested Improvements ====

* [http://netbeans.org/bugzilla/buglist.cgi?issue_status=UNCONFIRMED&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&issue_file_loc=&issue_file_loc_type=substring&status_whiteboard=TCR+TCA+tcr+tca&status_whiteboard_type=anywords&keywords=&keywords_type=exactlyanywords&field0-0-0=noop&type0-0-0=noop&value0-0-0= Open TCRs and TCAs]
* [http://netbeans.org/bugzilla/buglist.cgi?issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&issue_file_loc=&issue_file_loc_type=substring&status_whiteboard=TCR+TCA+tcr+tca&status_whiteboard_type=anywords&keywords=&keywords_type=exactlyanywords&field0-0-0=noop&type0-0-0=noop&value0-0-0= Closed TCRs and TCAs]