I am +1 (nb) on the proposal to change the human readable output in a major 
release as long as we have a machine readable output that can be consumed by 
scripts.

On 2023/07/10 23:06:11 "Fleming, Jackson" wrote:
> We use Nodetool in scripts sparsely, in my opinion trying to programmatically 
> parse the human readable output should be avoided as much as possible, it’s 
> usually leads to implementations that are brittle.
> 
> I certainly agree you don’t want to make these kinds of changes in 3.11 or 
> 4.x (and I don’t think that’s what Stefan was suggesting), but I don’t 
> necessarily agree that you can’t make these kinds of changes in major 
> versions. Chasing compatibility like this seems like a deep rabbit hole one 
> could possibly go down, I personally don’t see it as unreasonable for 
> commands that are designed to be read by humans to be updated over time to 
> improve readability, as that is the purpose of those commands. While people 
> script against that output I don’t think anyone is going to say it’s an 
> official API, the project also makes no public commitment to that either.
> 
> If the proposal is to treat Nodetool input and output like a contract/API, 
> it’d be great for a formal specification, or at least the documentation to be 
> updated to cover what users should expect as output from Nodetool, if the 
> project is going to such effort to maintain a specification, why not make it 
> official? That way the maintainers of scripts have a fighting chance of 
> finding incompatibilities before upgrading their infrastructure and the 
> project could make these kinds of changes and provide a mechanism for users 
> to validate.
> 
> Currently the argument could be made that there’s no guarantee about Nodetool 
> output since it’s not actually written down anywhere official outside the 
> codebase.
> 
> Isn’t this one of the reasons Cassandra maintains the NEWS and CHANGES files 
> in the repo, and follows semantic versioning, to communicate potentially 
> breaking changes as clearly as possible? Surely a message like (but with some 
> more detail) “Nodetool command x has had its human readable output 
> restructured, item y was removed/renamed to z” would suffice.
> 
> Not sure if you can deprecate the human readable output without generating a 
> lot of noise for the user, and if it’s being parsed by a bash script, the 
> user would never see it anyway, but sounds like that’s what the project needs.
> 
> To the note about having users migrate over to more machine friendly output 
> types (JSON etc), in my experience the operators who maintain these scripts 
> aren’t going to re-write them just because a better way of doing them is 
> newly available, usually they’re too busy with other work and will keep using 
> those old scripts until they stop working, so in my view it’s not really a 
> solution to this problem.
> 
> Regards,
> 
> Jackson
> 
> From: Eric Evans <john.eric.ev...@gmail.com>
> Date: Tuesday, 11 July 2023 at 4:14 am
> To: dev@cassandra.apache.org <dev@cassandra.apache.org>
> Subject: Re: Changing the output of tooling between majors
> You don't often get email from john.eric.ev...@gmail.com. Learn why this is 
> important<https://aka.ms/LearnAboutSenderIdentification>
> 
> NetApp Security WARNING: This is an external email. Do not click links or 
> open attachments unless you recognize the sender and know the content is safe.
> 
> 
> 
> 
> On Sun, Jul 9, 2023 at 9:10 PM Dinesh Joshi 
> <djo...@apache.org<mailto:djo...@apache.org>> wrote:
> On Jul 8, 2023, at 8:43 AM, Miklosovic, Stefan 
> <stefan.mikloso...@netapp.com<mailto:stefan.mikloso...@netapp.com>> wrote:
> 
> If we are providing CQL / JSON / YAML for couple years, I do not believe that 
> the argument "lets not break it for folks in nodetool" is still relevant. CQL 
> output is there from times of 4.0 at least (at least!) and YAML / JSON is 
> also not something completely new. It is not like we are suddenly forcing 
> people to change their habits, there was enough time to update the stuff to 
> CQL / json / yaml etc ...
> 
> What % of Cassandra users are using 4.0+? Operators who upgrade to 4.0 and 
> beyond may still use their existing scripts. Therefore keeping things stable 
> is important. Until nodetool can support JSON as output format for all 
> interaction and there is a significant adoption in the user community, I 
> would strongly advise against making breaking changes to the CLI output.
> 
> +1
> 
> --
> Eric Evans
> john.eric.ev...@gmail.com<mailto:john.eric.ev...@gmail.com>
> 

Reply via email to