As a possibly relevant side note, I've observed how api changes are handled in the linux kernel:

You can change whatever you want if it's a good idea, but as part of proving it, you have to be willing to take over the warranty for anything you break.

So basically you change what you please ONLY if you also take the burden of fixing everything that depended on what you screwed with.

Is this how things are handled by gentoo as well?

On Mon, Nov 16, 2015 at 11:19 PM, Michał Górny <mgorny@gentoo.org> wrote:
On Mon, 16 Nov 2015 23:38:08 +0000 (UTC)
"Mike Pagano" <mpagano@gentoo.org> wrote:

> commit:     aac24917ebe254a23990f0d7fff9f6f570b99d15
> Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
> AuthorDate: Mon Nov 16 23:37:55 2015 +0000
> Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
> CommitDate: Mon Nov 16 23:37:55 2015 +0000
> URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aac24917
>
> kernel-2.eclass: Fix for git-sources 4.4_rcX
>
>  eclass/kernel-2.eclass | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass
> index 0f47b8c..5a9ea9f 100644
> --- a/eclass/kernel-2.eclass
> +++ b/eclass/kernel-2.eclass
> @@ -1079,9 +1079,9 @@ unipatch() {
>                       # https://bugs.gentoo.org/show_bug.cgi?id=507656                   #
>                       ####################################################################
>                       if [[ ${PN} == "git-sources" ]] ; then
> -                             if [[ ${KV_MAJOR}${KV_PATCH} -ge 315 && ${RELEASETYPE} == -rc ]] ; then
> +                             if [[ ${KV_MAJOR}.${KV_PATCH} > 3.15 && ${RELEASETYPE} == -rc ]] ; then

Don't do string comparison on numbers. It can fail randomly,
and teaches others who read it bad practices. For example, it would
fail when kernel reaches version 10 ;-P.

Instead:

[[ ${KV_MAJOR} -gt 3 || ( ${KV_MAJOR} -eq 3 && ${KV_PATCH} -gt 15 ) ]]

>                                       ebegin "Applying ${i/*\//} (-p1)"
> -                                     if [ $(patch -p1 --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then
> +                                     if [ $(patch -p1 --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -le 2 ]; then
>                                               eend 0
>                                               rm ${STDERR_T}
>                                               break
>



--
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>