-349

Update: January 15, 2016

Thank you for your patience and feedback. The changes proposed here have been delayed indefinitely - we'll be back later to open some more discussions.


Important context for those arriving from reddit and slashdot links:
The status quo is not "public domain"; attribution is already required.

See:


TLDR: This is a follow-up to our initial proposal for transitioning to a more user-friendly code license. The purpose of this post is to address the concern expressed most frequently in response to the initial proposal: no attribution requirement. Also, we want to make sure everyone has ample opportunity to provide feedback and we have time to consider it. We are more concerned with doing this right than doing it fast, so please let us know what you think about this proposed change.

A month ago we proposed new licensing terms to cover code posted at Stack Overflow and across the Stack Exchange network. Hundreds of you voted on the proposal, and many of you let us know how we could improve. We gathered all your feedback, and after careful consideration we have amended the proposal.

2 changes:

  1. Attribution now continues to be required when you use code found at Stack Overflow and Stack Exchange
  2. The changes will now go into effect March 1, 2016 The changes proposed here have been delayed indefinitely.

Change 1 was made to accommodate contributors who want credit, plus to help developers identify the provenance of a Stack Overflow code snippet when they find it integrated into a project. Change 2 was made to allow you more time to digest this change and socialize it within your organizations.

Both changes were thoroughly vetted internally, with our lawyers, and with the OSI. We think they are an improvement upon the previous proposal, and a vast improvement upon the status quo.

As always, community input has been instrumental in moving this initative forward. We're fairly certain we've arrived at the best possible balance for everyone's needs, but if you spot anything new you think we've missed, please let us know.

The Fine Print:

When the change goes live, new contributions across the network will be licensed to the public under the following terms:

  • Non-code contributions will continue to be available for use under the terms of CC-BY-SA
  • Code contributions will be available for use under the terms of the MIT License
  • You don’t have to include the full MIT License in your code base. Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement, as long as users give reasonable attribution. This optional exception to the MIT License will live in our terms of service.

The only difference between the terms described above and the previous proposal is the removal of the requirement to add attribution only “upon request of the copyright holder (or Stack Exchange on behalf of the copyright holder)”. “Reasonable attribution” is now required by end users of Stack Overflow and Stack Exchange.

What is reasonable attribution?

A URL as a comment in your code is reasonable attribution.

There are certainly other forms of reasonable attribution, depending on use, and you are welcome to go above and beyond what’s required and include username, date, and anything else if you like.

You are also welcome to use the MIT License as it is traditionally interpreted: by preserving the full license with relevant fields (copyright year and copyright holder) completed.

Full guidance will be provided in an upcoming FAQ.

When will the new terms go into effect?

March 1, 2016 The changes proposed here have been delayed indefinitely.

What about other sites on the Stack Exchange network?

The new terms will go into effect for all new code on all sites in the Stack Exchange network.

We understand that some users feel the new terms are not a perfect fit for certain sites, but we think fragmenting the license across the network will lead to ambiguity – the exact problem we’re trying to solve by updating the terms.

What about code contributed prior to this change?

This change is just a first step in establishing clarity for using code found on Stack Overflow and Stack Exchange. Code contributed prior to this change will be governed by the CC BY-SA license as it has always been. We are exploring ways we might distinguish code covered by each license regime, and we hope to soon roll out an opt-in mechanism to let users relicense their old contributions under the new terms.

But what is code?

We will give you guidance on identifying code in an upcoming FAQ, plus guidance on how best to comply with the attribution requirement. But ultimately, identifying code will be a judgement call on your part. We have full faith in your ability to do this.

What’s next?

We want to hear what you think. Barring any showstopper, these terms and a detailed FAQ will be rolled out March 1, 2016.

197
  • 506
    Do you actually expect people to do this? Will code be full of SO links, really? Given how many don't bother to upvote things they find useful, leaving a link in code -- which would typically not help maintainers of the code -- is hardly a consideration. Commented Jan 14, 2016 at 15:46
  • 362
    I'm going to just start putting an ingredient list on my projects. This software is made with 45% Stack Overflow recycled content. Commented Jan 14, 2016 at 15:47
  • 128
    The voting on the previous meta post is not a reliable indicator for how the community views this version of the proposal in my opinion. There are just too many different concerns mixed into this single number. Commented Jan 14, 2016 at 15:48
  • 126
    @samthebrand, "we think fragmenting the license across the network will lead to ambiguity". Then why do it? By having one license for 'code' and another for 'non-code', you are fragmenting the license across the network. This is lunacy.
    – user136089
    Commented Jan 14, 2016 at 15:49
  • 87
    I have full faith in any decent lawyer being able to present a convincing argument that whatever judgement call I made, it was wrong.
    – hvd
    Commented Jan 14, 2016 at 15:56
  • 441
    "But what is code? We will give you guidance on identifying code in an upcoming FAQ..." No, give guidance now. You're trying to change the license of code without clearly delineating boundaries for what is and isn't code. That's a very, very important part of this. Don't just hand wave it into the future long after this discussion should have been had.
    – Cornstalks
    Commented Jan 14, 2016 at 15:57
  • 94
    You will find better luck persuading many people if you follow Shog's advice here. This reads like, "we're doing this regardless of what you think, but please let us know your thoughts!" which... :(
    – enderland
    Commented Jan 14, 2016 at 16:02
  • 78
    I want to explain my down vote here. This idea is much better than the original post. However, I don't like that some key aspects are being pushed off. Please come back when you have a definition of code, an approach to help everyone understand what is licensed under what license, and the rest of your FAQ complete. Also, like @enderland suggested, follow Shog9's advice. Commented Jan 14, 2016 at 16:07
  • 91
    @Jaydles considering an answer saying, In summary, please don't do this to us had +426? I think it's worth saying the community is not quite in agreement...
    – enderland
    Commented Jan 14, 2016 at 16:16
  • 156
    What exactly is the problem that you are trying to solve here? Users aren't pissed off enough already? The community hates this and there has been little justification for the change, so, unless you want more resistance, learn to use meta properly and write a feature-request that details an actual problem that you want to solve.
    – bjb568
    Commented Jan 14, 2016 at 16:28
  • 242
    @Jaydles I wanted to downvote the original Meta post but I only have 101 rep on Meta so I can only upvote (even though I have 9k+ on SO.) Your assumption of community agreement is likely skewed by this fact.
    – xxbbcc
    Commented Jan 14, 2016 at 16:40
  • 159
    How are the 99.5% of Stack Overflow users who never visit meta, will never see the post, will never read the new ToS and more-so simply don't care or understand licensing agreements anyway going to be told to attribute code they copy from the site?
    – Cᴏʀʏ
    Commented Jan 14, 2016 at 16:51
  • 79
    Define "showstopper"? The feedback from the previous round and this round are both overwhelmingly negative. What's it going to take to drop this altogether? Commented Jan 14, 2016 at 17:48
  • 101
    Just one comment - If the license needs a FAQ to define the license, then it's not a license.
    – rolfl
    Commented Jan 14, 2016 at 19:58
  • 82
    I am baffled by the community's general reaction to these changes, which are long overdue, legally necessary, and eminently sensible. There are legitimate minor concerns, but the overall sentiment here is insane. Typical meta change-aversion run wild.
    – Jeremy
    Commented Jan 14, 2016 at 20:36

60 Answers 60

1
2
10

Let me break this down, because it appears no one is:

What does the “Stack Exchange license” do?

It allows you to use code for any purpose, good, evil, and commercial, under these conditions:

  • You provide attribution to the author
  • By using the code, you agree not to hold the author liable for any damages for anything that may occur.
  • A license file or header is not needed: attribution in the source code is sufficient

Quite frankly, this is nearly public domain. This excellent question on Open Source tells us how this is public domain. What’s happening here is that the author retains all of his or her moral rights - these are also rights which can’t be revoked by law in many jurisdictions.


Coming back to me, stop complicating and confusing things.

While the proposal is well-spirited in nature, we don’t have all the answers. When you’re speaking of something that strides into legal areas - You need to have all the answers. Simply saying, support us and we’ll think about it later just doesn’t cut it. You’re like me: I think of a wonderful idea, only to find that it sucks.

One other thing that I’m confused about: What was wrong with the status quo?

Stack Exchange endorsed the concept of attribution in posts. Under the Creative Commons Attribution Share-Alike license, people could take the information in posts, and use them in their works, providing that they give attribution to the original authors. It also included a ShareAlike/Copyleft clause - Any derived works needed to also carry this license.

I learn, take code, and participate in many Stack Exchange sites, especially Stack Overflow. Is any of my code under the Creative Commons license? No - And that’s the way it should be. I’m not directly copying code, I’m providing my own implementation for the ideas presented, and applying what I’ve learned in various answers. Regardless, most of this stuff doesn’t meet a threshold of originality to be copyrighted anyway.

If you’re seriously concerned about the legalese, quit making yet another license. Don’t make random exceptions that half the users here will even understand. Keep a simple, well-known license, that’s proven. The Apache 2.0 license.

This license is what many projects use anyway, including many of my projects, as well as in other projects. Look at Apache Commons.

Here’s what it offers:

  • A patent license - No one can trip anyone to copyright ideas (after all, what would be the point of writing an answer)
  • Copyright assertion - Honestly, simply the NOTICE file with your name in it is fine
  • No use of trademarks - I don’t want my name to be used to support an evil thing.
  • Disclaimer of warranty and liability - If my code screws something up on your side, then you can’t come after me. After all, I just wanted to help.

What applies to what?

Honestly, just dual-license the posts. I placed a bounty on this question, but didn't really get a good response. If we can't define what code is, then just make the entire post under both licenses. Don't overcomplicate it. People will choose which one naturally applies - It's common sense. I can't see how big of an issue dual-licensing could be.

Quit overcomplicating things. Please.

3
  • "You provide attribution to the author" - Debatable. In a closed-source project, there is effectively no public attribution since the attribution only exists in a source file. That's not attribution, IMO. | "Regardless, most of this stuff doesn’t meet a threshold of originality to be copyrighted anyway." - That's true for SO, but not necessarily for Code Review or Programming Puzzles. Commented Jan 14, 2016 at 22:59
  • 2
    @ThomasOwens What is this Programming Puzzles you speak of? Perhaps you mean Code Golf? All jesting aside, I think most of PPCG code wouldn't meet the threshold either. A huge amount of our challenges are things that have been done before, but this time with an emphasis on short code. Some of the code is original enough to be copyrighted, but the community consensus is that attribution is always required for copying/improving someone else's golfed code. Putting that in a copyright license would just be repeating ourselves.
    – user307833
    Commented Jan 14, 2016 at 23:06
  • Nearly "public domain", except that it's a crayon license so it's nearly "all rights reserved". Once again, it seems StackExchange actually desired CC-0, but can't admit it.
    – Nemo
    Commented Feb 2, 2016 at 8:18
10

Don't assume what license the developer would prefer:

Instead of installing a global standard, give users the option (in their profiles) to choose which license they'd like to use for their answers or questions (two options).

The MIT license could be made the default for those who haven't chose differently, but effectively, let the user choose.

A button titled "attribute answer" similar to The Science SE sites' Cite button could be added, which using the user's preference could generate a correct and relevantly formatted attribution block.

freeeeeehaaaaaannndddd ciiiircccleeeeessss

Of course you can't force users to attribute, but you can make it as easy as possible.

Additionally, this wouldn't only apply to the sites using code blocks, right? The other sites surely would like license freedom beyond Creative Commons?

2
  • 2
    I like this idea. When you see something, it is, via its author, attributed to some license, which is the author's best guess. For instance, an author who posts mostly while sitting at his desk at XYZ Inc can simply say, "according to my employment agreement, every solution I post is owned by XYZ Inc, and may not be used in any product without the permission of XYZ Inc.". Thus, when we use that user's snippet of code, we paraphrase the heck out of it so that it is no longer recognizable. To be safe...ish we do that anyway even if the material purports to be BSD licensed.
    – Kaz
    Commented Jan 15, 2016 at 6:29
  • 2
    And add a public domain option too. And tie the license at the time to the post so that it can't be changed. As it is I plan to explicitly release to the public domain everything I post to SO. The lack of the PD option is stupid. The paraphrase comment is insightful, as I rarely copy from SO, and if I do I refactor it into a better fit for my problem. Commented Jan 15, 2016 at 20:01
9

As a Stack Overflow contributor, I want my answers to be CC-BY-SA, but the code therein should be considered public domain (or as close as is reasonable). My intent when answering someone’s question on Stack Overflow is that the answer should help others; I would be offended if some other website reproduced my answer without attribution, but I am most certainly encouraging others to use any code snippets I write on Stack Overflow. Licenses that require attribution are not necessary in this context and while I’d appreciate a comment in their code if they copy something verbatim, and if it’s crucial to their product maybe a shout-out in the About box, I really don’t want to force that. Especially so, in that sometimes those of us who write answers on Stack Overflow do so in order to encourage better practice, even among copy-and-paste "programmers", and I don’t want the world to be a worse place because some paste-jockey decides not to use my code because the license requires attribution.

For code large enough to think attribution is required, I will instead host a project (probably on Github or Bitbucket these days) and include a LICENSE file there to make clear my intent. You might say that “linking” answers on Stack Overflow should be discouraged, but I think it’s also true that answers with significant volumes of code are probably a bad idea, and certainly a bad idea if there is going to be any doubt about licensing.

There may be some other Stack Exchange sites where it makes sense to apply different rules; I accept that. But on Stack Overflow, I think a lot of contributors will feel similarly to me.

Accordingly, I have up-voted the original proposal, because that’s the closest to what I want, and down-voted this one.

Addition

It has been pointed out by some others that code in questions is a different matter to code in answers. Those asking questions are generally not looking to provide code for others to use, so a more restrictive license might be applied there. This is such a good point I thought it worth reiterating.

17
  • You know, just add a note to your profile, like "All code I contribute on SE sites is licensed CC0." There's nothing stopping you from dual-licensing to grant additional rights, you just cannot revoke any rights granted. Commented Jan 15, 2016 at 15:47
  • 1
    @Deduplicator That’s true, but that then creates a problem for everyone because they’ll have to go check peoples’ profile pages before using anything from an answer in their code. It might also change the way people vote on answers (maybe the best answer has a more restrictive license and so doesn’t get upvoted or accepted).
    – al45tair
    Commented Jan 15, 2016 at 16:29
  • I have one request: if you’re stating that something is PD, please also include something like this: In countries where the Public Domain status of the work may not be valid, I hereby grant a copyright licence to the general public to deal in the work without restriction and permission to sublicence derivates under the terms of any (OSI approved) Open Source licence. That’s because it doesn’t cross country boundaries. (For this wording, we assume OSI doesn’t ever unapprove licences unless they should never have been approved in the first place.)
    – mirabilos
    Commented Jan 24, 2016 at 14:05
  • @mirabilos I have yet to see a cogent argument that a public domain declaration is not sufficient. No court is going to apply a restrictive license (which one, anyway?) to a work declared by its author to be public domain (the intent of the author is clear), nor is a court going to support copyright action by an author on the basis of an implied license in such a case (again, the author’s original intent is clear and such action would be a violation of natural justice). There might be issues with moral rights, but you can’t give them away by license either.
    – al45tair
    Commented Jan 25, 2016 at 9:21
  • @alastair two things: First, the author – in some countries, one cannot relinquish all rights, and/or there are good reasons not to do it (such as liability; some can be disclaimed, but if you don’t have a disclaimer you’re liable for more by default).
    – mirabilos
    Commented Jan 25, 2016 at 10:31
  • @alastair Second, the recipient – the Berne Convention harmonises copyright internationally by making copyright protection (and thus licences, which build upon that very protection) work across country boundaries. It does not, however, do that for Public Domain works. For those, only the PD-after-copyright-protection-ended part of the copyright law of the country of the recipient applies. (In fact, someone working for the USA government could sue someone in Europe over using his PD (in USA) code, someone on the OSI mailing lists remarked, though nobody would probably do so.)
    – mirabilos
    Commented Jan 25, 2016 at 10:34
  • @alastair To mop it all up though – if you want to add code to a work of your own which you then wish to licence to someone else (no matter whether commercial, copyleft or permissive) you need a licence to do that for the code from others you add. PD is not a licence but the absence of requiring one, and, as I pointed out, does not work in many cases. (Not suing is not “having a licence”, only “not enforcing the rights I reserve by not giving a licence”, meaning taking PD-in-USA code then redistributing under, say, GPL, is a crime in other countries.)
    – mirabilos
    Commented Jan 25, 2016 at 10:36
  • @mirabilos None of those arguments hold water IMO. The first relates to moral rights, which would only be a problem if e.g. you used software to facilitate prostitution or WMD or something equally controversial and credited the author.
    – al45tair
    Commented Jan 27, 2016 at 14:47
  • @mirabilos The second is only kind-of true (not least because not every country is a Berne Convention signatory in any case), but if you declare something public domain, no foreign court is going to support a claim that you didn’t mean it in their jurisdiction. Why would they? The US govt case is interesting though, because it hinges on the fact that US govt works are not eligible for protection under US domestic copyright law; it doesn’t actually involve any kind of declaration stating that the work is public domain.
    – al45tair
    Commented Jan 27, 2016 at 14:54
  • “if you declare something public domain, no foreign court is going to support a claim that you didn’t mean it in their jurisdiction” doesn’t matter because declaring something PD does not exist in my jurisdiction. And the absence of a licence clearly makes a work proprietary and most uses of it forbidden. That’s a by-default ever since the Berne Convention (it was not so in the USA before 1989/1990).
    – mirabilos
    Commented Jan 27, 2016 at 15:49
  • @mirabilos Nonsense. There may be no mention of an explicit mechanism for declaring something to be public domain in the law, but that does not mean that a declaration of that kind is not a clear declaration of the author’s intent. If you went to court, having declared XYZ to be in the public domain, seeking licensing fees for its use, you would lose, in any court, anywhere, because your original intent was clear and it would be unjust to allow your demand for fees. The only time you might not lose is if you have moral rights that are being infringed, and licensing doesn’t help with that.
    – al45tair
    Commented Jan 27, 2016 at 16:14
  • @mirabilos If you know of a case where a court has supported a plaintiff who has declared work to be in the public domain and then successfully sued for infringement, cite it. Otherwise, I say you (and others like you) are being needlessly legalistic.
    – al45tair
    Commented Jan 27, 2016 at 16:15
  • No, that’s completely irrelevant. If I release a work foo, which contains (relevant) parts of bar, and I wish to put a licence on foo, the licence I get for bar has to allow me that, for my own licence on foo to be valid. This is completely separate from whether the author of bar would sue me over it.
    – mirabilos
    Commented Jan 27, 2016 at 18:12
  • @mirabilos If the author of bar has declared it public domain, I say no court is ever going to object to your license, and the court will hold your license valid. If you know of a case where a court has done otherwise, cite it. Otherwise, I say again: you are being needlessly legalistic.
    – al45tair
    Commented Jan 27, 2016 at 18:14
  • In front of a court (and on High Sea) you’re basically in God’s hand. I would not trust your overly optimistic interpretation, especially when I have a lawperson’s different advice (not legal advice, but still advice from a lawperson). IANAL so I don’t have the means to search for actual court cases myself, but the absence of such does not even prove your point (negative proof fallacy).
    – mirabilos
    Commented Jan 27, 2016 at 22:12
8

I find this is workable.

  1. I generally use inline links to SO when code has been significantly influenced by the answer, AND the code has a level of sophistication likely to confuse future and junior developers. This is a practice I use sparingly – often near advanced object patterns or specific algorithm conventions.
  2. I put SO links in the body of a commit message when code has relied on SO answers. This let's me reference things again later, as needed, but keeps the comments out of the project files.

When Not To

  1. If the code is demoing how to use a basic API feature of a language or framework, I consider the SO 'answer' more useful than the docs. In this case, I do not make a link attribution because SO and community have only succeed in being better than the public-domain documentation.

I still agree with other comments — that this direction has issues.

1
  • 1
    It isn't clear to me that a link in a commit message is considered sufficient attribution. Since this is such a sensible place to put the link for future reference, it would be very helpful to have confirmation of whether this also counts as sufficient attribution. Commented Jan 24, 2016 at 2:08
6

Others have already said this, but I figured I would add this in. Your argument is seriously flawed. Specifically, you are under the belief that your recent proposal was accepted due to a percentage of up-votes that you received. However, you are making the following underlying premises/conclusion.

  1. All Users on SO/SE can Upvote
  2. All Users on SO/SE can Down-Vote
  3. In Order to Upvote or Downvote on a "Meta" Issue, you must be part of the "Meta" community
  4. All SO/SE Users are part of the Meta Community
  5. Therefore, all Users on SO/SE can Upvote/Downvote a "Meta" Issue.

On top of that, you are making the following assumptions about the Upvote/Downvote process.

  1. Upvoting indicates factual evidence of approval for the Entire Post
  2. Downvoting indicates factual evidence of disapproval for the Entire Post

This isn't true. One can upvote/downvote a post because of a single sentence. Not only this, but upvoting/downvoting is often done for reasons other than objective reasoning. For instance, (we have all seen this) someone may downvote a Python answer because it wasn't their preferred method of handling the question.

Therefore, upvotes/downvotes shouldn't be taken into consideration when making this decision.

What should be taken into consideration are the ANSWERS to the QUESTIONS posed by the community. A collection of this QA is seriously lacking, and something you should really put together.

In addition, here are some more assumptions/conclusion you are making, and these aren't even underlying, since you explicitly state them.

  1. The community will understand how we will "distinguish code covered by each license regime" through a FAQ that has not yet been created.
  2. The community will understand how we define "code" by a FAQ that has not yet been created.
  3. The community will be able to ask questions, identify problems, and pose academic scenarios based upon the FAQs we have not yet created
  4. Therefore, the community will have opportunity to respond to our FAQs on defining code, and how SO/SE distinguishes Code Licenses.

Obviously, (4) is not sound.

I believe you need to break these issues apart. You need to identify the main issues, create discussion posts, and provide QA sessions for specific issues. As this post, and the post before it stand, the variety/number of potential problems with the proposed change is too large for a single Meta post.

In fact, this post should be considered too broad.

Break apart the issues into their own discussions, link to them in this post. You will be able to get a better feel of the issues at hand in a more specific context.

6

Copyleft to copyright

Openness

Overall, this is a great decision. Given that Code Review is pretty much a repository of code, it's ideal for new posts to hold the MIT license. It is the most permissive open source license, before hitting the public domain.

  • Provides zero warranty on the code, placing all liability on the end user.
  • You may use the code in closed source, private software.
  • You are not required to list modifications to the original code.

Using in source code

The only thing I am unsure about is the requirement to include the MIT license in your code.

  • If I use MIT code from SO, where, if at all, do I place the MIT License in my source?
  • If I take source code and use it as an SO answer, will it become MIT Licensed?
  • If so, can I explicitly state a different license for my answer?

Attribution

Within CC-BY-SA

Most do not realize that the current license, CC-BY-SA], requires attribution. (And, as mentioned above, explicit notices of modifications.) With even stricter guidelines, that means everyone should be citing links to Stack Overflow in their source code.

But they don't, and this won't make them start.

If you take the time to read the license, you will see:

Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

Given that all previous posts will remain (so far) under CC-BY-SA, that means I would need to cite when I use code that joins tables in MySQL, or tells me how to amend commit messages in git.

Within vanilla MIT (which this isn't)

If anyone does link to an SO answer, it's because they want to reference it later, not because of attribution. So a vanilla MIT license would be perfect for everyone.

But a vanilla MIT license is not being proposed.

Rather, one that includes, no, requires attribution, much like the original license.

On the legal side of things...

With either CC or MIT, I could, in theory, write a web scraper of all public Github repos and ensure that my code was attributed. But if someone were to do this, they would be suing a lot of people. Again, because most people just don't care. Does StackOverflow have plans on how to handle this? Or even address this concern?


What is code?

We need to know this definition now, before anything changes with the current system. Here are some questions:

  • Must the sample successfully execute? (Many questions include errors in code.)
  • What about pseudo code?
  • Will Documents place a CC0 license on answers that spit out documentation? Such as git amend -m "message"? I will not attribute to using simple scripts like this.
  • How about languages where (()()()((((()))())( is valid code? Or even the public domain works of Shakespeare (lang)?

This brings up even more concern. What about the words used to explain something? Given an answer does not include code, to help the asker figure it out themselves, would my explanation be licensed MIT?

I don't think it should be. As someone mentioned, I want my explanation covered by CC-BY-SA and require attribution. But I want my code open-sourced without restrictions to help everyone out.

4

TL;DR Expecting users of an Q&A site designed to inform/educate to cite where they learned something every time they use it does not work. We need something specific to how our users use our content.


Simple suggestion: You can use the code, but you may not republish it in a format intended to inform others unless you include the URL (and maybe the copyright)


Rant/Explanation:

It seems like you are approaching this from an open source project perspective, when this is a Q&A site, which is preventing the issue from being addressed.

Unlike an open source project, the question and answer format rarely lends its self to copyright compatible code. It is usually too short, the names are chosen for demonstrating the principle, and it is out of context. The only time I have ever been able to copy/past the code was when I made the question, included code, and the answer was an adjustment on my code.

Most users come to the site to learn how to do something, not to obtain code which solves their problem. The content providers realize that this is the purpose and intent of the content they are providing.

What we need is something that recommends a comment with the URL be added to the code if they copied the code verbatim from the site and requires anyone republishing the information (blog posts, websites, pod casts, books, etc) to list it as a reference. If they republish verbatim, they must also include the copyright notice(s).

1
  • 2
    I really like the use vs. republish thing. It probably should be a separate proposal, though, as it's tangental to the kind-of-MIT vs. CC-BY-SA license change; both the kind-of-MIT (as described) and CC-BY-SA already required attribution. Commented Jan 15, 2016 at 11:59
3

Most of the stuff I read here has been copied and pasted from another site anyway (like php.net). And this isn't a bad thing, people are answering a question hopefully in a way that helps someone but the idea I have to post a link to every SO article I read to get a couple of lines of code in my source is entirely absurd and completely unenforceable.

3

I would prefer a solution that removes existing requirement for attribution.

If a user wants attribution and it makes sense (the code is large and unique enough), (s)he always may publish code on GitHub or elsewhere under any license and add a link and necessary explanations and excerpts to the SO post.

If Stack Overflow, Inc. wants attribution... Wait? Oh shi~

Although, attribution requirement will not stop me and (I think) many other users from posting answers on SO, just as it doesn't stop us currently.

7
  • 5
    We don't want link-only-posts. Or any other posts using other sides as a crutch any more than really unavoidable. Commented Jan 15, 2016 at 0:09
  • 2
    @Deduplicator, link-only posts are bad of course. But if someone wants to provide a solution large enough to think about attribution, it makes sense to host full code on GitHub and add to answer only general description and probably smaller code snippets. IMHO.
    – gavv
    Commented Jan 15, 2016 at 0:19
  • The attribution requirement is there only to compensate people for waiving the requirement to reproduce the entire MIT licence. Attribution is the bread for BSD programmers, we normally use the licence for that (plus the fact that it’s not normally permitted to remove copyright notices), but an attribution requirement is one thing I could consider waiving the reproduction requirements for.
    – mirabilos
    Commented Jan 15, 2016 at 11:36
  • 1
    I don't think people should require attribution for posts on Stack Overflow. Maybe on some of the Stack Exchange sites it makes sense, but on Stack Overflow, it's crazy. A lot of the snippets of code are small and probably would be exempt anyway because of copyright law, but while I think CC-BY-SA made sense for answers as a whole and is what people expect in that regard, I reckon most people figured their code would be copied and didn't expect attribution. Some level of attribution may still be polite, but I say let’s not force it.
    – al45tair
    Commented Jan 15, 2016 at 12:11
  • 2
    @alastair small snippets aren’t covered by copyright law anyway, this is only for “significant enough” posts (threshold of originality). If you don't want to attribute, use the full MIT licence (which requires you, among other things, retain the copyright notice), so credit goes to the author of the code in both cases, which is all we (BSD people) want.
    – mirabilos
    Commented Jan 16, 2016 at 23:21
  • @mirabilos I’m aware of the threshold of originality — which is, I might point out, independent of the size of the snippet (though obviously harder to achieve in a small snippet). Having code on Stack Overflow under multiple licenses (or any kind of attribution license) would be a disaster, IMO, for reasons I gave in my own answer.
    – al45tair
    Commented Jan 18, 2016 at 8:51
  • I upvoted this answer not because I agree with it, but because it makes sense. Do you want public domain? Just adopt the CC-0! At any rate don't invent a crayon license.
    – Nemo
    Commented Feb 2, 2016 at 8:21
3

In my opinion, this is still not thought trough well and I am against it. I upvoted the last proposal because I couldn't downvote yet and I thought it is great that you think about this and asked the community for feedback.

You choose to ignore the feedback and I have enough points to down vote, so take my downvote!

If you want constructive feedback:

  1. Define what your goal is
  2. Describe how your proposal helps reach this goal
  3. For the 15 or so top answers to the last post, describe how they would influence reaching this goal
  4. Discuss this with the community
  5. Listen to the feedback
2
  • " I upvoted the last proposal because I couldn't downvote yet"... You can always no neither you know?
    – Tim
    Commented Jan 16, 2016 at 0:44
  • 1
    @Tim as stated, I upvoted because I think it is a good thing that they think about the (potential) issue and ask the community for feedback. My upvote didn't mean "I totally support exactly this proposal 100%" but more "Good that you are thinking about that, in my opinion the proposal is not very good this way, let's discuss". I merely stated that I couldn't downvote if I would have wanted to do so. Since now this upvotes seem to be understand in the first way and I can downvote, I downvoted this question. This means "The proposal is not very good this way, let's discuss it."
    – Josef
    Commented Jan 18, 2016 at 11:47
3

I'm not a very active user on Stack Exchange, but this solution seems a bit chaotic to me, and I think it might introduce more problems than it is meant to solve.

Most of the answers I'm looking for when I browse Stack Overflow are one-liners or very trivial solutions in a programming language I'm not skilled in. It would be rather ridiculous to flood my code with comments linking to entry-level Stack Overflow answers when I submit a pull-request on a Git repository written in Go.

Also, I completely agree on the fact that the consensus was very partial. Stack Exchange is not only made of super-expert and super-active gurus, but also of thousands of programmers that give sporadic contributions with their humble (possibly wrong) answers and obvious questions — just as I do. This way, you have probably lost a huge slice of Stack Exchange contributors and users that just don't have enough rep to express their agreement or disagreement. For instance, I could not even upvote the answers that were in contrast with the proposal!

Please, reconsider,
a Stack Overflow lurker.

1
  • 1
    Seems you are saying the code you adapt fails the boundary of copyrightability. So, what's your problem? Commented Jan 15, 2016 at 16:08
2

I agree with the change to a (default) attribution-required license, as consistent with CC-BY-SA for text. If a user posting code feels this is an undue restriction, the dual licensing option (including placing code in the public domain, or others) is available.

I've upvoted this Question (as I did the original) not because I think it presents a final framework (although this is progress) but because I think MIT-style licensing with attribution is a better default than (what many would overlook) licensing code the same as the accompanying text exposition.

Here are some points, about which I can imagine consensus emerging:

(1) Simplicity of license requirements is good.

(2) Consistency of default licensing is good.

(3) Clarity about code licensing philosophy (as expressed by the default value) is good.

Various proposals to expedite code re-use are cropping up or have been pending around a long time. This isn't the place for addressing those details, but I would not downvote this as a proxy for not having optimized implementation details in place.

5
  • A crayon license is the opposite of your point (1), so the current proposal goes against your stated desires.
    – Nemo
    Commented Feb 2, 2016 at 8:20
  • @Nemo: I'm not sure we are on the same page re the meaning of "crayon license" and what it is the opposite of. This OpenSource.SE post gives Bruce Perens remarks on his origination of the phrase. How does "crayon license" relate to the current proposal?
    – hardmath
    Commented Feb 3, 2016 at 13:52
  • Does meta.stackexchange.com/a/272993/248268 answer?
    – Nemo
    Commented Feb 3, 2016 at 14:48
  • @Nemo: While some of the answers on this thread use "crayon license" as a pejorative characterization, neither that Answer (by abligh) nor my Answer used it. I was responding to your Comment trying to put your use of the phrase in your intended context, so that link doesn't help with that.
    – hardmath
    Commented Feb 3, 2016 at 15:05
  • Ok. The original "definition" is «Crayon licenses show a lack of understanding of copyright law, license structure, and most important: what would happen if the license were to be interpreted in court»; two of the problems they pose are "License proliferation" and "Legal uncertainty" per the OS.SE post you linked. I'm stating two things: 1) all these characteristics apply to the terms proposed by SE in this post; 2) all of that is the opposite of "simplicity of license requirements".
    – Nemo
    Commented Feb 3, 2016 at 15:24
2

I get the reason why this is being done. From SE's perspective it is more protected against certain legal actions.

I love SO and use it all the time. Everything that I've submitted I want free and open to everyone who wants to use it.. period. (That's the reason I joined in the first place) I always saw SO as a community for sharing knowledge. Not as a potential paycheck for trolls.

The reason why I use SO is because there are great and intelligent people here who genuinely want to help people out. But if I start needing to have to add in code links to SO or possibly face legal action for using a snippet, I will reluctantly stop using SO.

Also, you talk about this increasing productivity. Well.. how about this hypothetical situation. I use a code snippet off SO that wants Attribution. I change all the variable names, I change the types of loops, I restructure it a bit. Now I have something that is indistinguishable from original code, but I've had to spend a good amount of EXTRA time doing these changes and I am also a criminal...

As someone stated above, you are creating potential landmines for developers with the current direction. Especially for people in companies with strict documentation standards. Whereas they are forced to take the shady route I described above or to spend a ton of extra time figuring out a different solution when the answer is already available.

Possible solution:

If you want to cater to the subset of people who actually DO care about getting proper recognition, then add in a small checkbox into the answer form that says something like "Yes, I want Attribution for my answer". THEN add in filtering in your search functionality to remove those answers for people who don't want to have to deal with that crap.

Anyways, just my 2 cents. I get that this move will reduce the legal concerns for SE, but I'm concerned you may irreparably damage this community and open doors for other competitors when people migrate away.

I was actually quite lucky that a co-worker pointed me to this page. Otherwise I wouldn't even have seen this coming and perhaps gotten in trouble in the future. (Ignorance of the law is no excuse right?)

Also, not enough rep on meta to downvote. fml

3
  • 2
    Anyone who wants to provide their content under a more permissive license than the one required by the TOS can do so. Everyone still owns the rights to his or her content. But if the default was "public domain equivalent", dual-licensing with more restrictive terms would be pretty much moot.
    – jscs
    Commented Jan 15, 2016 at 19:42
  • I get that, but most of the community seams to want the default to be open. Why not implement the possible suggestion that I wrote, and then people who click that checkbox have their answer put under a different license than the default. Proper filtering can reduce accidental usage of licenced code. This should not be a hard thing to do.
    – Dave
    Commented Jan 15, 2016 at 19:57
  • 2
    I don't think its SE that has the legal problem but rather the users who occasionally may be told by their legal department "you cannot include anything that you got from SO." SE can publish our works under CC-BY-SA without any problem - no matter if it is code or text. It is the users who consume that material that have the uncertainty (that would then extend back to the "should SO be something I am using?")
    – user213963
    Commented Jan 15, 2016 at 19:59
2

This is rather good now…

… considering a few things:

  • Small snippets are not affected as they don’t reach the threshold of originality under copyright law. This is just fine.
  • People can choose the regular MIT licence for posts, or just attribute. I’d be fine with waiving the MIT reproduction requirement for an attribution requirement. However, people should probably be made aware that, when they include SO code with attribution requirement into their own code, they can only publish it under licence terms that keep the attribution intact (or choose the full standard MIT licence for the snippet they took).

… except for one b̲i̲g̲ thing:

‣‣‣ What part of an answer is actually code?

I cannot stress this point enough. This absolutely must be clear before this goes into effect, and the only way to easily make it clear is to use the same licence terms for the entirety of a posting, as I’ve already requested.

1

The meta community, as others have noted above, is not representative of the SE user base. Like many SE users I rarely, almost never, participate in meta anymore due to the general hostility to new ideas and the skew of the small number of pundits who dominate meta and downvote anybody that does not share their viewpoints, which seem at least to me to be somewhat parochial, if not downright cliquish. So, pretending that meta votes represent a vote by the user base I think is completely disingenuous.

As for this attribution proposal, it does not have any legal basis for a variety of reasons, so it is nothing more than bureaucratic sound and fury that signify nothing other than confusing people and adding FUD to the site.

No lawsuit ever in history has been won by somebody against another person for "failing to attribute" their open source code (cite one if I am wrong) so saying that attribution is "legally required" is simply wrong. This is due to lack of harms and a variety of other legal issues too abstruse to get into here. The bottom line is that you will not ever prevail in court on this "legal requirement".

Secondly, asserting that SE "owns" the code submitted here is a pretty dubious claim, if that claim is being made. Are you saying you own my code? You would get laughed out of court if you brought that to trial. Since you don't own any of the code here, making dictates about attribution of somebody else's code seems highly out of turn to me.

3
  • 4
    I would need to read the full ruling, but it appears that Jacobsen v Katzer determined that all open source license conditions are enforceable as copyright condition. That means that I can choose to sue over failure to attribute. Commented Jan 15, 2016 at 16:37
  • @ThomasOwens That is pretty interesting. Nevertheless, I think SE would have a hard time trying to enforce an attribution of a user-submitted code snippet, regardless of that particular ruling. Commented Jan 15, 2016 at 16:47
  • 1
    The copyright holder can also enforce. Granted, it may be difficult (especially if the software is closed-source). But I, personally, prefer to have a solid legal ground to stand on to protect my personal intellectual property. Commented Jan 15, 2016 at 16:52
1

Simply use CC0 for Stack Overflow code

I do wonder why everybody looks so reticent to the public domain (or getting close to that), since Stack Overflow answers have always been used that way.

Using CC0 will not prevent well-meaning people to include a reasonable attribution to your answer. Also, it will not prevent other people to not attribute your answer on other works. Again, as always.

CC0 is entirely reasonable for documentation, which is, in fact what Stack Overflow mainly is.

From Stack Exchange's team, the fact is that trying to "not mess up" things by providing a different clause on the terms of use of Stack Overflow, are messing up all other sites on which a permissive license is not that reasonable.


If you will downvote, please comment reasons. No replies will be given from my part.

3
  • People downvote because they believe in copyleft, for instance. I do but I upvote this anyway because CC-0 is honest, while the StackExchange proposal is completely deceptive. However, you still have to solve the problem "what is code?".
    – Nemo
    Commented Feb 2, 2016 at 8:25
  • I think I can comment, since is not a downvote :P with CC0 does not matter, anything which can be run or written like this does not require attribution, any explanation does (while is not a code comment, as // /* */ -- #). Commented Feb 2, 2016 at 12:03
  • 3
    Using CC0 will take away any possibility from Stack Exchange to fight against scraper sites that do nothing but mirror SE content and slap ads on it.
    – Pekka
    Commented Feb 7, 2016 at 20:25
-1

I disagree with attribution by default.

I don't want to have to add a comment in my code for every single one-liner or trivial function I copy and paste off of Stack Overflow. Isn't it true that I would now be required to do so, no matter how minor? I add code in my answers with the knowledge that others will be copying and making use of it. I can't imagine posting anything substantial enough within an answer for me to care about attribution.

I am really just trying to get an accurate pulse on this single issue.

18
  • 14
    You obviously don't realize that you should have been doing that since ever, given we're run under an attribution required license. It's a problem that is tangential to the MIT license issue.
    – yo'
    Commented Jan 14, 2016 at 20:57
  • It's certainly good practice to link back to the source for anything of significant size, and I do often. Again, this is more of a measure the pulse answer.
    – Brad Koch
    Commented Jan 14, 2016 at 20:58
  • 12
    Not every single one-liner or trivial function would require attribution. Only work subject to copyright can be licensed. There is a threshold of originality that must be passed. Many code snippits on SO won't cross this threshold of originality, but entire posts may. However, on other sites (Code Review, Programming Puzzles and Code Golf), the code posted may likely cross the threshold of originality. Commented Jan 14, 2016 at 20:58
  • @ThomasOwens Sorry, I wasn't exactly clear, and thanks for making it more precise. The point is: the new licence doesn't change the fact that you have to attribute.
    – yo'
    Commented Jan 14, 2016 at 21:01
  • 2
    @yo' You're right. However, most of the code on SO now doesn't require attribution. Commented Jan 14, 2016 at 21:02
  • 2
    @ThomasOwens So now for me to use SO, I'll have to be a software developer (student or professional) AND acquire legal knowledge about originality and copyright? Like I've been saying throughout this whole mess, I don't care if you don't attribute any of my answers to me and I would certainly not want to have that burden over my head. Commented Jan 14, 2016 at 22:47
  • @MarcoAurélioDeleu If you are posting content on the Internet or using content that you found on the Internet, you should understand how that content is allowed to be used and what restrictions there are on it. Things on the internet aren't freely available to do whatever you want with - that's not how intellectual property and copyright work. And as a subject matter expert, I very much care about attribution to myself and receiving appropriate credit for my contributions. Commented Jan 14, 2016 at 22:57
  • 1
    Having restrictions around how content is allowed to be used is certainly the legal default and one method, but expressly allowing code to be used with absolutely no restrictions is a second. It simply sounds like both Marco and I would prefer that StackExchange establish itself in the second camp, thereby mitigating any negative consequences of making a mistake. Though by the vote so far it seems Thomas and the majority prefer the first.
    – Brad Koch
    Commented Jan 14, 2016 at 23:06
  • @ThomasOwens really, who is going to evaluate what is original and what isn't? It can be a very thin line... And I'm sure 90% of users don't have a clue about the need for attribution at the moment. Commented Jan 15, 2016 at 8:01
  • I disagree with attribution by default also, and I tend not to use code from Stack Overflow — but have written answers there. I would rather my answers were used, instead of being avoided because of attribution requirements.
    – al45tair
    Commented Jan 15, 2016 at 12:24
  • @alastair If you disagree with attribution by default, why do you post there now? Everything is CC BY-SA. The BY means "Attribution". I simply want the same types of terms applied to prose to be applied to code - nothing more. Commented Jan 15, 2016 at 12:32
  • @BradKoch I don't want restrictions on how my code is used. My preferred licenses for things that I release into the wild are CC BY and Apache 2.0 - two very permissive licenses for content. What I want is attribution and recognition for my work. Commented Jan 15, 2016 at 12:33
  • 1
    @alastair Again, I agree with you for Stack Overflow. But this change is network wide. Although most of the code on Stack Overflow likely doesn't pass the threshold of originality. A small fraction, however, may. But what about other sites? I'm particularly looking at Code Review (where it is mandatory that you post complete and working code) and Programming Puzzles & Code Golf (especially the puzzles side - some of the puzzles get non-trivial implementations posted). Commented Jan 15, 2016 at 12:37
  • 1
    @ThomasOwens Agreed, the fact this change is network wide is part of what has made it so controversial; different rules make sense for some sites (Code Review is a great example).
    – al45tair
    Commented Jan 15, 2016 at 13:08
  • 1
    @alastair With different rules for different sites, I'm worried that it would get more confusing. Especially since posts can be migrated. If someone posts a code review question on Stack Overflow where code is licensed one way and it gets migrated to Code Review, that's an issue. Other users or mods can't relicense code. You'd effectively have to tell people that they either need to go to a new site (and, oh, by the way, agree to a different set of terms of use) or not get an answer because it's off-topic on one site or the other. Commented Jan 15, 2016 at 13:12
-1

Change 1 was made to accommodate contributors who want credit, plus to help developers identify the provenance of a Stack Overflow code snippet when they find it integrated into a project.

For these contributors that you speak of, this modification changes nothing.
These contributors were already covered by a clause in the original proposition:

You don’t have to include the full MIT License in your code base. Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement, as long as users give reasonable attribution upon request of the copyright holder (or Stack Exchange on behalf of the contributor). This optional exception to the MIT License will live in our terms of service.

The only difference is that instead of being an opt-in for those who want attribution, it's a mandatory for everybody.

What about those of us who are fine not receiving attribution?
What accommodations do we have?

1
  • 3
    Anyone who wants to provide their content under a more permissive license than the one required by the TOS can do so. Everyone still owns the rights to his or her content. But if the default was "public domain equivalent", dual-licensing with more restrictive terms would be pretty much moot.
    – jscs
    Commented Jan 15, 2016 at 19:47
-1

I don't cut and paste code from here anyway - I mean, how many answers are complete solutions to begin with?

I give code away all the time in forums - just "hey, this should get you moving in the right direction" stuff - and it would be asinine to insist on attribution for all of it.

It's all cool with me, though - like I said, I don't cut/paste anything anyhow.

1
  • 6
    There are two halves for this. There is the legal department freaking out about copying someone's code without a license. There is also the lack of a disclaimer of warranty on the code. If someone uses the code you have provided under the CC-BY-SA license and it breaks things badly, things can go badly for the person who said "this code would solve your problem."
    – user213963
    Commented Jan 17, 2016 at 1:13
-1

Instead of one fixed license for all answers/code, why don't you offer one choice from multiple possibilities of licenses for each answer, similarly like YouTube videos can have one of two different licenses?

-1

Why don't we just have a supercomputer generate every combination of 20 lines of machine code and make it public domain, then 90% of the answers on SO would just be re-implementations of the same thing using different variable/function names.

The point is that SO is intended as a reference as much as a problem solving site. Most of the usage indeed involves just reminding ourselves how a few lines of code work and pasting in/modifying/adapting to the current problem. It is a memory aid that saves us a few minutes of re-working through a problem in our head, or looking up in other less-efficient "spec" type references.

Forcing attribution for this is nonsensical.

Anyone requiring attribution should do so by having their own repository / blog post and by requesting that Stack Exchange REMOVE any post which reproduces a significant portion of their project. So "attribution-needy" people can work it out with Stack Exchange.

There is of course the issue of people having a "3rd party" post a codebase on SO, then quickly "use" the code, and when SE takes it down, they claim they got it from StackOverflow. However, these are RARE cases and the POSTER can be tracked down and sued for damages. But once code is on SO, it's of necessity open, for ever. It becomes like E=mc2 .

Regarding Disclaimer, no one should be allowed to view any code without agreeing that all code is without warranty and NO ONE is responsible if the code damages their system/causes loss.

-2

TL;DR

I upvote your proposal; because a simple, single URL as a comment e.g. ...

// https://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object

... is what I want to have in my code if I grab a fragment (even a large fragment) from Stack Overflow.


What you are changing, and why you're changing it

It's not wholly clear why you're making this change: neither this topic nor the previous one explains, very clearly, why you want to change something.

See also this comment which says,

What exactly is the problem that you are trying to solve here? ... there has been little justification for the change ...learn to use meta properly and write a feature-request that details an actual problem that you want to solve.

But I think I gathered that the problem (which you're trying to solve) is that the current CC-BY-SA license requires an attribution whose format is unreasonably large and detailed for developers who want to grab code fragments from StackOverflow.

The current attribution requirements are detailed here: Attribution Required (2009, by Jeff Atwood)

So let me clarify what we mean by attribution. If you republish this content, we require that you:

  1. Visually indicate that the content is from Stack Overflow or the Stack Exchange network in some way. It doesn't have to be obnoxious; a discreet text blurb is fine.

  2. Hyperlink directly to the original question on the source site (e.g., https://stackoverflow.com/questions/12345)

  3. Show the author names for every question and answer

  4. Hyperlink each author name directly back to their user profile page on the source site (e.g., https://stackoverflow.com/users/12345/username)

The new attribution requirement which you're proposing now is less onerous, i.e. it's simply:

A URL as a comment in your code is reasonable attribution.


IMO you could alternatively make this change on Stack Overflow only

One further suggestion: maybe make this change for StackOverflow only, not for other SE sites.

For example maybe this new suggestion is less appropriate (maybe a more detailed attribution remains more appropriate) for code on CodeReview.SE, for example.

2
  • I don't think simplifying attribution is their main purpose, but to allow code to be used under a permissive license, like the MIT. But then the MIT's attribution requirements are stricter. Commented Jan 15, 2016 at 3:47
  • 1
    Usage of code is something else than republishing content. The latter is an effort against content scrapers.
    – Sumurai8
    Commented Jan 15, 2016 at 17:10
-2

I'd like to present my solution to what I see as the true base problems we're trying to address here. At least part of my answer probably belongs on a feature request, but it seems relevant to the discussion so I'm posting here first.

The problem(s)

In looking through the answers and comments on this and other SE topics, I see two problems we're really facing – legally protecting end users, and legally protecting contributors. The two problems unfortunately have conflicting ideal solutions. The first is a very permissive license that allows any use of any knowledge/content/code on the site without attribution. The second is a very restrictive license that conserves all the rights of contributors, allowing them to contribute under as permissive or restrictive license as they desire or are able. Users themselves might need to contribute questions under more restrictive licenses, as well.

The solution(s)

What we really need is a reconciliation of those two, and a lot more official support around licensing.

First, protect contributors by:

  • officially supporting per-contributor, per-post, per-code block license selection
  • using a restrictive base license on all SE content which will allow contributors to choose their own license as they desire (this should probably be “choose from a small list of approved licenses of increasing permissiveness", rather than letting anyone choose any license they want). The base license should be the most restrictive license we want to allow on SE.
  • defaulting contributions to the restrictive base license to conserve the contributor's rights, but making it obvious when posting what that license is, and making it easy for the original author to change to a more permissive license.
  • documenting license changes for auditing purposes (maybe separately from the edit history, maybe not).

Second, protect users by:

  • allowing users, on a per user basis, to decide what licenses they're comfortable looking at content under. Assume that unregistered users are only comfortable viewing public domain content (Note: I know public domain isn't a license -- and in practice we should probably use CC0, WTFPL, etc.)
  • hiding content that is under a more restrictive license than they would like to see.
  • displaying license information for posts license the user has already accepted prominently. Put the post's license in a hyperlink near the author's name. If a code block has a different license than the encompassing post, display that at the bottom of the code block (automatically). Do the same for a block quote. The license link should preferably have a display text with the license's common name, and link to a page that displays the rights and restrictions in plain English, as well as contains the full legal text (or another link to that). It might also be useful to have visual cues for the license, so that at a glance an end-user knows how they can use the content.

In addition, it would probably be convenient to hide the content of post with a license that hasn't been agreed to, to save screen space. It would also be convenient to allow users to easily view those posts by agreeing via a pop-in notice/dialog on a per-post, per-code block basis. Those exceptions should be recorded so an audit trail exists to maintain plausible deniability, however.

Another benefit is that if contributors choose to re-license their contribution, users are automatically protected -- if they used it previously under the terms of the old license, they're fine. If they need to use it again, they have to agree to the new license beforehand.

To address some other concerns: We don't need to define “code,” as contributors already do so with the code block. We don't need to worry about the legality of the contributor-selected license, or whether it is enforceable, either. That is up to the contributor if they choose to try to enforce it.

The biggest legitimate concern I saw from contributors is that they only provide answers here to build their professional reputation and that attributions are important for that. This approach allows them to continue that practice. It also takes away what I feel should be an ethical dilemma for them: they are in a position to demand attribution for answers placed on a medium most users assume to be public domain -- answers that I suspect would be seen much less if users could hide them. Instead, now they would be able to demand attribution (and any other restrictions they prefer) at the cost of limiting their audience only to those who agree to their terms which is a much more fair proposition for all involved.

3
  • Why should anonymous users be prohibited from learning from Q&A under CC-BY-SA? Commented Jan 23, 2016 at 14:40
  • Why should anonymous users be subjected to legal threat without asking them?
    – erics12357
    Commented Jan 26, 2016 at 20:45
  • To add to that, though, I think most answers / contributors on this site will quickly default to a public domain license anyway and it will be a moot point, for exactly that reason. I suspect that relatively few people on this site want to limit the audience of people that they can help just to require attribution. Those people will be free to do so. I don't think it's fair for anyone to be able to throw anything out there and require attribution, though, especially not in a climate where 9 lines of generic array code can lose billion dollar lawsuits. Deniability helps a lot with that.
    – erics12357
    Commented Jan 26, 2016 at 20:57
-4

I would suggest to introduce code signatures as a common practice in the same sense that paintings have traditionally been signed by the artist.

Such a signature would be some short URL pointing to a site explaining the licensing of the code. Ideally the signature would be partly a personal id, partly a an optional hash identifying the snippet, partly an optional obvious id of license type. Like: si.gn/codeguru42[/cc-by-sa][/a1b2c3d4]

Then, people could decide to either sign their code that way when putting it online in any forum, and doing so would generally imply that they intend their work to be used with that signature included (as reasonable attribution), with license restrictions imposed as described at the link target.

Not doing so would imply that they intend to put their work in the public domain (use CC-0).

Also ideally common license providers should also provide such static links, so that it is possible to add // si.gn/apache2 as short comment to code instead of the full apache2 header. Because while a full header is legally nice, it is just noise in forums, and prone to be cut out when pasting code to the internet, or back. They just get in the way of everything.

1
  • People cannot relinquish their work into the Public Domain in many countries. That makes reusing such work by anyone illegal. Not to forget country boundaries (the Berne Convention only applies to copyrighted works, not to PD).
    – mirabilos
    Commented Jan 24, 2016 at 14:08
-4

And this is a problem with a seperate meta on top of the one which is already present on stackoverflow. You gain reputation on one of the sites that lets you interact, but then a decision is taken on another one that would apply to the first one and you cannot down vote it let alone even up vote one of the responses.

This is a problem that should be addressed. I would have up voted one of the existing answers on this question which address my concerns, but I can't when I would have been able to do it on the stackoverflow meta.

Open it up to the sites which would be affected by the change to actually get the feedback instead of adding it on a meta which is harder to participate in.

1
  • 4
    That is all true, but this is not an answer to the question and your concern is already raised here. For normal site meta's you'll need 5 rep so I don't think it is strange to have a similar barrier on the network-wide meta. Upvote privilege comes at 15 rep. That is 7 suggested-edits (or get the association bonus at 200 rep on any other site).
    – rene Mod
    Commented Jan 16, 2016 at 19:19
-5

Change 1 was made to accommodate contributors who want credit, plus to help developers identify the provenance of a Stack Overflow code snippet when they find it integrated into a project. Change 2 was made to allow you more time to digest this change and socialize it within your organizations.

Accommodate contributors who want credit

Contributors already get credit by up-votes and other awards on Stack Overflow. They can even see the views of the answer and their impact to get a good estimated of how much people use their code/answer.

Contributors still cannot identify the provenance of a Stack Overflow code simple because

Even if people add attribution, how and when are you ever going to see their source code? Lets guesstimate a little. Say in your lifetime you see 0.001% of all code written. Of that code 0.001% is relevant to any of the Stack Overflow questions you have answered. Of that code 0.001% of the developers saw your stack overflow questions. Congratulations, you now have a 0.0000001% chance of ever seeing a piece of code with a link to your answer on it. Rejoice!

1
  • "Credit" is synonym of "attribution" in that sentence. In fact "credit" literally translates into "attribution" in some languages (e.g. Italian "attribuzione [di paternità]").
    – Nemo
    Commented Feb 2, 2016 at 8:27
-6

The solution to this problem is to make code Public Domain by default, and let the individual code authors explicitly identify which license they prefer, if any.

4
  • 3
    What is code? You have to answer this question before making any further changes. And please, stop flogging this already dead horse/question. There are relevant threads here on Meta SE explicitly asking for input. Commented Jan 23, 2016 at 9:23
  • 1
    First, could you give an example of when code is ambiguous? It seems pretty clear to me what code is. Second, I submitted one answer, which hardly constitutes as "flooding" anything. If the actual moderators have a problem with receiving any new answers, then they can lock down this question.
    – fizk
    Commented Jan 24, 2016 at 12:07
  • 1
    This cannot work because people cannot relinquish their work into the Public Domain in many countries. That makes reusing such work by anyone (including SO/SE themselves) illegal. Not to forget country boundaries (the Berne Convention only applies to copyrighted works, not to PD).
    – mirabilos
    Commented Jan 24, 2016 at 14:13
  • You can't meaningfully apply a more restrictive license to something that's compelled to be available under a permissive license like CC0, and I don't believe you can offer a license at all to something that's truly in the public domain. If it's in the public domain, that means that you simply do not hold any copyright to it.
    – jscs
    Commented Jan 31, 2016 at 20:20
-8

What if a developer writes a piece of code that happens to be exactly the same as what was posted on Stack Overflow, without actually seeing it on Stack Overflow?

Would you the developer be liable?

And can anyone be liable if the offender can claim it's their own invention and never saw it on Stack Overflow?

If it's that the date on Stack Overflow is older, must developers now check for every line of code they write if it's already on Stack Overflow?

4
  • 6
    This was never an issue, even before the proposed change. What you describe are trivial pieces of code.
    – Sumurai8
    Commented Jan 15, 2016 at 16:46
  • Copyright law is all about copying. Independent creation is entirely permissible.
    – Mark
    Commented Apr 20, 2017 at 22:50
  • @Mark But how do you prove that it was an independent creation? If it happens to be the same code.
    – MrFox
    Commented Apr 25, 2017 at 11:39
  • @MrFox, either the code is trivial and is thus ineligible for copyright (there are only so many ways you can call fopen()), or there's enough freedom for individual stylistic variations (eg. variable naming) to show up.
    – Mark
    Commented Apr 25, 2017 at 20:45
-10

This is a good change. It essentially legalizes what is supposed to be good practice anyway (provide a comment linking to StackOverflow), and does so in a manner that is clearer than CC-BY-SA. The only problem is trying to come up with a legal definition of code; it may just be better to license the entire text under MIT.

It is a bit of a shame that this change is divisive within the community, but opponents should keep in mind that if this change doesn't happen, it won't stop the current status quo. People will still just copy code from StackOverflow right now and claim it as their own, still providing that link. The only difference is that they are potentially liable to be sued (since CC-BY-SA may arguably imply that the person might need to license their code under a copyleft license), but who actually is able to sue them? It's either:

  • The original poster (well, good luck tracking every single repo on your own to make sure that your sacrosanct code is not being copied...and then finding a lawyer to represent you)...or
  • StackOverflow (which, quite frankly, is more worried about monetization than they are about policing your code)

If a law is not properly enforced, it might as well not exist. Better to change your policy to something that people will actually adhere to.

Besides, contributors are not the only people in StackOverflow. This website is a resource for all programmers, to use as they see fit...and I doubt that all those programmers are actually active on Meta. Ideally, programmers should learn from these code snippets that they are using, but think what happens if they don't learn.

If programmers are copying and pasting from SO too many times, then they're only harming themselves and their final codebase (since they got a bunch of code but are unable to comprehend what it does). Everyone looking at the code will know that the programmers in charge doesn't actually know what they're doing, and the resulting codebase will be an unmaintainable mess. I think that's a good enough punishment for them, far more so than the potential of legal threat that may or may not actually be acted upon.

2
  • 1
    Many of us can agree that the status quo is not ideal, but going ahead and explicitly allowing bad behavior (as this appears to, inadvertently) is not progress. Commented Jan 14, 2016 at 19:25
  • 13
    People will still just copy code from StackOverflow right now and claim it as their own And they will still do that even with the proposed licensing changes...
    – Cypher
    Commented Jan 14, 2016 at 19:36
-10

1) One day a long time ago, I received an answer from a good Sir named @dawg: https://stackoverflow.com/users/298607/dawg. He is one of the most talented and friendly people I have ever met on this site. I look forward to citing @dawg on my next work so that the whole world recognizes his contribution and finds out from his profile that "On the Internet, nobody knows you're a dog".

2) 99% of the people using Stack Overflow do not even have an account on Stack Overflow and, if they do, they probably do not have 125 rep to upvote/downvote any posts here on Meta.

3) Hence, 1% of the people using Stack Overflow are currently trying to make a decision for 99% of the users.

4) If I knew this was going to happen, I would have stayed in Russia: a place known for its oligarchy.

5) Please do not cite @warship in any politically sensitive documents. Too bad I stand to lose this privilege on March 1, 2016.

2
  • 6
    99% of the people using Stack Overflow do not even have an account where did you pull those numbers from?
    – Tim
    Commented Jan 15, 2016 at 13:10
  • 1
    Common sense...
    – warship
    Commented Jan 16, 2016 at 0:50
1
2

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .