+1 to docker. It’s a relatively universal dependency at this point, allows for more repeatable builds, and doesn’t require installing software in the build. It’s not any more heavyweight that go or python and has less environment nuances. It lets us pick what python (or go) we use among many other benefits.
+1 to skipping parts of the build w an info/warning if docker is missing. We should NEVER be installing software without promoting. +1 to unifying generation on python. Absolutely appreciate the work done by the go folks. Separate from that keeping the build simple to reason about is important. Jordan On Fri, May 2, 2025 at 05:54 Joseph Lynch <joe.e.ly...@gmail.com> wrote: > On Fri, May 2, 2025 at 6:46 AM Mick Semb Wever <m...@apache.org> wrote: > >> But layering in the ability to do it with docker is opposed to requiring >> the use of docker. i.e. I don't think we should make docker mandatory >> inside `ant check`. >> > > I think if you don't have docker it could be reasonable not to build the > docs as part of ant check (the golang part of gen-doc could be skipped). > Docker is fairly standard build tooling these days since it obviates the > need to have the right versions of things on peoples systems (e.g. golang > or python). > > >> There are two possible paths forward >> option 1) remove the auto-install, and just print the command the user >> needs to run to do the install, and/or how to skip that target. >> > option 2) build on Maxim's contribution to rewrite it to >> python+virtualenv+jinja >> > > I don't object to #2, but once you start talking about virtualenv and > python libraries you may want to be building that via docker as well as > libraries often have minimum requirements of python versions. > > >> With option (2) i feel it would be a shame that the original work in >> https://github.com/apache/cassandra-website/tree/trunk/cqlprotodoc from >> our newly joined gocql community would be redone. I can only hope they >> understand and appreciate this *is* their work being carried forward, and >> our legitimate reasons for the golang to python rewrite (i.e. there's >> nothing against golang in the community). (I've cc'd them.) >> >> Otherwise, I'm entirely on the fence – all ears. Slightly leaning >> towards option (1). >> > > Is there an option 3? gen-doc (specifically the part that uses golang) > requires docker, and if you don't have docker that component of the docs is > skipped? That seems to move towards a possible world where we could move > towards just one build requirement (docker) instead of 10? If you feel > strongly we should always try first with native and only ask people to use > docker if their system isn't running the right versions then 1 seems better > to me given we have existing functional code and the official builds would > have golang available. > > -Joey >