From: Doug Evans <dje@google.com>
To: Stan Shebs <stanshebs@earthlink.net>
Cc: gdb-patches <gdb-patches@sourceware.org>
Subject: Deprecating (and deleting) user-facing APIs [was Re: Why do functions objfpy_new and pspy_new exist?]
Date: Thu, 09 Oct 2014 18:07:00 -0000 [thread overview]
Message-ID: <CADPb22Qj=z7GSBPohYAGRHaSUwx5W4VmSpM=bm_0yLp=yyY_pQ@mail.gmail.com> (raw)
[I've changed the subject line to make the topic stand out more ...]
On Thu, Oct 2, 2014 at 3:11 PM, Stan Shebs <stanshebs@earthlink.net> wrote:
> On 9/25/14, 3:07 PM, Doug Evans wrote:
> [...]
>>
>> I know I've mentioned this before, but since the topic has come up again,
>> I think GDB could have a formal deprecation process that would allow
>> us to remove things we'd like to remove (this is for API-like things
>> which are harder to remove than, e.g., outdated ports).
>
> Nominally, the existing process is as described at
>
> https://sourceware.org/gdb/wiki/Internals%20Obsoleting-code
>
> We've also done "deprecate in one release, remove in the next", and
> added "deprecated_" onto function names and such. Empirically, it
> hasn't created the desired urgency - people have been content to keep
> calling deprecated_foo for many years after its deprecation. :-)
Yeah, though this situation is different in the sense that the subject
here is externally facing APIs.
At least different from adding "deprecated_" to function names;
if we rename a function we've already broken user code.
[One can imagine a multistep process where we add deprecated_foo as a
synonym for foo,
then later delete foo, and then still later delete deprecated_foo.
That might be overkill in general.]
I'm glad I haven't seen any real pushback (at least not yet :-)),
so to advance the discussion ...
One thing I think we need is to publish somewhere the state
of the things being deprecated (and by "things" here I mean only
user-facing API elements).
[I'd still document the process for developers to follow in the above link.
What I'm talking about here is for users to see the details of
what's currently in the process of being deprecated/deleted.]
And by "deprecated" here I also mean that we intend to eventually
delete it. Anything deprecated here is also given a deletion date
(where the date is probably expressed in terms of number of releases from now).
We want to give users time to migrate away from things that
will eventually be deleted, and I can imagine the length of time
being more than one release. Thus we need to publish
the current state in a place where users can find it and track it.
I don't have a strong opinion on where this documentation lives.
Anyone have a strong opinion on where this should live?
I can see an argument made for keeping it with the sources.
As a strawman we could have a "Deprecated APIs" section in gdb.texinfo.
I would also add an easy to find link to the currently generated form
from the website.
I'd also add appropriate entries to NEWS of course.
Comments?
next reply other threads:[~2014-10-09 18:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-09 18:07 Doug Evans [this message]
2014-10-10 7:38 ` Phil Muldoon
2014-10-10 7:51 ` Eli Zaretskii
2014-10-10 8:07 ` Phil Muldoon
2014-10-10 9:15 ` Eli Zaretskii
2014-10-10 16:35 ` Doug Evans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CADPb22Qj=z7GSBPohYAGRHaSUwx5W4VmSpM=bm_0yLp=yyY_pQ@mail.gmail.com' \
--to=dje@google.com \
--cc=gdb-patches@sourceware.org \
--cc=stanshebs@earthlink.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox