Hi all, FYI the Documentation Plan was added to the template in September 2023 around the time ~979 was opened. I was not able to find any contemporary discussion thread, does anyone know of where/when we discussed this change? Not to say that I think the change to the template should be undone, as I think it is very important that we write good documentation for our features, and encourage this by changing our processes.
I think "how to teach the KIP's concepts" is more appealing to me than the template's current wording of "List affected areas/files". KIPs could also contain the first iteration of the user-facing documentation, either an outline of topics that need to be documented, or text that can later be directly promoted to a documentation page for sufficiently small changes. I also support moving away from our current practice of pointing users to KIPs for first- or second-level documentation, because they are written for contributors & committers, not end users. As part of enforcing this practice, when reviewing KIP PRs, we could look for places where the KIP is linked/mentioned and determine if a purpose-written piece of documentation would be more appropriate. Thanks, Greg On Mon, Nov 4, 2024 at 11:10 AM Matthias J. Sax <mj...@apache.org> wrote: > Guess it would be better to use the template when starting a new KIP -- > that's why we have it :) > > On 11/4/24 10:23 AM, Colin McCabe wrote: > > Hi Matthias, > > > > Thanks for pointing this out! Maybe what we need is to start enforcing > that this section appears (even if it just says "no change"). I think we > have people copying previous KIPs (including me...) and in that case just > we won't have the section, unless someone complains. > > > > best, > > Colin > > > > > > On Fri, Nov 1, 2024, at 19:10, Matthias J. Sax wrote: > >> The KIP already has a section "Documentation Plan" > >> > >> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=50859709#KIPTemplate-DocumentationPlan > >> > >> If it's not used properly, committers reviewing (and voting) KIPs must > >> be reminded to pay more attention and emphasis on good documentation, > >> and also make sure the PRs contains corresponding doc updates... > >> > >> Overall, I agree and support to pay attention to good docs. I just don't > >> see that we need to change anything in the "official process" -- we just > >> need to change our behavior and stick to the exiting process? > >> > >> > >> -Matthias > >> > >> On 11/1/24 2:50 PM, Colin McCabe wrote: > >>> On Fri, Nov 1, 2024, at 07:08, Claude Warren, Jr wrote: > >>>> I like this idea. I'm not sure what the section should be called but > It > >>>> should spell out what changes from a customer (I don't like the term > user, > >>>> drug dealers have users -- we should have customers) point of view > and from > >>>> a developer point of view. > >>> > >>> Hi Claude, > >>> > >>> Sorry to nitpick, but I think "user" really is the correct term. > Apache Kafka is an open source project. We do not have "customers" because > we're not a business. Indeed, users should feel free to contribute to Kafka > and not view it as a vendor / customer relationship. > >>> > >>> Of course, if you want a vendor / customer relationship, there are > lots of companies in the ecosystem that can provide that. But the open > source project should be a collaboration. I think most of us wear both > "user" and "developer" hats, and that's a good thing. > >>> > >>>> > >>>> I can see cases where the change is not visible to the customer but > impacts > >>>> how developers interact with the system. I can also see cases where > the > >>>> change is almost 100% customer focused with little change to the > developers > >>>> perception. > >>>> > >>>> Whatever changes are noted in the section should be accounted for in > the PR > >>>> before it is accepted. Keeping in mind that as the change evolves > through > >>>> testing to documentation requirements may change too. > >>>> > >>>> I think we need more focus on documenting how to use and configure > kafka in > >>>> various environments, but I also perceive that we do not have the > people to > >>>> do that, so let's at least collect the information in some reasonable > form. > >>>> > >>> > >>> Many changes involve multiple PRs. I think documentation is no > different than any other aspect of a feature or change. It can be done > incrementally if necessary. Hopefully having the section in the KIP would > help remind us to do it, though! And motivate discussion about what kind of > documentation would be best. > >>> > >>> best, > >>> Colin > >>> > >>>> Claude > >>>> > >>>> On Thu, Oct 31, 2024 at 12:21 PM Anton Agestam > >>>> <anton.ages...@aiven.io.invalid> wrote: > >>>> > >>>>> Thanks for your response here Colin, > >>>>> > >>>>> > Perhaps there should be a "documentation" section in the KIP > template? > >>>>> > >>>>> I think that would do the trick. The nice idea behind formulating the > >>>>> section as "How to teach this?", is that it leaves it to the KIP > author how > >>>>> to answer it. In most cases I would expect the section to be filled > in like > >>>>> "We will update documentation section X and Y", but there might be > cases > >>>>> where the answer is different (. I'm not going to die on this hill, > and > >>>>> would be very happy with an added "Documentation" section if that > option > >>>>> has more traction 👍 > >>>>> > >>>>>> the KIPs themselves are part of the documentation > >>>>> > >>>>> I understand this is how things currently work for many parts of > Kafka > >>>>> documentation, but it's an idea I want to question and I am > proposing to > >>>>> work to phase this out over time. KIPs are by definition documenting > a > >>>>> proposed change. It is necessary to make assumptions about the > current > >>>>> state of the Kafka code base at the time of writing, and those > assumptions > >>>>> do not necessarily hold true at any arbitrary time later, when the > KIP is > >>>>> being read. And I think this is what you are saying too, that for > instance > >>>>> an implemented KIP that touches the protocol should also result in > changes > >>>>> to the documentation. > >>>>> > >>>>> tl;dr; It's useful to also be able to read KIPs in hind-sight, but it > >>>>> shouldn't be required to do in-brain materialization of a series of > KIPs to > >>>>> understand what the expected state of some feature currently is. > >>>>> > >>>>> What I am hoping with the proposed change to the KIP template is > that there > >>>>> will be less chance for documentation to be an after-thought for new > >>>>> changes, and also for documentation changes to be scrutinized and > reviewed > >>>>> during the KIP process, and that this will produce higher quality > >>>>> documentation over time. > >>>>> > >>>>> I'm curious if there are more opinions about this issue. > >>>>> > >>>>> BR, > >>>>> Anton > >>>>> > >>>>> Den tis 29 okt. 2024 kl 20:50 skrev Colin McCabe <cmcc...@apache.org > >: > >>>>> > >>>>>> Hi Anton, > >>>>>> > >>>>>> Perhaps there should be a "documentation" section in the KIP > template? > >>>>>> That might help raise awareness of the need to document these > changes. > >>>>>> > >>>>>> I want to add, in the case of the wire protocol, the KIPs > themselves are > >>>>>> part of the documentation. But they shouldn't be all of the > >>>>> documentation. > >>>>>> We should update protocol.html and possibly other docs in cases > where > >>>>> we're > >>>>>> changing the protocol. I don't think it necessary needs to be done > before > >>>>>> the change itself, but it should be done so that the release that > >>>>> includes > >>>>>> the protocol changes also includes their docs... > >>>>>> > >>>>>> best, > >>>>>> Colin > >>>>>> > >>>>>> > >>>>>> On Sat, Oct 26, 2024, at 10:53, Anton Agestam wrote: > >>>>>>> Hello Kafka devs 👋 > >>>>>>> > >>>>>>> Colin encouraged me in the 3.9.0 RC2 thread to contribute ideas > around > >>>>>> how > >>>>>>> the protocol documentation can be improved. While I have concrete > ideas > >>>>>> on > >>>>>>> this, the current biggest issue as I see it is that new changes > are not > >>>>>>> making it into documentation, and there seems to be a bit of a > general > >>>>>> lack > >>>>>>> of process with regards to this issue. > >>>>>>> > >>>>>>> KIP-893 was a very poignant example of this. It introduces a new > >>>>> concept > >>>>>> in > >>>>>>> the protocol's byte serialization format, none of which made it > into > >>>>>>> documentation. This was extremely subtle and very time consuming to > >>>>> debug > >>>>>>> for me as an author of a third-party protocol implementation in > Python > >>>>>>> that must remain compatible with Apache Kafka. Based on the view > of the > >>>>>>> existing documentation, this flat out looked like a bug. > >>>>>>> > >>>>>>> The Python ecosystem solves this issue by requiring PEPs to have a > "How > >>>>>> to > >>>>>>> teach this section", forcing documentation to not be an > afterthought. I > >>>>>> am > >>>>>>> proposing to introduce the exact same concept for KIPs. I believe > this > >>>>>> will > >>>>>>> be useful for all KIPs, not just those of the sort mentioned above. > >>>>>>> > >>>>>>> For changes to the protocol, I will also suggest that it should be > >>>>>> required > >>>>>>> for specification to be updated _before_ implementation changes are > >>>>>> merged, > >>>>>>> but this should perhaps be a separate discussion. > >>>>>>> > >>>>>>> Forcing us to include a plan for documentation in all future KIPs > is > >>>>>> also a > >>>>>>> solid strategy to incrementally improve documentation over time. > >>>>> Kafka's > >>>>>>> docs are lacking also in other regards not related to the > protocol. The > >>>>>>> proposed change will make sure we have a net positive development > over > >>>>>>> time, towards a greater state of Kafka docs. > >>>>>>> > >>>>>>> Without first ensuring that there is a mechanism like this that > makes > >>>>>> sure > >>>>>>> documentation does not rot over time, it doesn't seem like the best > >>>>>>> investment of time to improve documentation of the current state. > For > >>>>> the > >>>>>>> continued success of Kafka this is highly important because it is > what > >>>>>>> enables a thriving ecosystem. > >>>>>>> > >>>>>>> - Have there been something similar discussed previously? > >>>>>>> - What do you all think of this proposal? > >>>>>>> > >>>>>>> BR, > >>>>>>> Anton > >>>>>>> > >>>>>>> -- > >>>>>>> [image: Aiven] <https://www.aiven.io/> > >>>>>>> *Anton Agestam* (he/him or they/them) > >>>>>>> Software Engineer, *Aiven* > >>>>>>> anton.ages...@aiven.io | +46 704 486 289 > >>>>>>> aiven.io <https://www.aiven.io/> | > >>>>>>> <https://www.facebook.com/aivencloud> > >>>>>>> <https://www.linkedin.com/company/aiven/> < > >>>>>> https://twitter.com/aiven_io> > >>>>>> > >>>>> >