Re: [Twisted-Python] SMB server component for twisted

2020-05-14 Thread Glyph


> On May 14, 2020, at 5:23 PM, Wilfredo Sánchez Vega 
> mailto:wsanc...@wsanchez.net)> wrote:  
> On May 7, 2020, at 12:48 AM, Glyph 
> mailto:gl...@twistedmatrix.com)> wrote:
> >  
> > If you want to include it in Twisted itself, your best bet is to actually 
> > develop it within twisted, as a series of small contributions, rather than 
> > as one gigantic one-shot one. Contributions over, say, 400 lines, take 
> > exponentially longer to review.  
> >  
> > Developing it within Twisted will make things go slower; you'll need to get 
> > everything code reviewed, you'll need to support multiple versions of 
> > Python (no py2 any more, but py3.5 is still pretty old), you'll have to 
> > have full test coverage from the get-go. But doing these things from the 
> > start is much easier than trying to retrofit them.  
> >  
> > I actually think that this would be a pretty good fit for Twisted, in the 
> > same way that it's been a benefit to have Conch maintained alongside the 
> > rest of Twisted. I can see you're developing things very much in line with 
> > Twisted's architecture (using cred for authentication, a realm interface, 
> > etc) and you've voiced this interest, so it would be great to have you 
> > along!  
> I think it's great to get an SMB implementation in the Twisted org, but why 
> would we even consider adding something like this to the main Twisted 
> project?  

Just practically speaking, we've tried both approaches, and (very broadly 
generalizing) this one works and the other one doesn't.  

Separate projects that have been adopted from outside after they gained some 
traction are doing okay (i.e. Treq and Klein, some of the most popular 
applications for Twisted). But others (txacme) are suffering from a lack of 
maintenance and still others (ldaptor) just have a largely non-overlapping 
community and hardly benefit at all from org membership. And as you've noted, 
even the ones doing their best often want for reviews for far longer than 
Twisted's own latency.  
> The main repo is large, and including Twisted in your project brings along 
> far more functionality than you are likely to use, and packages are a fine 
> way to get the functionality you want, so what's the logic for including a 
> new thing in Twisted proper?  

Abstractly you make a plausible case. Concretely we tried to start splitting 
things up on the axes of protocol support and it just made a giant mess and 
created lots of overhead for the project. Modern infrastructure makes this 
slightly easier (last time we tried to start this process we didn't have a 
Github or a Travis), but not much easier. And even modern, better 
infrastructure leads to an avalanche of tedium as we copy CI configuration back 
and forth endlessly, replicating lessons that we learn about travis, and azure, 
and codecov, and (ad nauseam)  

Even in the abstract case though there’s a question of what twisted “is” and on 
what axes it should be split up. I think splitting up by protocol was largely a 
mistake, but splitting some of the really low level core stuff out (towncrier, 
automat, and hopefully filepath and deferred) has been pretty successful and 
worthwhile. Particularly in a post-asyncio world, the core event loop isn’t 
super interesting and the broad protocol support is the appeal.  

So even in the abstract case, there’s a case to be made that twisted is a bunch 
of implementations and interfaces for wire protocols that involve navigating 
hierarchies of things (DNS, HTTP, IMAP, SFTP) and SMB fits right in there.  
> You cite Conch above, where I'd actually argue that Conch should be moved to 
> a separate repo. Am I crazy?  

Not crazy, there's a valid case to be made, but Conch has received a tremendous 
amount of routine maintenance keeping it up to date with Twisted and Python API 
evolution by members of the project who would almost certainly otherwise not 
bother, just to keep the test suite going and the project as a whole 
integrated. This allows it to remain viable for the much smaller number of 
SSH-specific contributions that come along.  
> That said, a counter argument is that projects in the Twisted org suffer 
> greatly from poor participation and strict development rules, resulting in 
> glacial progress. It's not unusual for me to have a PR take 6 months to a 
> year to get a review (I have two right now that have been waiting since 
> November), and perhaps such PRs would get some attention in the main repo. 
> But I think that's an unfortunate way to address that problem.  

This is just a natural consequence of affordances provided by the tooling we 
presently have. Personally I look at the global queue of pull requests across 
all these projects and it's kind of exhausting. I don't think many other people 
do. Case in point: how many ldaptor or txacme reviews have you done since 
November? This is not to throw any shade; I’m not saying you should have, but 
it illustrates that right now, separate repos 

Re: [Twisted-Python] SMB server component for twisted

2020-05-14 Thread Wilfredo Sánchez Vega
On May 7, 2020, at 12:48 AM, Glyph  wrote:
> 
> If you want to include it in Twisted itself, your best bet is to actually 
> develop it within twisted, as a series of small contributions, rather than as 
> one gigantic one-shot one.  Contributions over, say, 400 lines, take 
> exponentially longer to review.
> 
> Developing it within Twisted will make things go slower; you'll need to get 
> everything code reviewed, you'll need to support multiple versions of Python 
> (no py2 any more, but py3.5 is still pretty old), you'll have to have full 
> test coverage from the get-go.  But doing these things from the start is much 
> easier than trying to retrofit them.
> 
> I actually think that this would be a pretty good fit for Twisted, in the 
> same way that it's been a benefit to have Conch maintained alongside the rest 
> of Twisted.  I can see you're developing things very much in line with 
> Twisted's architecture (using cred for authentication, a realm interface, 
> etc) and you've voiced this interest, so it would be great to have you along!

  I think it's great to get an SMB implementation in the Twisted org, but why 
would we even consider adding something like this to the main Twisted project?

  The main repo is large, and including Twisted in your project brings along 
far more functionality than you are likely to use, and packages are a fine way 
to get the functionality you want, so what's the logic for including a new 
thing in Twisted proper?

  You cite Conch above, where I'd actually argue that Conch should be moved to 
a separate repo.  Am I crazy?

  That said, a counter argument is that projects in the Twisted org suffer 
greatly from poor participation and strict development rules, resulting in 
glacial progress.  It's not unusual for me to have a PR take 6 months to a year 
to get a review (I have two right now that have been waiting since November), 
and perhaps such PRs would get some attention in the main repo.  But I think 
that's an unfortunate way to address that problem.

-wsv

___
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python


Re: [Twisted-Python] [RFC] Drop support for Python 3.5 sometime after May 2021?

2020-05-14 Thread Glyph


> On May 14, 2020, at 3:55 AM, Amber Brown  wrote:
> 
> 
> 
> On Thu, 14 May 2020, at 16:54, Glyph wrote:
>> 
>>> $ /usr/bin/python3
>>> Python 3.7.3 (default, Apr 7 2020, 14:06:47)
>>> [Clang 11.0.3 (clang-1103.0.32.59)] on darwin
>>> Type "help", "copyright", "credits" or "license" for more information.
>> import sys
>> sys.executable
>>> '/Applications/Xcode.app/Contents/Developer/usr/bin/python3'
>> 
> 
> wow thanks I hate it

ITYM 'Wow thanks I hate it.app'

-g

___
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python


Re: [Twisted-Python] [RFC] Drop support for Python 3.5 sometime after May 2021?

2020-05-14 Thread Amber Brown


On Thu, 14 May 2020, at 16:54, Glyph wrote:
> 
> > $ /usr/bin/python3
> > Python 3.7.3 (default, Apr 7 2020, 14:06:47)
> > [Clang 11.0.3 (clang-1103.0.32.59)] on darwin
> > Type "help", "copyright", "credits" or "license" for more information.
> > >>> import sys
> > >>> sys.executable
> > '/Applications/Xcode.app/Contents/Developer/usr/bin/python3'
> > >>>

wow thanks I hate it

> -g
> 
> ___
> Twisted-Python mailing list
> Twisted-Python@twistedmatrix.com
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>

___
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python


Re: [Twisted-Python] [RFC] Drop support for Python 3.5 sometime after May 2021?

2020-05-14 Thread Glyph

> On May 13, 2020, at 11:13 PM, Amber Brown  wrote:
> 
> On Thu, 14 May 2020, at 16:09, Hynek Schlawack wrote:
>> 
>> 
>>> On 14. May 2020, at 07:04, Amber Brown (hawkowl) 
>>>  wrote:
>>> 
>>> - MacOS doesn't ship a Python 3, but homebrew/python.org offer 3.8 easily.
>> 
>> FWIW this is not true anymore. Catalina comes – for all its faults – 
>> with Python 3.7:
>> 
> 
> *puts fingers in ears* sorry I can't hear you, I'm in my happy place where I 
> don't have to think of software in ".framework" folders la la la la

Oh hawkowl.  Either you die an a.out, or you live long enough to become a .dylib

>  But, it's good to know, anyway. 

Unfortunately it's only kind of true!

$ /usr/bin/python3
Python 3.7.3 (default, Apr  7 2020, 14:06:47)
[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.executable
'/Applications/Xcode.app/Contents/Developer/usr/bin/python3'
>>>

You can also get one from /Library/Developer/CommandLineTools/usr/bin/python3 
if you do `xcode-select --install` but it's not present in the macOS base image 
and you can't use it from applications.

-g

___
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python


Re: [Twisted-Python] [RFC] Drop support for Python 3.5 sometime after May 2021?

2020-05-14 Thread Amber Brown

On Thu, 14 May 2020, at 16:09, Hynek Schlawack wrote:
> 
> 
> > On 14. May 2020, at 07:04, Amber Brown (hawkowl) 
> >  wrote:
> > 
> > - MacOS doesn't ship a Python 3, but homebrew/python.org offer 3.8 easily.
> 
> FWIW this is not true anymore. Catalina comes – for all its faults – 
> with Python 3.7:
> 

*puts fingers in ears* sorry I can't hear you, I'm in my happy place where I 
don't have to think of software in ".framework" folders la la la la

 But, it's good to know, anyway. 

- Amber

___
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python


Re: [Twisted-Python] [RFC] Drop support for Python 3.5 sometime after May 2021?

2020-05-14 Thread Hynek Schlawack


> On 14. May 2020, at 07:04, Amber Brown (hawkowl)  
> wrote:
> 
> - MacOS doesn't ship a Python 3, but homebrew/python.org offer 3.8 easily.

FWIW this is not true anymore. Catalina comes – for all its faults – with 
Python 3.7:

❯ /usr/bin/python2

WARNING: Python 2.7 is not recommended.
This version is included in macOS for compatibility with legacy software.
Future versions of macOS will not include Python 2.7.
Instead, it is recommended that you transition to using 'python3' from within 
Terminal.

Python 2.7.16 (default, Feb 29 2020, 01:55:37)
[GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc- 
on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D

~ took 6s
❯ /usr/bin/python3
Python 3.7.3 (default, Apr  7 2020, 14:06:47)
[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
___
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python