PyCQA / baron

IDE allow you to refactor code, Baron allows you to write refactoring code.
http://baron.pycqa.org
GNU Lesser General Public License v3.0
289 stars 50 forks source link

Expanding commit rights? (Re. unmerged PRs) #134

Closed msegado closed 6 years ago

msegado commented 6 years ago

Thanks for your work on this project! A question/suggestion: would you consider granting commit rights to more people to help the project move forward? There are quite a few PRs for Python 3 support that have been open for ~9 months without activity (#108, #113, #114 #115, #116, #118, #119, #120, #126) and it would be great to have support for some of these features in a release.

@odcinek seems like a good person for the job if he's willing, seeing how most of the PRs are his...

/ping @Psycojoker [With apologies to psychoJoker who I pinged by accident before editing...]

boxed commented 6 years ago

I second this. It’s extremely frustrating that this project is de facto abandoned. I’m currently thinking I need to create a fork which seems silly.

msegado commented 6 years ago

(pinging @Psycojoker again in case I messed it up with the typo the first time)

Psycojoker commented 6 years ago

So, I guess it's time for me to come out of the wood.

So, maybe to give you a little bit of context before answering this ticket if that interest you (you can skip it otherwise) on why I've mostly stopped answering here.

To make the long story short: I've made the worst burnout of my life on that project, I'm going to skip you the details but it was not pretty at all. Then I healed up partially, after months, managed to rewrite the proxy list (ironically one of the most complex and annoying to write part of RedBaron) with some suffering months later. Life changed, did a shitload of things, did another burnout (yeah...), though I had healed up (no), start a job that was supposed to be cool, got destroyed by it because boss was a human disaster and we are here today one year later where, I think I healed up. (I did managed at some point to merge some PR)

(Red)Baron is one of those so complex project that if you want to moved it like I did you need to fully commit to it, it has been something that I didn't managed to do again because of my mental health, life change, procrastination and this painful gut feeling that you get when you get back on something that hurt you that much (if you had a burnout you know what I'm talking about).

Also working again on something that has hurt me that much after finally feeling good again wasn't something I was the most motivated to do.

I should have (and should?) probably find a way to get paid to work on it (job, mission, patreon, I don't know) (yeah, I didn't made a single penny doing this project) but at that time the project was mostly unknown which for whatever reason is not the case anymore. (and I didn't got much feedback from my attempt at promoting it but I wasn't connected to the right crowd I guess).

Because the ironic part of the story is that RedBaron started getting users ... years after I've totally burnout on it (mostly out of nowhere since I've totally stopped promoting it or I might have missed someone starting making promo of it?)

Anyway.

Regarding expanding commit rights that's something tricky to do: that's a very complex project, not especially at the code level (except some parts) but because of how super impacting are design decisions, you sadly don't design a syntax tree like that :/

I've been looking at a good part of those review some time ago but from my memory I was sadly not satisfied with how they were designed or finished :/

Finding people with this level of design (that can be learned of course) that I can trust takes time, time I haven't put in it yet.

So I'm going to finally get a look at those PRs and make a release (or more, splitting the task) to find out if I still manage to work on that project (yay.) and try to think about expanding commit rights along the way. If I fail I'll consider other plans.

Gosh, that was not fun to write.

boxed commented 6 years ago

I'm sorry to hear that! And I'm sorry we've all been hounding you when you've had a difficult time. Obviously we didn't know :(

For my personal use case it's enough that baron can roundtrip python3.6(7?) so I don't really know what you allude to about those finer details on design. I'm also more of a gung ho kind of person so I think it's ok to break stuff if you're unbreaking more than you're breaking.

I also have a little bit of experience adding contributors to a project I started. My experience is that when you give people commit rights they step up their game on changes quite a bit.

Also, the reason I need baron is for my mutation tester, so I can absolutely put in some mutation testing time to make the test suite rock solid :P

I'm going to go ahead with my fork for the time being. It might just be an experiment and might just be code that isn't good for much except for my use case in mutmut, but that's fine by me.

msegado commented 6 years ago

@Psycojoker,

Thank you for putting so much effort into your reply despite all that's been going on, and I'm sorry it's been so tough — burnout is definitely a serious issue affecting open-source maintainers, and I definitely don't want to add to your burden any more than I've already done! I appreciate the many hours of effort you've put into creating this software, free of charge, for my and others' benefit, and you have absolutely no obligation to me to develop it, maintain it, add maintainers, or even reply to this message. Seriously, I mean it.

Even if you never touch this project again, you have already given us something of value, and I want to honor that.

I also admit I hadn't realized how much of a role design considerations play when evaluating contributions to a project like this one; i.e., it's not just about whether the code "works" or not, but about the API it's defining. Makes sense, and explains why you've been hesitant to merge the open PRs or add contributors.

I'm happy to mark this issue as closed for now since you've graciously answered my question... you're certainly welcome to re-open if you want to consider it further and/or using it for tracking, but no pressure to do so =)

—MS

Psycojoker commented 6 years ago

Hello,

Firs of all, thanks for your understanding :)

To give you a small update and more context: I've started merging some PR (if you haven't noticed) and ... it takes a lot of time.

Not to directly answer the current discussion but more to have that it written down somewhere in case I got asked again "why aren't you merging the PRs?", I takes me several hours per PR:

So, talking about opening commits write I'm not very motivated right now tbh :x ... Combine with the fact that RedBaron is actually an API design project where Baron is only built with that in mind and that, well, API design is quite hard to delegate, I'm not expecting someone to commit enough time to reach that level, at least without being paid for it, but I might be wrong?

Talking about that, since I'm finally able to work on it again and considering how much time and commitment it requires (and also being able to eat is cool), I'm going to try to find way to finance those projects, that should make them a bit more sustainable.

boxed commented 6 years ago

I ported mutmut away from baron to parso and it made my code simpler while also getting full Python 3 support. Maybe you would better use your time joining forces with parso by moving RedBaron on top of parso. Just something to consider.

Psycojoker commented 6 years ago

Parso is the result of a long discussion on joining force on a common AST https://github.com/davidhalter/jedi/issues/630 which only partially solves RedBaron's needs https://github.com/davidhalter/jedi/issues/630#issuecomment-146033117 (especially point 3 and 4)

Moving today would probably takes weeks/months of work without the guarantee to have the previous result back. I was thinking about writing a proxy on top of parso at some point but the direct road is way shorter for now and that's a more strategic one to follow if I want python3 support on RedBaron faster.

Baron has never been designed to be used directly so you are probably way better fitted with parso (or with lib2to3 since you probably don't do refactoring).