[51868] trunk/dports/devel/git-core/Portfile
Ryan Schmidt
ryandesign at macports.org
Sat Jun 6 15:27:01 PDT 2009
On Jun 6, 2009, at 11:25, Rainer Müller wrote:
> On 2009-06-05 23:25, Ryan Schmidt wrote:
>
>> All I'm saying is that the situation we have is not working. This is
>> not the first time someone has run "port lint", thought they should
>> change something because "port lint" said it was deprecated, but this
>> ended up breaking the port for anyone not running trunk.
>>
>> My vote would be for "port lint" not printing a message until after
>> 1.8.0 is released. That would avoid the problem. We can mark these
>> things as deprecated after that, and make the message appear for
>> users in 1.8.1.
>
> I don't understand why 1.8.1 would be more appropriate than 1.8.0.
> Such
> a bugfix release could happen at a random time when some bug is
> discovered which needs a fix. This could be one day after release,
> three months later or not at all.
>
> But that would mean it would probably print this message at last in
> 1.9.0, and could then finally be removed in 1.10.0. Do we really
> want to
> delay this for another major release?
>
> Even if we do a one-time replacement on the official tree, others will
> probably still use svn.tag and livecheck.check when developing new
> Portfiles until 'port lint' emits a warning about this.
1.8.1 would be a more appropriate release in which to mark the old
commands as deprecated, because the new commands will not exist until
release 1.8.0. My objection is that if we have new synonyms for
existing commands that will be available in release "n" (i.e.
svn.revision and livecheck.type that will be available in 1.8.0),
then we must not mark the old commands as deprecated until release
"n" has in fact been released. We can mark them deprecated in release
"n+1" (i.e. 1.8.1 or 1.9.0). It's not like the old commands svn.tag
and livecheck.check have been removed. There is absolutely no problem
with ports continuing to use the old svn.tag and livecheck.check in
MacPorts 1.8.0. On the other hand, there is a major problem with
ports using the new svn.revision and livecheck.type in MacPorts
1.7.1: the port will not work at all because those commands do not
exist yet. Therefore, while there are still users using MacPorts
1.7.1 (i.e. until MacPorts 1.8.0 is released) we should not recommend
that anyone replace svn.tag and livecheck.check with svn.revision and
livecheck.type, respectively.
Just so we're clear, according to the wikipedia:
http://en.wikipedia.org/wiki/Deprecation
"In computer software standards and documentation, the term
deprecation is applied to software features that are superseded and
should be avoided."
svn.tag and livecheck.check are NOT superseded and should NOT be
avoided (and in fact, must continue to be used) until MacPorts 1.8.0
is released. Thus, these features should NOT be marked as deprecated
until 1.8.0 is released. That is the point I'm trying to make here.
I don't really care if the deprecation warning is put into 1.8.0
right before its release, except that in the interest of having code
tested before release, I would expect the code to live on trunk for
awhile and become a part of the next release, like any other code.
At some point in the future, maybe release "n+5" or 6 months down the
road, the old commands and the lint check can be removed entirely.
> Would it help if the warning includes the version number?
>
> Warning: Option 'svn.tag' will be superseded by 'svn.revision' as of
> MacPorts 1.8.0
That would probably cut down on the number of people committing this
change before 1.8.0 is released. But why should lint print a message
for something the maintainer *shouldn't* do yet? Thus far, lint has
only mentioned things the maintainer *should* do right now, which
seems like the way it should be.
I don't want to make too big a deal about this deprecation situation,
since there haven't been that many slip-ups, and we've caught them
fairly quickly. And I don't expect we'll be deprecating too many
other options soon. But I just don't think we've handled deprecating
options in a way that makes sense, and I'm trying to explain why I
feel that way and to suggest a way that makes sense to me. :)
More information about the macports-dev
mailing list