Adding @since tags
pavel.safrata at oracle.com
Tue May 28 09:53:35 PDT 2013
On 28.5.2013 17:37, Richard Bair wrote:
> Hi Pavel,
> This sounds great!
>> I'm almost ready with a tool that generates @since tags to JavaFX API. My question is what should I generate. Essentially, there are three releases with added API: 2.0, 2.2 and 8.0.
> How does it work? Specifically, if an API was not tagged in 2.2, and is not tagged in 8.0, how do you determine which release the API appeared in? Are you searching through the generated javadocs? A tool I've wanted for many years but haven't had to time to write would be one that would catch new public API changes that haven't been reviewed, and list all the new API at the end of the release that we could then use as the basis for slides / presentations / release notes / etc.
I take two jars from subsequent releases, use SigTest to list API
differences, then go over the results, find the added entities in
sources and add/update the javadoc tag.
>> Question 1:
>> Should we generate @since for the initial stuff that appeared in 2.0?
> I think so.
>> Question 2:
>> There are classes and methods marked as "@since JavaFX 1.3" (comments survived porting to Java). Should I keep it? Or remove/replace by 2.0 based on Q1? Note that I'm not able to compare Java 2.0 API to previous fx-script API so I cannot make sure everything that existed before 2.0 is marked properly as 1.x.
> I would replace all the @JavaFX 1.x with whatever the answer to Question 3 is.
>> Question 3:
>> What should be the format?
>> (a) - full FX version
>> 2.0: @since JavaFX 2.0
>> 2.2: @since JavaFX 2.2
>> 8.0: @since JavaFX 8.0
>> (b) - major FX version
>> 2.0: @since JavaFX 2
>> 2.2: @since JavaFX 2
>> 8.0: @since JavaFX 8
>> (c) - JDK version
>> 2.0: @since 1.7
>> 2.2: @since 1.7
>> 8.0: @since 1.8
>> Or something else?
> Right now I think I'd say (a), the full FX version is what we ought to go with for now. At first ( c ) looked like the best option, however, we then have the oddity that @since 2.0 happened before @since 1.8! Also, 2.0 was shipped with 1.6 as well as 1.7 so @since 1.7 isn't entirely accurate.
> If/When FX goes through the JCP process, it will at that time be standardized and we might reset the clock, such that everything at that time is upgraded to 1.9 as the "since" version.
OK, if there are no other concerns I'll go with (a).
> Another question, when a class is added in a release, do you add @since to the class but *not* the methods, or do you tag both the class and the methods? It seems more foolproof to tag both the class & methods, but I don't think that is how they do it on the JDK side.
I add it only to the class. Indeed, this is the JDK practice. SigTest
reports new class as a single change, so right now I don't have input
for adding it everywhere. I think I could go over the new classes, add
empty classes with the same names to the old jar and then use the tool
to generate the tags for the API difference which will now be all the
contents of the classes. Do you think it's worth the effort?
More information about the openjfx-dev