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

Already on GitHub? Sign in to your account

DataStax Ripped Us Off #114

Open
nberardi opened this Issue Feb 17, 2013 · 17 comments

Comments

Projects
None yet
7 participants
Contributor

nberardi commented Feb 17, 2013

Probably shouldn't be mentioning all the bugs they stole from us. But they copied the flawed DateTimePrecise.

https://github.com/datastax/csharp-driver/blob/master/Cassandra/DateTimePrecise.cs

Contributor

eplowe commented Feb 17, 2013

They did give credit for BigDecimal.cs at least:
https://github.com/datastax/csharp-driver/blob/master/Cassandra/BigDecimal.cs

On Sat, Feb 16, 2013 at 7:37 PM, Nick Berardi notifications@github.comwrote:

Notice any similarities here:

https://github.com/datastax/csharp-driver/blob/master/Cassandra.Data.Linq/CqlQueryEvaluator.cs

https://github.com/datastax/csharp-driver/blob/master/Cassandra/GuidGenerator.cs

https://github.com/datastax/csharp-driver/blob/master/Cassandra/GuidVersion.cs

No attribution at all for our hard work:

https://github.com/managedfusion/fluentcassandra/blob/master/src/Linq/CqlQueryEvaluator.cs

https://github.com/managedfusion/fluentcassandra/blob/master/src/GuidGenerator.cs

https://github.com/managedfusion/fluentcassandra/blob/master/src/GuidVersion.cs

They still have the clock sequence bug that we fixed awhile ago in their
code. Best thing is notice the difference, the developer of it used spaces,
but I use tabs. You can see what he kept and what he didn't.


Reply to this email directly or view it on GitHubhttps://github.com/managedfusion/fluentcassandra/issues/114.

Contributor

nberardi commented Feb 17, 2013

Must be because @pawel-kaplanski didn't do it. He seems to be the main culprit.

@ghost

ghost commented Feb 17, 2013

Sory guys - I will fix it ASAP.
in https://github.com/datastax/csharp-driver/blob/28d8958873f55727bf515cf97b32c9cbfa31af9f/Cassandra/GuidGenerator.cs there is info about you too. Do you have any recommendation how you would like to be referenced?

Contributor

nberardi commented Feb 17, 2013

You referenced a blog post which pointed to a piece of code on FluentCassandra, if you copy FluentCassandra code, you should reference FluentCassandra.

Contributor

nberardi commented Feb 17, 2013

I am willing to let this pass and move on, I have already said my peace on my blog last night. Apparently the help that Michael promised from you has about as much weight as a feather in the wind, because the issues you contributed #58 and #56 were fixed in your own source code base, but never contributed back here.

You can prove me wrong by contributing back, because you have done a good job at adding scalar support to my original LINQ code in your own code base. But to just take and not return a violation of the main tenants of what Open Source Software is suppose to be.

Thanks for bringing this to my attention, Nick!

While building our driver, Pawel did reuse a few code from FluentCassandra for some very targeted issues leveraging the fact that our two projects both use ASL2 and that this is made possible by sections 2 and 4 of this license, regarding derivative works and distribution. As you've noticed yourself, we wish to go even beyond it by specifically acknowledging Fluent Cassandra where appropriate just as we (Pawel Kaplanski and Krzysztof Cieśliński who work together) did in https://github.com/datastax/csharp-driver/blob/master/Cassandra/GuidGenerator.cs and https://github.com/datastax/csharp-driver/blob/master/Cassandra/BigDecimal.cs. It was a simple oversight to omit this acknowledgement in some files that we will rectify.

Please be assured that DataStax is committed to engaging with the OSS community at all levels.

Nick, as the VP of Engineering at DataStax I can assure we are committed the guidelines and spirit of the open source community. As Michael mentioned in his comments our use of the code conforms to the terms of the Apache license, however we don't want there to be any bad feelings and are happy to add additional attribution to the code and to contribute changes back to Fluent Cassandra as appropriate. DataStax is a strong supporter of Open Source, We employ full time developers who contribute all of their code to open source, host community events, and maintain community web sites. We are sorry about this misunderstanding and encourage you to contact us in the future if you have any concerns.

  • Martin Van Ryswyk
Contributor

nberardi commented Feb 18, 2013

That one file for LINQ that you seem to brush off as just forgetting, may just be a text file that helped your driver get an advanced feature with a small amount of extra work. But to me it represents countless hours, over a year and a half, of learning, tweaking, optimizing, and refining.

And on top of it @pawel-kaplanski opened two issues on our project and then proceeded to fix them for his own needs but never bothered to commit them back. How does that show a commitment to open source?

So I hope you can understand why this makes me and others so mad. I hope this is just poor judgment of one employee, and that you will correct both of these problems soon:

  • The commitment back
  • And the references in your source.
@ghost

ghost commented Feb 19, 2013

Nick,

  1. There were some files that were properly referenced:
    a) https://github.com/datastax/csharp-driver/blob/master/Cassandra/BigDecimal.cs
    b) https://github.com/datastax/csharp-driver/blob/master/Cassandra/GuidGenerator.cs - was referenced to your blog and to fluetncassandra by name
    "-// from fluent cassandra
    -//http://coderjournal.com/2010/04/creating-a-time-uuid-guid-in-net/"
    c) https://github.com/datastax/csharp-driver/blob/589ef6f935f49859bb5da071a861e9a77425c5a6/Cassandra/DateTimePrecise.cs
    and
    https://github.com/datastax/csharp-driver/blob/589ef6f935f49859bb5da071a861e9a77425c5a6/Cassandra/GuidVersion.cs
    were supporting files for me that were directly connected with https://github.com/datastax/csharp-driver/blob/master/Cassandra/GuidGenerator.cs - which was properly referenced
    https://github.com/datastax/csharp-driver/blob/2f2cc82d354e731a574733e8eb0c9b54dd46a27e/Cassandra/ConversionHelper.cs
    It was not my intention to not reference originate source of those three supporting files, I simply forgot about it. I regret if it irritated you.
  2. The query evaluator originated from https://github.com/managedfusion/fluentcassandra/blob/master/src/Linq/CqlQueryEvaluator.cs, however we needed it to be a little more flexible. Therefore we recently released a new approach for the ExpressionTree for CQL3 - it uses stack based, outer param passing in visitor design pattern (based on ExpressionTreeVisitor).
    We're happy to submit a pull request with it on your project so that you can include it in FluentCassandra if you like it.

Hope it solves the issue.

This is not legal advice and I really hope that it does not get to a point that requires it. While it will not heal the emotional wounds it may be productive if both sides (@managedfusion and @datastax) apply the Apache License to the code and @datastax of course would have to respect 4-C when attributing their code that is derived from @managedfusion repositories.

As an observer watching this with popcorn in hand I really don't think Pawel is out to hurt you explicitly.

As a developer I think it is important that @datastax understands that by forking the project (if you can call it that) you are taking Nick's baby away from him rather than helping him raise it. Perhaps an even better solution if you all get past this is to reference the fluentcassandra project rather than clone it. This could offer not only community benefits but also technical benefits.

As an open source developer I really hope this does not get nasty. I would prefer to see more examples of good outcomes between open source and companies.

Contributor

nberardi commented Feb 24, 2013

@datastax you guys aren't winning any friends with the pull request in issue #115, it is a total disgrace. @pawel-kaplanski just basically tossed code over the wall and said have at it. Didn't even bother to change your namespace or even to work it into FluentCassandra. The code is essentially 2 useless text files.

If this is what you call OSS, I think you guys need to go back to the drawing board and think this over.

I was going to let it go at my last comment, I was just keeping the issue open to let you guys sweat it out until the end of the week. If you even did that. And I was excited to see this pull request come in because I thought it might have been an olive branch, but this pull request is actually worse than doing nothing. It shows a total lack of respect and confirms my original thoughts about @pawel-kaplanski not really understanding what open source is, and just seeing it as a free grab bag of code.

Contributor

nberardi commented Apr 15, 2013

I wanted to give this some time. @datastax did reach out to me, one of the conversations was very encouraging, the other was less than encouraging. Given this, I don't think there is any easy way to move forward or collaboration points that can be had.

@ghost ghost assigned nberardi Apr 15, 2013

Correct me if I'm wrong, but Apache licensing specifically does not require attribution of sources.

It does require that attribution statements in the code be left intact, but not that anything new be added.

If attribution is desired, then there are other license models that can be used for that. They specifically require it.

If you license code as open source under a license that tells them they have no requirement to provide attribution, you should expect people to use your code under those terms. It's not stealing if you specifically choose a license that tells them they don't need to provide attribution.

I understand you had many hours in this, but so did all the people who created many of the tools you use. The JVM for example includes a great deal of open source that I don't think you provided attribution for.

If you want attribution, then you should choose a license that calls for it. It's your choice what license you publish your code under.

Contributor

nberardi commented Jul 28, 2015

What code in the JVM did I directly copy and use in my .NET code?

Plus you are completely wrong. Search for attribution in the license yourself. It must contain all attributions that exist in the original source.

http://www.apache.org/licenses/LICENSE-2.0.txt

Lastly regardless of licensing it is a complete dick move of the developer at DataStax and DataStax to condone.

On Jul 28, 2015, at 7:57 AM, Kevin Bedell notifications@github.com wrote:

Correct me if I'm wrong, but Apache licensing specifically does not require attribution of sources.

If attribution is desired, then there are other license models that can be used for that. They specifically require it.

If you license code as open source under a license that tells them they have no requirement to provide attribution, you should expect people to use your code under those terms. It's not stealing if you specifically choose a license that tells them they don't need to provide attribution.

I understand you had many hours in this, but so did all the people who created many of the tools you use. The JVM for example includes a great deal of open source that I don't think you provided attribution for.

If you want attribution, then you should choose a license that calls for it. It's your choice what license you publish your code under.


Reply to this email directly or view it on GitHub.

@nberardi you come across as a bit hostile. I think datastax looks willing to correct the oversight or whatever...we're all a family of developers and sharing and using tons of code from many sources...

I'm not sure exactly what benefit you get from the attribution that warrants this level of fighting?

Contributor

nberardi commented Jun 4, 2017

@timothyerwin It is the fact that a lot of hard work went into something, many many hours were spent perfecting something to share with the world, and it was completely ripped off with out any kind of attribution. Lets not attribute this to correcting an oversight. Correcting an oversight is forgetting to include an attribution which happens.

If you read what I wrote the developer who took the code, a DataStax engineer, went through the effort of specifically removing the attribution at the top of the file. It wouldn't have been any trouble for him to just leave it in his source code. That is not oversight, that is malice.

Broadly speaking attribution is the currency in OSS with which we pat other developers on the back and say "thank you, you did a great job, my life was made easier because of the effort you put forth". Forgetting to pat somebody on the back, is much different than kicking someone in the back. I hope you realize the difference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment