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, 3 Apr 2022 21:44:58 -0400

Pushed a few more updates to that branch this evening (eg metadata
updates so it doesn't think of itself as 'fabric3' or submit Mathias
to emails from folks slavishly adhering to setup.py fields!).

Consider this a standing note to check the actual recent commits for
what is changing, and not to treat my list in the previous email as
canonical :)

On Sun, Apr 3, 2022 at 9:06 PM Jeff Forcier <jeff@bitprophet.org> wrote:
>
> Hello friends! It's been a couple years since the below chat, but I'm
> finally at the point where pulling 'fabric3' back into Fabric's 1.x
> branch is blocking my other plans (namely dropping Python 2 support
> everywhere else). As I didn't find any actual PR filed about this, I
> just soldiered ahead, since it shouldn't be all that much work (famous
> last words).
>
> What I've done so far:
>
> - Made sure I could still test Fabric-primary's "v1" branch under
> Python 2 in a Docker image. Still works! Mostly. Had to post a tiny
> test-only fix.
> - Made sure the tests passed under Mathias' master branch on
> Py2+Py3(.6). Again, mostly! Another test-only fix got us to 100%.
> - Merged the head of v1 (which as noted earlier, was just some bits n
> bobs from 1.14.1 release) into my copy of Mathias' branch. Still good.
> - Gave the result a little CircleCI config since it only takes a
> couple minutes and would be a nice "proof of work" besides "works on
> my machine".
>     - Note that as with my other projects and Fab 2.x, CircleCI only
> does Python 3 - not Python 2. But I don't think anybody was TOO
> worried about the stability of this line on Python 2...
>     - 
> https://app.circleci.com/pipelines/github/fabric/fabric/118/workflows/ea65458b-ccf7-40b0-9b8b-d7107001fbc4
> - Early steps here helped me discover a Python 3.9 compat issue (think
> because they axed the old _dummy_thread allowing 'import thread' to
> work) in a test dependency (fudge) - it doesn't look easily worked
> around
>     - but as it's a test-only dep, I am currently happy just saying
> "test on 3.6-3.8", esp since I don't exactly expect us to post many
> commits to this line going forwards!
>
> For ease of viewing (the compare-only page seems a bit "off", eg
> doesn't show my recent commits) I made this PR:
>
>     https://github.com/fabric/fabric/pull/2205
>
> but I'm expecting to just merge & release it as v1.15 (likely this
> coming Friday-ish) unless somebody points out a Serious Problemâ„¢ I'm
> not seeing. Let me know what y'all think!
>
> Kindly yours, 7 years after the fork,
> Jeff
>
> On Tue, Jun 16, 2020 at 12:16 PM Mathias Ertl <mati@er.tl> wrote:
> >
> > Hi Jeff,
> >
> > On 6/15/20 9:40 PM, Jeff Forcier wrote:
> > > I am definitely willing to merge PRs that add Python 3 compatibility,
> >
> > That's *really* great news. Thanks!
> >
> > > though my assumption was that we'd do it as a single PR that
> > > approximates the diff between the official repo's v1 branch, and
> > > fabric3, and treat it in the changelog/messaging as "were you using
> > > fabric3 from PyPI? Fabric 1.15 is now effectively the same thing! come
> > > on back!!"
> > >
> > > Were you intending to follow some other multi-step process or are we in
> > > alignment here? Open to whatever, as long as there's a good rationale.
> >
> > 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.
> >
> > 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.
> > 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.
> >
> > 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
> https://bitprophet.org



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



reply via email to

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