discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Documenting API versions


From: Sheldon Gill
Subject: Re: Documenting API versions
Date: Tue, 10 May 2005 08:05:46 +0800
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

First, thanks for your working on this.

I think what you are trying to do is say something along the lines

ValidFromOS xxx                To:NULL
ValidFromOSVersion xxx        To:NULL
ValidityStatus
ValidFromDate xxx            To:NULL

I think we are talking about operating system version/release, and are not considering specific dates (though I guess we could lookup dates of various releases).

I was thinking a separate page/pages could list releases and dates. In the GNUstep case I was thinking it could also provide a link to the tarball where available, along with MD5 sums.

As seem to have the following axes:
OS,
OSversion,
Current / depreciated / removed
Date.

Not OS but Library/Package

I think in terms of operating systems, we consider there to be two sets of versioning. First is the OpenStep -> OPENSTEP -> MacOS-X line ... ie 'official' NeXT/Apple releases.
Second is the GNUstep line.
We want to consider two GNUstep lines, one for the base library and one for the gui library, as we use different versioning for the two.

Yes, thats my view too with the addition that it should extend beyond just -base and -gui.

We haven't really discussed deprecation ... but extending the scheme to include a version of the system at which part of the api was deprecated is pretty simple.

Oh, I thought we had discussed deprecation. It certainly is clearly laid out in my proposal.

So in the quick hack, the markup for a group of methods introduced in macos 10.3 and in GNUstep 1.02 would be -

#if OS_API_VERSION(1003, 9999) && GS_API_VERSION(0102, 9999)
// a load of method declaractions here
#endif

but a more plished version might use
#if OS_API_VERSION(1003, NEVER) && GS_API_VERSION(0102, NEVER)
or
#if OS_API_VERSION(1003) && GS_API_VERSION(0102)

If a date is given, it indicates the date the validity began / ended (removal date or depreciated date).
 [Gerald]
Can some of the date information be recovered from CVS ?

For GNUstep yes it is possible. I don't think there is much value in trying to obtain version info too many releases ago.

I think Sheldon's summary of his approach is pretty good (seems clear to me), but his summary of mine (as I hope is apparent from my emails) is only vaguely similar to what I was suggesting ... In particular, all but the last of the advantages he lists for his approach also apply to mine because, as I keep trying to make clear, I'm advocating a superset of the functionality (adding compile-time checking that a program doesn't use api it shouldn't) and a modest simplification of the markup task (markup a whole chunk of the api in one go) ... It could be easily modified to be applicable to other projects too I guess.

Well, I disagree that all but one of the same advantages apply:

I still hold that my approach is cognitively and practically simpler. Hence easier to review and audit.

Your proposal has yet to clearly specify handling depreciation.

Parsing and calculating has some (perhaps small) impact on builds when compared to comments which are entirely skipped. {Minor point, yes}

Anyway, let the discussion continue.


Regards,
Sheldon




reply via email to

[Prev in Thread] Current Thread [Next in Thread]