scrapy / scrapy

Scrapy, a fast high-level web crawling & scraping framework for Python.
https://scrapy.org
BSD 3-Clause "New" or "Revised" License
52.9k stars 10.54k forks source link

COC? #1645

Closed alison985 closed 8 years ago

alison985 commented 8 years ago

Hi,

I'm just wondering what your code of conduct is for this project?

Thanks, Alison

umrashrf commented 8 years ago

Do you mean, how to contribute?

May be this? http://doc.scrapy.org/en/master/contributing.html

Digenis commented 8 years ago

Scrapy has a contribution policy as @umrashrf pointed out.

So far the developers' community has seen no undesired behaviour so nobody had to devote a different section in the documentation for this.

I think github already adopted the "Open code of conduct" and also has its own TOS that applies to all hosted projects. Points 7 and 8 in the "General Conditions" do cover most abusive behaviour: https://help.github.com/articles/github-terms-of-service/#g-general-conditions

barraponto commented 8 years ago

It would be good to set up a Code of Conduct before we have issues. Even though Scrapy itself is not a big community like some other open source projects, having a COC could make it feel more safe to diversity contributors.

As a programming teacher, it would be a shame if I were to introduce a student to a project where she or he is subject to abusive behaviors. I feel like there's something to be learned from fallouts such as http://blog.randi.io/2015/12/31/the-developer-formerly-known-as-freebsdgirl/

jart commented 8 years ago

Code of conduct? I can't believe people take those things seriously. It's just childish rubbish with a political agenda. There's always been standards for propriety in the open source community. And our norms are far better than the whining babies who demand we enstate their padded wall policies.

kmike commented 8 years ago

Hey,

I think adding a copy of http://contributor-covenant.org/version/1/3/0/code_of_conduct.txt to Scrapy repo and keeping to follow it is a no-brainer. @pablohoffman @shaneaevans @dangra @eliasdorneles @curita @nramirezuy what do you think?

eliasdorneles commented 8 years ago

@kmike yeap, that's reasonable, +1 from me.

dangra commented 8 years ago

@kmike you have my vote for it.

nyov commented 8 years ago

Great addition! Even though those stated rules should be covered by basic netiquette, these days it's probably good to be explicit about it.

/signed

victor9000 commented 7 years ago

This document insinuates that potential contributors are unethical, unprofessional, and immoral, and that they must be told to suppress their antisocial behavior before contributing to this project. This is now the first thing people are greeted with when they first roll up their sleeves to get started with this project, and it translates to a fairly negative experience. I'll probably still fork and make the changes I need, but I'm much less inclined to engage further. And while I actually agree with everything in this document, it states nothing that is not already expected of every individual. I'm left to think that its purpose is purely political, and I'm disappointed to see politics creep its way into a technical project in guise of a contribution. @kmike @dangra @eliasdorneles

kmike commented 7 years ago

Sorry @victor9000, we didn't mean to offend anyone with this document! We certainly didn't mean that potential contributors are unethical, unprofessional and immoral. It seems anyone agree that the content of the CoC is reasonable, so it was a no-brainer to add it.

I'd also prefer not to use formal licenses like BSD. When we're writing

Neither the name of Scrapy nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

in a license we certainly don't mean that Scrapy users are scammers who are going to tell "hey, this is an awesome uber-scraper which is actually built by the awesome @dangra", while the uber-scraper is in fact a virus built into Scrapy fork, which takes control of a computer and plays Yankee Doodle. But we're still using a BSD license, because it is common to do that, it could help us in a 1-in-1000000 event, and because it is very easy to comply with this license for ~100% of Scrapy users.

redapple commented 7 years ago

Hi @victor9000 , as @kmike said, we're sorry if the content of the Code of Conduct document put you on the defensive and makes you reconsider contributing further. It's definitely not the intent.

To me, and I'm speaking here for myself, not in the name of scrapy or its maintainers, it serves as a written reference of rules when something inapropriate comes up. And although I'm really thankful that I only witnessed very few examples of such wrong behavior, it does happen, trust me.

Not so long ago I had to remove a comment on GitHub from a 3rd person in a thread I was participating in with a scrapy user reporting some issue (it was a sexual-orientation oriented comment -- to put it mildly, ironic/"humorous" or not, I judged it very misplaced in any case) Another time, last summer, there was conversation on IRC between a regular contributor and a (new) user who progressively starting insulting either the scrapy contributor or the project maintainers (I'm still not sure which one it was, if not both) because there was no obvious or immediate "solution" to his use-case.

The Code of Conduct is also for cases where maintainers do not see the bad mouthing or harassement that could happen privately between members of the scrapy community. People can refer to the code of conduct and they have an email address to report to (although it's a @scrapinghub.com one a the moment, we want to have an independant @scrapy.org one)

I've re-read the Code of Coduct following your message and I don't feel the insinuation. Could you elaborate of some improvements to it if any? (By the way, the text originally comes from http://contributor-covenant.org/)

dangra commented 7 years ago

I would love to hear feedback from @alison985 about @victor9000 comment.

eliasdorneles commented 7 years ago

+1 to everything @kmike and @redapple said.

victor9000 commented 7 years ago

Hi Everyone, first of all sorry for creating this distraction, I'm sure you all have plenty of real work to do. Also @kmike and @redapple, thank you for your productive approach on this, I'll do my best to match your tone. My main point is to simply make you aware of my experience when I tried to on-board as a contributor. I ran into a roadblock due to the language of this document, and I wanted to make you aware that using it as a greeting may be having some unintended consequences. And as I mentioned above, I agree with the high-level goal of encouraging contributors to treat each other with respect, but I'm finding this particular implementation to be a bit buggy.

The first problem I encountered is that it unnecessarily focuses on lots of negative behavior. The document provides a list of antisocial activities and a list of classes which should be protected from these activities. In doing so the document splits the pool of potential contributors into aggressors and victims, and it's up to the reader to figure out where they fit in. The document also implicitly paints the reader as someone who needs to be warned against engaging in this type of behavior, otherwise it would not be required reading. This is a fairly pessimistic perspective, and it's somewhat demeaning if you happen to believe that people are innately good. A more productive approach would be to assume benevolence on the part of all participants, and instead focus on the qualities which make up the ideal contributor. You will find that the tone of this document becomes much more productive if you take every negative activity that it describes and replace it with its positive counterpart.

The second problem is that all of this negativity is placed at the beginning of the on-boarding pipeline. Imagine for a second that you're invited to a friend's house to bake a pie. And you love pie, so you're really looking forward to helping them improve their recipes. But when you show up at their house, they greet you with a lecture on politics and morality instead of anything regarding pies. Then they take you around the house and say things like "do not kick the cat, do not break the windows, do not make advances toward my grandmother, do not relieve yourself on the floor". This language is not appropriate for the situation, it's not a pleasant way to greet someone, and pretty soon you're going to change your mind about the pie.

The third problem is how it handles conflict resolution between the reporter and the accused. Many of the problems described in this document will depend on how the reporter perceives the intentions of the accused. The difference between perception and intent may be due to a misunderstanding, cultural differences, or some other external factor. Productive conflict resolution would bring both parties to the table and go over the experience of each participant in an effort to bridge their differences. However, this document prescribes that reporter of an incident should remain anonymous, which is counter to how these things are handled in the real world.

@kmike - You make a fair point regarding the BSD license. Every project has some amount of boilerplate which serves its purpose in 1-in-1000000 scenarios. However, the language of the CoC is much less user-friendly than the text you quoted. If we had to transform one text into the other, then the CoC would read something along the lines of "We expect all contributors to behave professionally, and treat each other with respect". While the BSD text would first describe a list of undesirable products, then a host of unethical activities, and then finally make the point that the contributors do not endorse any of those things.

@redapple - It sounds like you handled those situations appropriately. I can certainly see how it's useful to have a document that explicitly states the course of action that will be taken in those cases. Again, my experience is only from the perspective of on-boarding. Also, the bulk of my response was meant to answer the questions you asked, let me know if you think I'm misinterpreting anything.

eliasdorneles commented 7 years ago

@victor9000 as @kmike has already said, having a Code of Conduct in place doesn't mean we expect negative behavior from most users. It's just making explicit a commitment to keep the community harassment-free and that's a tiny tiny thing we can do to make minorities feel more welcome (sometimes "Explicit is better than implicit", as the Python zen goes).

I think I get one point of your complaint, that you find it weird that the CoC is the first thing mentioned under "Contributing" on the README. I can see how it can be weird, because really the most important thing someone just wanting to contribute should be reading is the contributing document (which is just under the mention to the Code of Conduct).

We can change that, I'll send a PR.

But please don't make this about having a CoC in place or not (a decision that has already been taken and that is a good thing) and don't make this a bigger distraction than it already is.

If you want to understand why having a CoC is good, please don't put the burden on us of explaining it to you. There is plenty of documentation and pointers at: http://contributor-covenant.org which includes a list of other projects that adopt it.

eliasdorneles commented 7 years ago

I suppose updating to the latest version (which shows example of positive behavior first) would also help here: http://contributor-covenant.org/version/1/4/

eliasdorneles commented 7 years ago

I've updated the PR, upgrading the CoC to the latest version. :+1:

victor9000 commented 7 years ago

@eliasdorneles Sorry for the misunderstanding if it seemed like I was advocating against the use of a CoC. As mentioned above, I agree with the intent of this document. I was just advocating for language which was more user friendly than what's included in version 1.3. However, given that this document gets pulled down from upstream as-is, then perhaps this is not the right forum for discussing the specific contents of the document. Nonetheless, I agree that upgrading to version 1.4 which does include some positive language seems like an objective improvement. I also agree that it's more useful to focus on the technical contributing document. Thanks!

eliasdorneles commented 7 years ago

@victor9000 cool, no worries, thanks!