Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Responsible attribution of source code #1282

Closed
non opened this issue Aug 10, 2016 · 5 comments
Closed

Responsible attribution of source code #1282

non opened this issue Aug 10, 2016 · 5 comments
Labels

Comments

@non
Copy link
Contributor

non commented Aug 10, 2016

Recently Brian McKenna pointed out that his code had been copied from Scalaz into Cats. He didn't raise an issue or PR here (as far as I can tell) but that doesn't mean we should ignore it.

When I started Cats I was intentional about not forking Scalaz or copying its code. Despite this, I made sure to credit Scalaz in the Cats license file, which I got from the Scalaz project (and which seems to have changed at some point). The fact that Brian isn't listed there is a different issue. Crediting Scalaz was the right thing to do because our type class encoding and hierarchy were derived from theirs.

I'm not sure what the "action item" of this issue should be, but here are some thoughts:

  1. Please attribute code properly. If you didn't write it (or if it's a small modification of someone else's code) please link and/or credit the original in the comments. It goes without saying that the code must be licensed for us to be able to use, but beyond that attribution is the right thing to do.
  2. I realize that many people have gotten used to some types/APIs from Scalaz and want to see those ported over as closely as possible (and there are good reasons to want that). But given that this project is not a fork I'd like to be intentional about if and when we do so. Let's be intentional (and explicit) about using other people's designs and code.

Maybe we should add these to the contributor's guide?

I'd like to apologize to Brian for our misattribution of his code. I'm happy to add him to AUTHORS.md if he wants (although since he didn't open an issue or PR I'm reluctant to do this unilaterally). Alternately I would be happy to add his name to our license file, or to work out some other attribution arrangement.

If anyone else believes that their work has been taken without attribution please open an issue or PR. Correct attribution is important.

@non non added the meta label Aug 10, 2016
@ceedubs
Copy link
Contributor

ceedubs commented Aug 10, 2016

@non you might want to check out #1276 (merged) where some relevant work was done.

@non
Copy link
Contributor Author

non commented Aug 10, 2016

@ceedubs Thanks! I completely missed it. Going over there now.

@non
Copy link
Contributor Author

non commented Aug 10, 2016

@ceedubs Thanks for that PR! I think it's a good first step.

I'm going to close this issue, since it seems like it's already been outmoded. I guess we should have a conversation about a CLA and/or possibly relicensing soon though.

@non non closed this as completed Aug 10, 2016
@kailuowang
Copy link
Contributor

@non here is a recent conversation about a CLA in case you are interested #1275

@tonymorris
Copy link

If anyone else believes that their work has been taken without attribution please open an issue or PR. Correct attribution is important.

You'll find that many of these people have left scala programming or even open-source altogether.

Last I looked at cats code, a few months ago, it had even copied bugs directly from scalaz. I just chuckled. More to the point, nobody cares about attribution. Certainly I don't. I'm going to bet this entire issue is also not about attribution (it just looks this way). So don't fret about it.

It was nice to see an admission of a mistake. I have not seen that in a long time. Keep it up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants