fab-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fabric3


From: Jeff Forcier
Subject: Re: fabric3
Date: Sun, 21 Jun 2020 18:04:15 -0400

Well, I'm a bit split:

On the one hand, I just cloned my fork again and ran the test suite with
Python 3.8.3. Only one test fails
(test_network.TestNetwork.test_connect_does_not_prompt_password_when_ssh_raises_channel_exception),
and that error seems fixable. So we could do just what you're saying.

For the record I've been out of the loop lately, so I'm not even sure Paramiko can prove it's Python 3.8 compatible yet :) (something I plan to check on once I am back on top of things, obviously)
 
On the other hand, Fabric3 did see some usage, but certainly not as much
as it should. Some parts I used at work, but definitely not all of them.

Anecdotally, I've seen Fabric3 in a number of requirements.txt, enough that I'm guessing a good number of people have been using it around the ecosystem. Even if your personal 'coverage' of features wasn't 100%, I'd hope that any major issues would have been reported to you by others. Maybe I'm being overly optimistic though.
 
My experience from porting software like this to Python3 is to take it
slow: First fix syntax errors, then fix obvious problems that don't
break compatibility (e.g. imports via six) and so on.

The advantage of the latter approach is that we have some way cleaner
commits and PRs where we can make sure that we don't break anything.

I tend to think of PRs in terms of changelog entries, and for 'step by step' sanity checkpoints within PRs being best served by commits. I don't see the value in public releases with only some Py3 compat merged in (doesn't help anyone wanting to test the py3 support, and I am hoping the process will not take so long that py2 users would have time to kick the tires there). So my natural vision of this was a single PR with a handful of commits, eg one per stage you note here. "No syntax errors", "No import errors", "Got test suite passing" etc. Perhaps slightly more granularity than that, depending.

That said, if you have the time/inclination to drive the process, by all means cut it up into as many PRs as you like (as long as they are easy for me to find & understand how they relate), and if it means I end up merging them all at the same time for a release, no real harm.
 

So in any case let me know what you want :-)

Mat



>
> FYI: I've been intending to migrate our CI from Travis to Circle, which
> may play into the timing of this; however I'll likely only allow that to
> block the merge if the Travis env is broken and needs nontrivial fixes
> (as it seems a waste to spend more time on Travis if I am planning to
> leave). I am /hoping/ to look at that this week.
>
> Thanks,
> Jeff
>
> On Sun, Jun 14, 2020 at 12:32 PM Mathias Ertl <mati@er.tl
> <mailto:mati@er.tl>> wrote:
>
>     Hi Jeff + mailing list,
>
>     This thread unfortunately did not have a follow up that I can see, so
>     whats up with making Fabric 1.x Py3 compatible?
>
>     If I get a statement from you that you're willing to merge PRs that
>     start with py3 compatibility, I'm willing to start working on this, or
>     of course maybe za3k wants to work with this, I'm willing to help him
>     get started (I have ported many older Py2 projects to py3 at my old
>     job).
>
>
>     Mat
>
>     On 5/27/20 5:50 PM, Jeff Forcier wrote:
>      > Hi all, and thanks for putting this together, Zachary.
>      >
>      > Just to chip in with my own context:
>      >
>      > - I'd been pondering making this connection myself lately (due to
>     the
>      > delays in getting Fabric 2 to parity and now Python 2's official
>     EOL). Hi!
>      > - Fabric 1.15 was IIRC a single small feature-add, so if there
>     are no
>      > big changes on the fork besides just the Python 3 compatibility,
>      > unifying them should still be relatively easy, mechanically speaking.
>      > - As stated earlier on the list, my main concern with the Py3
>     compat is
>      > that Fabric 1's test suite doesn't have as high a % coverage as
>     I'd like
>      > (one of many impetuses for v2) but at this point I'm guessing
>     fabric3's
>      > usage has been widespread enough, for long enough, that any
>     serious bugs
>      > have already been found.
>      >    - Curious what, if any, you ran into though - Paramiko went
>     through
>      > quite a lot of instability in its own Py3 journey...
>      > - Re: the fabric3 name on pip - no rush on figuring that out, for
>      > multiple reasons.
>      >    - At the VERY least we would need to wait til stats show most
>     users
>      > of fabric3 had migrated to either post-merge fabric1, or fabric2.
>     Not in
>      > a rush to pull the rug out from under anyone.
>      >    - I'm hoping that Fabric 3.x, 4.x etc will be non full
>     rewrites and
>      > thus there will be no need for in place side by side upgrades -
>     which
>      > was the only real reason to even need a 'fabric2' on pypi (and,
>     thus,
>      > ever a mainstream 'fabric3')
>      >    - By the time we get there I'd mostly be concerned about user
>      > confusion (intending to get 'fabric==3.x' but installing 'fabric3'
>      > instead) but that is likely a ways off!
>      >
>      > Best,
>      > Jeff
>      >
>      > On Tue, May 26, 2020 at 6:02 PM <za3k@za3k.com
>     <mailto:za3k@za3k.com> <mailto:za3k@za3k.com <mailto:za3k@za3k.com>>>
>      > wrote:
>      >
>      >     Hi / tag Matthias! I've been talking to the fabric mailing
>     list (cc'd)
>      >     and the fabric developer bitprophet (cc'd). The subject is adding
>      >     python3 support to fabric 1.x (even though 2.x is the latest) as
>      >     part of
>      >     making an official package.
>      >
>      >     bitprophet, the current state is that this is forked off
>     1.14.0, only
>      >     one version behind the latest, and I see no feature additions or
>      >     changes. It's been marked DEPRECATED for a year because 2.x added
>      >     python3 support.
>      >
>      >     mathiasertl, I'd like to merge your fabric3 work into fabric. No
>      >     issues,
>      >     right?
>      >
>      >     Also, bitprophet has mentioned that might be helpful there
>     wasn't a
>      >     pre-existing 'fabric3' pip package out of his control, in case of
>      >     future
>      >     difficulty/confusion with a fabric 3.0 release--I'll leave
>     ya'll to
>      >     talk
>      >     that out.
>      >
>      >
>      >
>      > --
>      > Jeff Forcier
>      > Unix sysadmin; Python engineer
>      > http://bitprophet.org
>
>
>
> --
> Jeff Forcier
> Unix sysadmin; Python engineer
> http://bitprophet.org


--
Jeff Forcier
Unix sysadmin; Python engineer
http://bitprophet.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]