On Feb 21, 2022, at 6:40 AM, Jean-Paul Calderone <exarkun@twistedmatrix.com> wrote:

On Sun, Feb 20, 2022 at 1:44 PM Chris Withers <chris@withers.org> wrote:

On 16/02/2022 17:41, Jean-Paul Calderone wrote:
>
> On Fri, Feb 11, 2022 at 5:36 PM Jean-Paul Calderone
> <exarkun@twistedmatrix.com <mailto:exarkun@twistedmatrix.com>> wrote:
>
>     I know that you can hack around this situation roughly like this:
>
>     python -m coverage run -m twisted.trial ...
>
>     but this has some shortcomings.
>
>      1. If trial --coverage exists shouldn't it be the *good* option?
>      2. python -m coverage run -m twisted.trial -jN ... is a bad time.
>         How about some coverage measurement that's multi-core friendly?
>         It's a /real/ drag going from a 30 second no-coverage test run
>         using 16 cores to a 15 minute coverage-measuring run on a single
>         core.
>
>     Does anyone agree that this is something short of an ideal
>     situation?  Is anyone interested in helping address it?
>
> Anyone?

At this point, it feels like any available energy could be more usefully
employed in getting a pytest plugin that really supported the Twisted
reactor in place. Re-inventing wheels like coverage just doesn't seem
sensible at this point.

Thanks for this input Chris.  Personally, I have no interest in pursuing work on integrating Twisted and pytest at this time - so I'll leave that to others (given the number of other posts in this thread that are about pytest and not trial, I suppose there is interest in that direction).

Considering the lack of posts from people interested in doing the work on trial (but thanks, glyph!) for now I will conclude that indeed trial does not have much of a developer community behind it - so I will probably not immediately make plans to undertake any serious efforts to maintain or improve it myself (since I doubt that I have the resources to meaningfully accomplish the necessary work on my own).

I’m in a similar place myself. I could probably put more effort forth if we could get a bit more of a small commitment from more other developers.  I do not want to spend my time as a full-time unpaid twisted maintainer, or simply slogging through reviewing old tickets while never developing any interesting new features myself.  But, it seems like unless I do, then my own feature development will simply languish forever at the end of a year-long queue.

It makes me wish we could have a sort of open source mutually-assured maintenance system, where we all put in some number of hours and get some small reward (like bragging rights, a little badge?) out of meeting that commitment.  But that also requires some volunteers[1] to go build it.

This trial maintenance is also something I’m definitely interested in, but I don’t think just a small commitment from me and JP would be quite enough to get it somewhere meaningful.

[1]: not me

I've noticed trial itself routinely leaks failures across tests,
resulting in some random test down the line spuriously failing. I've
hacked up tooling to run `trial -u` for 10s for each test case to try
and find these happening, but feels like something the test runner
should really cater for.

This is neither here nor there but this sounds like what `--force-gc` is for and I've almost always had success attributing a failure to the correct test using this flag.  This is exactly the kind of poor developer experience that I would love to work with a team of folks on improving, though.

Yeah, Trial could absolutely be more discoverable.  And probably have some more facilities for managing leaks of global reactor state, to make it clearer what’s going on when you get this sort of inscrutable mess of a failure.

I guess a lot of this, and indeed a non-testing use case I have, would
be served be asyncio-style event loops rather than one single monolithic
and unrestartable reactor.

The fact that trial shares its reactor with test code is another area where trial is lacking, certainly.
 

This isn't meant to come across as negatively as it may well seem;
there's a reason I haven't ripped Twisted out of the major project I'm
involved in where it's used, but Twisted as a whole and trial in
particular really are feeling their 20yrs of age ;-)

I'm not sure this is so much about age as about lack of interest and lack of maintenance.  I am certain that Twisted as a whole and trial could quite readily have many of their rough edges smoothed out - if only anyone cared to try.

I think it’s more about the trying than the caring.  I get the sense that folks do still care about Twisted but most of the core people are quite busy.  So is anyone waiting out there in the wings interested in doing some more of the day-to-day of just reviewing tickets, responding to contributors, and keeping discussions like this one going?  i.e. recording mailing list & chat consensus on tickets, checking to make sure PRs are getting updated, etc?

I know the project has a bit of an intimidating reputation due to some of its more complex areas, but quite a lot of what needs to be done here is quite simple and could be a great learning opportunity.

-g