(I apologize in advance if I may break any rules with this post.)
I feel obliged to share my awful experience with my attempt to contribute to PCSX2 after trying to submit patches.
Link to my pull request (archived)
TLDR; I got disrespected for my hard work by refractionpcsx2 and I decided to pack up my work and leave from contributing to PCSX2. And this isn’t the first time it had happened…
Notes
Basically, let’s just start with what had happened in notes:
-
I make a PR for a no interlace patch for Gran Turismo 3 NTSC-J, translated from code from asasega on the PCSX2 forum
-
A friend of mine also submits his for the PAL version, ends up not working, so I push that out too
-
A couple of contributors point out that the joker command doesn’t work on the PAL version, so I disable them
-
In the meantime, I started working on a completely new code, which properly increases the resolution. I described as such in the comments.
-
This took about a week to work on and get a (as much as possible) properly working patch on NTSC-U and J versions.
-
I clearly comment on each new state and update the situation within the PR itself and state that PAL version still needs work (and I was working on it at the time)
-
Someone suggests to get help at the forums, but I decline as I had already tested with a few other people myself privately. I also suggest I can now remove the “experimental” wording out of the description (which was in the description of the patch itself at the time)
-
refractionpcsx2 comes along and decides to collectively call the patches broken “regardless of your wording”, when I clearly stated they’re not, with the exception of the PAL version that is currently being worked on
-
I reiterate and say that PAL is being worked on and emphasize, quote “And you would’ve known it’s not broken if you tried the patch for yourself” (as I was referring to the NTSC patches). I also point out that they’d be losing out on a good patch if it doesn’t get merged.
-
refractionpcsx2 decides to twist my words and says, quote, “And saying “” you’d never had known it was broken if you’d not tried it* isn’t exactly instilling me with confidence in what you’re submitting.”
-
Feeling very patronized, I asked what’s the exact problem, pointed out that he can wait before merging
-
After a bit of contemplation, I felt demotivated and closed my PR
-
refractionpcsx2 decides to accuse me of “trying to sneak in “experimental” patches” and belittle further
-
I leave a final comment, pointing out my exact grievances with him and revoking the right of them using my codes and state that I won’t contribute any longer
-
refractionpcsx2 tells me “good riddance” and decides to block me from the entire PCSX2 organization
That’s what had happened. I felt extremely disrespected for my hard work and I decided to pack up and leave.
I had even asked multiple times for these patches to be tested, but apparently that was heresy according to them.
What I had done wrong
-
I could’ve opened a draft instead of a PR (or converted this one into a draft)
-
I could’ve worked on this aside and make a PR later
-
I could’ve simply removed the PAL patches and just merged NTSC ones
Sure, those are the things I could’ve and probably should’ve done.
But another mistake was expecting my notes to be properly read with comprehension by the maintainer(s)…
What they had done wrong
-
Instead of pointing out my mistakes, refractionpcsx2 decided to immediately disrespect me and my work. (This was very demotivating.)
-
Refusing to listen to my explanations or read anything I had written before
-
Refusing to explain what I did wrong and point me in the right direction in a timely matter
-
Being petty, blocking me and my access to the PCSX2 organization over this
If certain things and/or rules are expected from contributors - write them down in a code of conduct or guidelines. PCSX2 does NOT have that anywhere.
Instead of cooperating with their contributors to help them build new things, they fully expect everything served to them finished and fully working (to perfection).
I’m not complaining about my PAL code not being accepted. That isn’t the problem at all. I was willing to work on it more and finish it.
What can the PCSX2 team do differently?
-
This kind of behavior needs to be put to an end and in check
-
Show some respect for your contributors and the time they spend on/for your project
-
If they make a mistake contributing, point it out to them and point them in the right direction
-
Write down guidelines and your contribution expectations somewhere so people can know exactly what to expect. If you absolutely refuse to do any testing whatsoever yourselves, then say so.
-
And last, but not least, COOPERATE with your contributors so that they can bring a new feature or a bugfix easier to your project. (Another example of what was done wrong.)
Closing words
Was it wrong of me to expect basic social skills and decency throughout this?
I honestly wanted to help and fix a few bugs in PCSX2, perhaps introduce more patches for games in the future.
But with behavior like this, they’re alienating people who could genuinely help.
I don’t feel proud, at all, that I had to pull out like this. It feels petty looking from the outside, I know. But trust me, after a week of work, then being spit in your face and disrespected, you’d feel the same way. It’s very frustrating.
I don’t have anything against the rest of the PCSX2 team and I hope we can resolve this matter.
Again I apologize once more for the darker/harsher tone here, but it is what it is.
I’m sorry, but all of this was caused by your defensive and mildly aggressive response when he implied your patches were broken.
That whole PR was already confusing with all the rework and mentions of other people’s code and the inclusion of good code along with bad code.
When it was suggested that the foruns would be a good place I read it more like a “stop spamming us with experimental code”. Your suggestion to remove the experimental tag led them to think you were trying to shut them down and push stuff anyway.
This has all been a major misunderstanding. The fact that you took that so poorly (IMO, since you’re even posting about it here), means that maybe you should try to take a step back when this sort of thing happens, try to look at things from their perspective, and generally don’t assume ill intent.
Open source is hard because it is a communication heavy discipline and not everyone is used to that.
I’d agree with this take with the caveat that IMO the maintainers could have done a better job. Just like OP should have assumed positive intent and tweaked their communication style, the maintainers should have been clearer with their asks and stop hinting about what they want.
If you put a quarter of the effort you put in this post into apologizing for the misunderstanding arising from trying to submit something you hadn’t tested thoroughly and then another into finishing the patch up none of this essay would be necessary.
You feel “extremely disrespected” which is an overreaction to what was said to you. It allows you to be self righteous instead of reflecting honestly.
All the things you’ve listed that you think you did wrong are kinda right, but you’re only listing them so we think you’re being reasonable and we won’t attack you on them. You’re listing them here instead of acknowledging them in the github thread and realizing that what you think you said and how you are perceived can be different, because you don’t like the idea that someone else might think you were wrong. The only person who is allowed to insinuate that you were wrong is yourself.
There’s not a lot of glory in OSS and there is a lot of ego and butting heads. If you love doing this stuff, you gotta get a bit more calm and resilient.