Hi list, I want to clarify the policy we have when we want to / going to change the output of the tooling (nodetool or tools/bin etc.).
I am not sure it is written somewhere explicitly, but how I get it from the gossip over years is that we should not change the output (e.g. changing the name of fields etc) in minors, but for majors (4.0 -> 5.0), this is OK, correct? For example, when some tool prints this: thisIsAStatistic: 10 and we see that all other lines in that output print it like this: This Is Another Statistic: abc scratching the itch is almost irresistible so we want to change the output to: This Is a Statistic: 10 This is the natural way how fixes are done. We are improving the output, making it consistent etc. Someone may argue that we are changing "public api" and people are actually parsing the output like this and we better not to change it because we might break "the scripts" for somebody. While I get this for minors and it is understandable that minors should be same, is this relevant for majors? Because if we care about majors too in this situation, how are we supposed to evolve the output over time? Is it supposed to be just frozen for ever? I do not buy this argument. For minors, fine. But for majors, I do not think so. I feel like "not break the output because API" is more or less an urban legend we keep repeating ourselves. I yet need to meet somebody who is stressing over the fact that her output changed *between majors*. If that is the case, we should start to treat this problem completely differently and we should not rely on the output of tooling at all and we should either provide corresponding JMX method to retrieve it or we should offer other formats tooling prints, like JSON or YAML. Anyway, the main question here is if we are OK to change the output in majors. Regards