you don't need to put it under version control to have it in the linux 
packages, and it doesn't need to create git stage noise.

give me a chance to whip something up to demonstrate if/how it might be simpler.


On 2026/09/16 16:36:01 Štefan Miklošovič wrote:
> On Wed, Sep 16, 2026 at 6:01 PM Mick <[email protected]> wrote:
> >
> > Any reason we want to be keeping generated files under version control ?
> >
> 
> Because that is something we are going to package in Debian deb and
> ship so it is installed in
> /usr/share/bash-completion/completions/nodetool. Also, people who do
> not use the deb package should also benefit from this so I think it
> should be placed into the tarball as well. Do you want to generate
> this only when deb and tar.gz are produced? (e.g. upon ant artifacts)
> 
> > I would think the cleaner way to do this is make gen-autocomplete  detect 
> > when it doesn't need to run (i.e. nodetool-completion  exists, and with a 
> > newer timestamp that any of the nodetool classes).  That limits it to only 
> > 5 steps instead of the potential 9.
> 
> The fact that we changed some nodetool-related classes does not mean
> that autocompletion scripts have changed. We can modify nodetool
> classes without actually changing any parameters and / or adding
> commands. We would run this unnecessarily in these cases. I think we
> are trying to be too smart here about that.
> 
> What I like about the proposed workflow is that it is explicit. I
> would be personally not satisfied if the build process is generating
> some stuff without me explicitly wanting that. I do not want to run
> "ant jar" and then some files suddenly appear in my git staging area.
> It is just clutter.
> 
> I hope that at this point everybody uses "ant check" when they are
> serious about the shipment of the patch they completed and that is the
> time when this would be detected.
> 
> >
> >
> >
> > On Wed, 16 Sep 2026, at 12:51 PM, Štefan Miklošovič wrote:
> > > Hey, I just want to run this through ML because that might be
> > > something people might be sensitive to.
> > >
> > > We would like to provide autocompletion shell scripts (1) for nodetool
> > > commands with parameters autocomplete etc. Since we are on Picocli it
> > > is easy to generate that.
> > >
> > > The workflow I suggest is this:
> > >
> > > 1) a developer develops and changes some command
> > > 2) ant jar
> > > 3) okay, the change looks good, we go to merge
> > > 4) ant check
> > > 5) ooops, it is missing (updated) autocomplete when I introduced or
> > > changed some parameters and it says I should execute it
> > > 6) ant gen-autocomplete & git commit amend
> > > 7) ant check
> > > 8) now it passes
> > > 9) push & merge
> > >
> > > If 4) is not done, then it will be failing the builds in CI with a
> > > clear message what a person should do to fix it (run the ant target
> > > and amend).
> > >
> > > Under _normal_ circumstances, when no nodetool code is touched, there
> > > is no reason to run this command whatsoever. It is only specifically
> > > when a nodetool command is added or changed that this needs to be
> > > updated.
> > >
> > > We think that it is not a good idea to hook the autocompletion script
> > > generation directly into "ant jar" as it is not a good idea to hook
> > > anything new there. "ant jar" should be just building a JAR and
> > > _that's it_. It would create unnecessary pollution in the git stage
> > > area everytime I do "ant jar" and I would see some generated stuff
> > > there. However when a developer is fully done with a patch changing
> > > some commands and their parameters etc. then they will also update
> > > autocompletion commands at the end.
> > >
> > > Is this fine for people?
> > >
> > > Regards
> > >
> > > (1) https://github.com/apache/cassandra/pull/5127
> 

Reply via email to