[Twisted-Python] twistechecker and twisted-dev-tools as part of twisted main repo

Glyph glyph at twistedmatrix.com
Wed Mar 18 04:25:14 MDT 2015


> On Mar 18, 2015, at 1:38 AM, Adi Roiban <adi at roiban.ro> wrote:
> 
> On 18 March 2015 at 05:43, Glyph <glyph at twistedmatrix.com> wrote:
>> 
>>> On Mar 16, 2015, at 2:17 AM, Adi Roiban <adi at roiban.ro> wrote:
>> 
> [snip]
> 
>> I'm approximately -0 on this.  I don't like the idea of dumping a bunch of
>> code into the main Twisted repo that isn't distributed along with Twisted
>> (personally I cannot wait to get rid of the "admin" directory entirely), but
>> I also see your point about the tool being a part of the process.
> 
>>> Twistedchecker  has become an important part of dev process and I feel
>>> that the reviews for this project should be more visible.
> 
>> To be fair we are only just now getting down to a reasonable latency on
>> Twisted reviews, and it is still a fairly small audience reviewing.  This
>> may just lengthen the Twisted review queue :).
> 
> As commented earlier, any tickets which sits idle in the review queue
> for more than 1 week is not reasonable for me
> 
> Some changes in twistedchecker are there to help you with general
> review process so if we land them first future reviews might be faster
> as you no longer have to stop and check for false positives in
> twistedchecker builder.

Annoying issues with twistedchecker are certainly a problem, and I don't want to dissuade you from working on them, but to be honest, they have not been a significant source of blockers for me lately.  I have reviewed plenty of tickets this month <http://twistedmatrix.com/highscores/> and twistedchecker rarely came up.  Now, granted, this is probably partly because of your other recent work, so, it's certainly valuable.

> I don't agree with your priority... but judging by the fact that
> pyflakes patches took so long to land and nobody is pissed of by
> twistedchecker I feel in minority :(
> For me improving the infrastructure and the tools used by the
> developers is more important than the Twisted code itself.
> 
> It seems to me that you are suggesting that we can build a state of
> the art skyscraper with bamboo scaffolding and only use our bare hands
> and later we can look into creating power tools and advanced cranes
> and scaffolding.
> 
> Maybe we are used with the fact that you can only run static code
> analysis on buildbot and for that you need a commit and to manually
> trigger a build by filling a web form and wait 2 minutes for results,
> but this is stone age :(
> 
> pyflakes and twistedchecker should run in less than 1 second on local
> computer. To optimize speed the checker should be smart and only check
> the files which have changes since trunk.

Twisted should also seamlessly parallelize over multiple cores.  It should also have good operational visibility, tracing, and a clearly-documented deployment story.  It does not strike me that any of these are substantially more important than the others.  While the tools aren't great, what I have spent most of my time struggling with lately is how to document things clearly, not tool issues.

> ---------
> 
> What I am trying to do is to convince other Twisted developers that
> tools and infrastructure are important and they should be top
> priority.
> I am advocating for replacing primitive tools.
> 
> The current review process is a pain for new non-commiter
> contributors. Read-only clone of svn, manual patches attached to trac,
> review commend digested into a single comment, new branches created
> for conflicting changes... etc

In my mind, the biggest tools problem is getting us onto a DVCS (which means "git" since git has won the DVCS wars). That means being able to deploy a testing site to make sure we haven't broken stuff, which means a Vagrantfile for braid.  I put in quite a lot of effort improving the state of our build farm earlier in the year, and ops stuff is only so rewarding, so I'm still a little burnt out on that.

If we had a DVCS though, the current conflicts on the logging branch would be easy to resolve, and as it stands they're not.  Many of the other issues you're talking about are hypothetically a big issue but this one is practically affecting progress a lot, since all of the builds are failing and multiple branches now need to be manually rebased.

> Developing good tools take a lot of effort... so does writing good
> tests. Tools should be at least as important as the code or the tests
> . In fact, tests are just a tool to help you develop code.

No argument there.  But there's plenty of testing we don't have either - fuzz testing, for example.  Our performance tests are kind of a mess, and we don't have alerting on performance regressions.  No one of these issues strikes me as obviously the #1 out there, overriding everything else that's going on with the project.

>> So, I do have an alternate proposal - perhaps you should just announce
>> changes to twistedchecker on this list, and land changes to it without
>> review if nobody objects within a week or so.  If you're making changes that
>> are time-sensitive and there is an insufficient community to participate in
>> reviews, then I think it's fair to say that they shouldn't be reviewed.  If
>> anyone objects to the changes that are going in, they can always sign up to
>> do reviews :).  I have implicitly instituted such a process for
>> Twisted-umbrella projects like Imaginary and Vertex, where there are not
>> enough active contributors to sustain development.
>> 
> 
> Beside twistedchecker there are also twisted-dev-tools and the repos
> from twisted-infra organization.
> 
> I am not happy about cowboy / one man show coding. Merging a change
> without a review as this will break things for sure.

I'd definitely prefer more participation but I can't synthesize contributors out of thin air.

> My alternate proposal is to try to raise awareness that good tools are
> at least as important as good tests and have more people reviewing
> code for tools and work on improving the tools and to consider them an
> integral part of the development process.

I am personally unconvinced that this is what I should spend my time doing, just because I already have an already never-ending list of things to work on within Twisted, but I really, really hope you are able to convince many others.  It would certainly make my life a lot easier ;-).

-glyph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20150318/2a3c8d7b/attachment-0002.html>


More information about the Twisted-Python mailing list