Hi Kevin! Long time no see! (Too long, obviously!)
I do remember this. The previous output of lore2sphinx really was unreliable enough that it was creating a never-ending treadmill of irrelevant / unpredictable Lore source fixes that were really dragging the whole process out. Thanks for working on improving it.
More discussion on this list would be almost always be better. We are a *long* way from too much traffic here. (And, this update is honestly a surprise to me.)
Based on this exchange, my understanding was simply that you had started to try to improve lore2sphinx, but then wandered off again.
OK. Let's move things along then. Several people showed up on IRC yesterday and voiced an interest in helping out, although what to do next - especially what to do next for a new contributor who does *not* want to try to reverse-engineer the conversion itself - needs to be made much, much clearer.
Communicate constantly. The biggest objection that _I_ have to getting the conversion done at this point is that the people working on it (well, okay: you) are uncommunicative, unreliable and frequently unavailable. ;-) If you were just keeping us all up to date - even just to complain! - I'd be much more sanguine about the whole thing. And apparently some of your misconceptions would have been corrected a lot earlier.
It does not have to take a billion years. The criteria ought to be clear - and if they aren't, you should have asked for clarification :).
Let's be specific: <
http://twistedmatrix.com/trac/ticket/5312> is in need of some final code-review. Despite several reviews and an apparently extensive final response pass, it's not currently in review, which means it's still in your court for some reason. There is no reason to hold back on this and try to do *everything* in one big bang: this code just needs to be production-quality and land on trunk _before_ the ReST sources themselves are ready to go.
Once that's done, then it's a matter of putting <
http://tm.tl/4500> into code-review with the output of the lore2sphinx builder. That review can be somewhat expedited, and can be done in parallel by lots of people since there are no unit tests to be worried about, and formatting fixes can be done quickly by multiple people, we don't need a big formal code review.
Let's not under-state the problem: thanks to the jaw-droppingly weird arbitrariness of the ReST format, "extraneous spaces" can mean "arbitrarily mangled output". But no, even these "warts" were not enough to block adoption. What blocked adoption is that the painstakingly hand-tweaked lore sources that did not have any more "warts" were left to languish (and bit-rot, and now probably require more manual fixing) while we waited for 2 years for someone to actually finish the sphinx development and release management tools and get them finalized. As I recall we basically finished fixing them all up, at the time.
There were three reasons that I personally kept pressing for a more thorough lore -> sphinx converter. One is not necessarily necessary.
First, and most importantly, is the bit-rot problem: people are working on lore docs in parallel with this effort. And, despite this exchange, I want to be clear that they should keep doing so: nobody should stop working on docs in the meanwhile, since we have no way to tell how much longer this will take. Looking at the modified docs on the sphinx buildbot is challenging, and keeping track of random whitespace jiggling is not documented on <
http://twistedmatrix.com/trac/wiki/ReviewProcess#Reviewers:Howtoreviewachange>. *I* can't even remember how to do the math to associate one of the results in <
http://buildbot.twistedmatrix.com/builds/sphinx-html/>. And now that there have been so many changes (as I predicted there might be) we have to figure out what's changed, and re-review to make sure that everything (or at least a big enough majority of everything) is OK to go to trunk. If the tool itself could be verified to produce correct output for all the cases we've encountered where it falls over, we wouldn't have to do this manual verification step; we could just trust that it was right, because it has tests that indicate it's correct. Of course it's possible there might be *some* corner-case it still doesn't handle and that we didn't find, but if the tool is known to be broken in a large number of cases that we just have to magically know to avoid, then it's likely people will keep unknowingly re-introducing those problems.
Second, there are going to be some doc patches in-progress whenever the cutover happens. Now, this is a bit less of a concern, because we can just manually translate one or two paragraphs to the new markup if necessary. But it would still be nice to have a tool that does the job well enough that someone could grab the buildbot output for an in-progress doc fix and keep working on it without having to learn how to re-express everything in Sphinx first.
Spot-checking some of the output now, it seems like the tool must have been upgraded, or we've been lucky, since I can't spot any obvious bit-rot (and I could swear the docs look a lot less grody; the problems I mentioned there). So maybe you've already addressed these problems, or they're not actually that serious any more. But, as I said in the first point, spot-checking isn't enough.
By 'actually wanted to' you mean 'be willing to abandon the development process for this one thing'.
We do not abandon the development process. Every past attempt at doing so to facilitate some feature has been a road to ruin. Although this process has been frustrating for you, I am still happier with the current outcome (Twisted has perfectly functional documentation in our downloads and on our website) than with the alternative (create a situation where we could not produce a release for two years because the tools were languishing unfinished while we waited for you to say something about it).
I'm sorry that this has been a frustrating process for you. And I'm not just saying that to be polite: I genuinely *am* sorry that our communication has not been clear, and that we have had wasted effort all around because of that. But I am fairly sure that we have had basically the same requirements for this process from day one. Let me state them here:
- We need to have release-automation tools that allow developers to produce a release, including documentation. These tools need to be subjected to the same development process as the rest of those tools, which is to say the same process as for the rest of Twisted.
- The documentation itself needs to be able to be generated from any version of trunk. While one or two formatting snafus are acceptable to be fixed after the fact, the documentation needs to be in a comprehensible state in every revision of trunk, which means that in order to land on trunk, the ReST output.
Really, most of the work has been done here already. The docs appear to be in a mostly-workable state. lore2sphinx looks like maybe it's doing a good enough job, maybe better than the last time I looked at it. The _major_ hang-up is getting the release management tools over their final hump and just driving the trac tickets to completion. With Tom keeping the review queue basically empty right now, this is an excellent opportunity to get that done.
It may make sense to schedule an event where we all show up on IRC, everyone claims a documentation component, and we all do a final review pass to make sure that the formatting problems aren't too bad before going to trunk with the cut-over. This pre-supposes that the release/building tools are done and on trunk though.
All right! I hope this exchange has gotten some people fired up to cross the finish line. It's surprisingly close! Thanks for updating us, Kevin - better late than never :).
-glyph
P.S.: apologies for any errors. I didn't even really have the time to write this email, let alone copy-edit it.