Thanks Chris, good clarification!

--Yongjun

On Fri, Apr 24, 2015 at 12:36 PM, Chris Nauroth <cnaur...@hortonworks.com>
wrote:

> Metrics/JMX is covered by our compatibility guidelines:
>
> http://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-common/Comp
> atibility.html#MetricsJMX
>
>
> Metrics/JMX is similar to our usage of Protocol Buffers/JSON that I
> mentioned.  It supports backwards-compatible evolution if the change is
> done correctly.  Adding new fields/beans is compatible.  Changing the
> names or data types of existing fields/beans is incompatible.  Deleting
> existing fields/beans is incompatible.
>
> --Chris Nauroth
>
>
>
>
> On 4/24/15, 11:19 AM, "Yongjun Zhang" <yzh...@cloudera.com> wrote:
>
> >Thanks Allen and Chris!
> >
> >What about adding new entries to jmx report? Somehow I had the impression
> >that if we add new entries to it, it's not considered incompatible. Often
> >within the same minor release, we want to add new info to jmx report
> >instead of waiting for a major release.
> >
> >For CLI like fsck, maybe we can add a new command line option to enable
> >the
> >change, and if the command line option is not enabled, don't change the
> >output, so we can still commit the change within the same release line?
> >
> >Thanks.
> >
> >--Yongjun
> >
> >
> >On Fri, Apr 24, 2015 at 11:05 AM, Chris Nauroth <cnaur...@hortonworks.com
> >
> >wrote:
> >
> >> Allen, thank you for calling this out.  I was not aware of this part of
> >> the compatibility guidelines.  I committed one of those fsck changes in
> >> HDFS-7933.  I see you flagged the issue as incompatible, which agrees
> >>with
> >> the compatibility guidelines.
> >>
> >> "Changing the path of a command, removing or renaming command line
> >> options, the order of arguments, or the command return code and output
> >> break compatibility and may adversely affect users."
> >>
> >> Most of this intuitively makes sense.  Even ignorant of the
> >>compatibility
> >> guidelines, I would have known to push back on patches that change the
> >> path, remove or rename existing options, or change the order of
> >>arguments.
> >>
> >> HDFS-7933 was an example of an output change, and I find this part of
> >>the
> >> compatibility guidelines much more challenging.  We need to be able to
> >> evolve CLI output within a release line.  On the protocol side, our use
> >>of
> >> Protocol Buffers and JSON supports evolution if we use it correctly.
> >>How
> >> can we achieve the equivalent for the CLI?  For example, can we turn
> >> HDFS-7933 into a backwards-compatible change if it preserves the old
> >> output, and only adds the new information if the user passes a new
> >> argument, such as -count-decom?
> >>
> >> Are there other specific issues that you have in mind for CLI
> >> incompatibility problems?  Let's see if we can find a way to amend them
> >>to
> >> satisfy the compatibility guidelines.
> >>
> >> --Chris Nauroth
> >>
> >>
> >>
> >>
> >> On 4/24/15, 1:02 AM, "Allen Wittenauer" <a...@altiscale.com> wrote:
> >>
> >> >
> >> >On Apr 24, 2015, at 5:53 AM, Yongjun Zhang <yzh...@cloudera.com>
> wrote:
> >> >
> >> >>
> >> >> Basically we are adding two additional lines to the report (as
> >> >>highlighted
> >> >> above).
> >> >>
> >> >> Theoretically if a tool parses existing fsck report and expects the
> >> >> 'Corrupt blocks" entry to be right after the "Average block
> >>replication"
> >> >> entry, then the change would fail the tool. But is this really a
> >> >>concern?
> >> >>
> >> >> I guess this is not really a concern, so I don't think this change is
> >> >> incompatible. but would anyone please comment?
> >> >>
> >> >
> >> >       If it changes the output of a CLI command, it's an incompatible
> >> change:
> >> >
> >> >
> >>
> >>
> http://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-common/Co
> >> >mpatibility.html#Command_Line_Interface_CLI
> >> >
> >> >
> >> >       Other changes to fsck have been punted to 3.x for the *exact
> >>same
> >> >reason*. In other cases, committers have violated these rules in
> >>branch-2
> >> >(not just to fsck, but to all sorts of other command line bits, even
> >> >removing command options!) to the point that our compatibility
> >>guarantees
> >> >are pretty much useless.  It's open season on nuking the ecosystem. :(
> >> >
> >> >       People not following the compat rules is one of the reasons I
> >> started
> >> >building my own changes and release notes, because we have too many
> >> >committers either accidentally committing incompatible changes or just
> >> >outright lying about them.  (Š and, as much as I hate to say it, the
> >>HDFS
> >> >project is easily the biggest offender.)
> >>
> >>
>
>

Reply via email to