24 hours is a perfectly reasonable response latency, don't worry about it :).
This email was written after said conversation as an explicit attempt to ask about just that, so, there you go :).
Actually yeah, "regex" is just a curse-word here :). It's the emitter I'm complaining about, anyway, not the parser, so deriding it as a "regex" is in no way accurate.
Where?
On <
http://twistedmatrix.com/trac/ticket/5312> I see exactly one un-answered question in your review response, "Is re-raising the exception enough here? Or should I do something entirely different?" Except it never actually got back into review, so it never got bubbled back up to get attention for an official response.
Like I said, I see one un-answered question. On a ticket which is not in review: according to the development process, that means you still think you have some stuff to do on it, and it's not ready for anyone to take a look at it yet. If you want a response, put it into review and someone will look at it as soon as time allows. Or post here. A comment on a ticket doesn't necessarily show up in anyone's in-box and won't necessarily get a response that isn't a code-review.
The word "version" does not appear on 4500 at all, and on 5312 the only comment you make related to versions is you saying "Not sure which direction to go here. Deferring to sometime not the middle of the night". It's exarkun asking the question about the versions though, not you :).
Sorry to be overly pedantic here: I'm not trying to assign blame, since that is fairly pointless now. I'm just meaning to say that, based on what I see here, I am wondering what we could have improved. I know we chatted on the mailing list, and in person, as well as on the tickets, so not all of this is necessarily public or even written down, but it really seems like you developed an impression of having to repeatedly ask questions and argue about things far more than you actually did :).
The release stuff was new-ish at the time, and is obviously not super publicly documented (it's for "internal" use only on Twisted itself right now). So it's understandable that it didn't get communicated well, but it hardly seems like a reason to tank the whole process.
That part of the conversation, at least, jives with my understanding :).
My reasoning goes like this: the ticket for the release tools is still not in review, so you must be waiting for something to re-submit it. It looks like you responded to the code, so the only thing I could think you were still waiting for would be for the lore sources themselves to be ready.
Yeah. Ugh. I hate that part of that wiki page. But that part can be Tom's problem, since he's responsible for the buildbot :).
Where and how did you ask people to comment on the ticket? I don't recall being asked, and I tend to be pretty good about leaving prompts like that in my inbox until I've done what was asked. (Not *perfect*, of course, and if you asked a list then there might have been some bystander effect.) It seems like we might have avoided this whole mess if you had just attached the 'review' keyword :).
As I recall, we discussed this process in person at PyCon and you were quite keen to just check the documentation in in a broken state, and fix it all up in one gigantic branch while nobody did any Lore work. To be fair, when I described the problems this would create, you did agree that we shouldn't do it that way.
The only "cycle" I can either see on the tickets or recall here is where the release tools didn't come in to the initial plan.
OK. I can believe that this did not happen. One problem is that we (the inner-circle old-school Twisted developers) tend to engage in conversations about how a thing might be done while at the same time we discuss what must be done. And we also tend to discuss what policy is (or what all or some of us believe it ought to be in some case, further confusing the issue) without making explicit what the purpose of that requirement is.
I would ask the community to help us with this by doing a couple of things.
If somebody says "X is policy", always ask for a link to it. If there is a link, it'll help you understand it better. If there isn't a link, then the authority telling you it's "policy" might just be remembering that it's the way we've done things since forever and of course it's a good idea. There are definitely things that I have thought were in the coding standard that are not actually written down anywhere, on more than one occasion.
If a meandering discussion is happening - here, on the mailing list, on the ticket - never be afraid to break it up and separate out the different concerns which are being discussed: what is necessary for compliance with our development process, what would be a good idea from a design point of view, how the work might be broken up to get through review more manageably, what other concerns are in play.
Especially, if you ever see a code review where a reviewer says "I think..." without making it clear what you should do, you should always ask, 'is this a requirement of the review or just some thoughts you have'.
There's also the problem of "I think you should..." being interpreted as "You must...". It is very hard to consistently separate design feedback from code review, although we try very hard; but, it's hard to separate it out when reading it as well. So one important point to keep in mind is that, as the author of a proposed change, outside the things that are agreed upon policy consensus, you always have some degree of discretion to disagree with a reviewer. And you should freely do so when submitting anything for re-review. It's best to just do this as quickly as possible, so that it gets back to the reviewer without a whole lot of delay, and they can respond with either "I still disagree, but you're doing the work, so OK go ahead" or "No, you really have to do this, it's required by policy document X, here's a link" ;-).
Well yes, that was the point of the apology. That was a rather important thing. What I was probably going to say was just:
Experience just teaches it that it's not done yet. And experience has taught us that about every change, and it was right up until the exact moment when it wasn't right any more ;-).
Your understanding of this requirement is slightly off, I think, although possibly the consequences are the same. As per the difficulties I laid out above, about separating the requirements from the strategies for satisfying said requirements.
The thing that we weren't going to tolerate was any message saying that people should hold off on writing documentation, even for "a little while" while we fixed up the lore conversion, because without a contractual obligation for someone to finish this work, there's really no telling how long "a little while" would be :). Since the whole point of this sphinx conversion is to appeal to documentation authors who prefer the ReST format as input (it's definitely not to make the docs look nicer, writing a new stylesheet for Lore would have taken 1/100th of the effort and nobody has expressed interest in doing that), creating a period where things were even *less* appealing to documentation authors would defeat the purpose.
Another possible solution to this problem would be to modify Lore so it could process ReST sources, so that we could convert the documentation within the repository piecemeal, and start writing any new docs in ReST, but still have a coherent whole of documentation produced, eventually switching the documentation processor from Lore to Sphinx.
Yet another possible solution would be to modify Sphinx, adding a plugin to process the Lore sources.
As an aside: this is the part of the process which has been so frustrating to me, personally. The two alternate solutions I proposed here (and have proposed before) seem far saner and more manageable in terms of effort, to me. But, everyone I have spoken to about docutils and ReST has told me in no uncertain terms that they are both a pile of heinous hacks that resist any attempt at sensible software-engineering solutions to problems, so we need to resort to hackish system-integration stuff like what we've done. This worries me.
I know that Sphinx's output is well-loved by the Python community, but if it's so hard to call into that we can't reasonably modify it to get an XML DOM that looks like Lore source to Lore, and it's so hard to plug in to it that we can't give it a data structure that it likes from Lore's XML DOM, then how the heck is it being maintained? And if it actually *isn't* that bad, then why haven't I managed to find someone that knows its code well enough to do one or the other of these things?
I have no direct knowledge of any of this stuff, because my main interest here is improving the experience of working on Twisted, both for you, Kevin, and for the people who will arguably be helped by the use of Sphinx. Maybe I'm completely wrong and Sphinx is beautifully architected and we could have done this from day 1. But I faintly hope that some Docutils and Sphinx contributor hears that I said "sphinx is garbage" and makes a fool of me by contributing either a lore modification or a sphinx plugin which solves this whole problem so we can do the format or tool migration incrementally :).
Hmm. I wasn't aware of that. But it seems like it's running by a charm now.
Yup. (ePub? PDF is so last-century... :))
So, this wasn't *necessary*. If we had gotten through the release automation stuff - and I still don't understand why that's stuck - we could have merged it.
It seems the saving grace here is that rstgen might be a generally useful tool in its own right, with more of a long-term future than lore2sphinx would have had.
Have a link?
Sounds like a worthy goal, although I don't think this is necessarily required. Have you been working on it for the last 2 years? Do you have any idea when it might be done? It might be worthwhile to write a *smaller* .
Cool.
While this would be handy, especially for people working on documentation branches, it's not necessarily necessary.
OK.
This is really the crux; this is the thing you should work on first, I think, even if you're going to keep working on lore2sphinx-ng. Basically the only reason that I was keen to get the lore to sphinx conversion improved in the first place was that creating this tool seemed to be dragging on for quite a while after the "chunk tickets" were done. But now, this tool is almost done, and we could re-do the lore-source review if you wanted to do that. The current lore2sphinx might well be good enough to just go with, especially if the next-generation version is going to take another six months to finish.
OK, *this* sounds like really unnecessary turd-polishing ;-). This builder is an interim step; the more interesting step is the builder that just builds the sphinx docs, in the same way that the current builder builds the lore docs. Furthermore, it seems to be working fine. Build results links that go nowhere are a known problem with buildbot, since it does eventually lose most history, and this type of history takes up a fair bit of disk space.
This decision is really determined by time estimates.
In any case, work out the sphinx release automation tool first, since we need that regardless of how we switch over.
You might want to send a considerably shorter message just enticing other list members to have a look at maybe help out with that stuff :).
Aesthetically, this appeals to me a lot more than going with the messiness of lore2sphinx. But it is _not_ a requirement.
I think a little false urgency might not hurt here :-). I'm not going to work on the tool - just writing these emails probably blew my Twisted development budget for the next two months ;-) - but I will do my best to quickly clear up any procedural what-needs-to-be-done questions unambiguously. Please ping if anything gets you stuck.