5

Consider this scenario:

  • I was trying to implement my own version of some awkward functionality.

  • The same functionality is implemented in at least one open source library (which allows copying).

  • My code is written from scratch and not derived from any open source library.

  • I wish to make use of this at work - so technically it becomes a "work for hire" and the copyright for my implementation belongs to my employer - even though I did it outside normal working hours.

  • I could not get this work so I asked a question on stackflow which is basically "how do I implement this functionality?"

  • The question was not answerable without reference to my implementation so I included the relevant almost functional code in the question*.

  • With the help of an answer I was able to get the code working.

  • The answer which helped does fully answer the question. However, I am now in a position to answer it myself.

  • I would like to do so by publishing a complete annotated example as a project on github.

This would involve publishing

  • a working implementation
  • my unit test suite
  • assigning a license - E.g. BSD

In principle this would be useable in its own right. Live code is better than 'copypasta'.

Q Is it 'safe' to do this without getting permission to open source from my employer? I would very much like to do this the proper way. However, I have been trying to get the company to define an open source policy for many years without success thus far. I hold little hope of this happening in a timely manner.

Some relevant points

  • code to do this is provided in at least one open source library with a license that allows copying - so it is does not meet requirements for originality of IP
  • There is essentially only one way to implement this functionality correctly - so fair use or Scènes à faire might apply
  • It is sufficiently awkward to implement that a good Q&A pair on stackoverflow would be beneificial to the community
  • my jurisdiction is the UK.

Assuming it is trivial (de minimis) would publishing my test suite affect that? Would it be safer to publish just the minimal example on stackoverflow (making it CC-by-SA)? How can I tell if it is sufficiently trivial that copyright rules won't apply?

What happens down the line if wish to make alterations to the open source project independently of work for my employer?

This is a general question but the one which prompted it is this one (where I was trying to implement a relative pointer type in C++, of which the offset_ptr from boost is perhaps the most well known example:

Relevant related questions:

Relevant concepts:

*could even publishing the broken code in my question technically be considered a copyright violation?

4
  • 1
    Not an answer to your question, but some relevant observations: 1) The bar on copyright protection is really low. Even a "hello world"-type program you write is protected by copyright (regardless of the number of similar programs already written by others). 2) the addition of your testsuite is very unlikely to be 'de minimis'. For a change to be 'de minimis', it has to be insignificant. Jul 4, 2022 at 10:25
  • According to this article hello world is not protected by copyright. If you disagree can you cite otherwise? Jul 6, 2022 at 14:25
  • 1
    I am not fully convinced by that article that there are absolutely no copyrightable parts in 'hello world', but my main point stands: it takes very little to get copyright protection and the number of similar programs does not play a role. Jul 6, 2022 at 16:24
  • You could tell your employer that the functionality that you need is in an open source library that is available online. The fact that you wrote that open source library, need not be mentioned. Most places allow linking with reasonably licensed libraries, as long as you document it plainly that you're doing that. And if they don't allow that, then maybe there are business reasons to write or keep all the code in house, so even if it's "safe" in a legal sense, maybe it's not "safe" in a business sense.
    – Brandin
    Jul 7, 2022 at 12:52

1 Answer 1

2

You have wished to develop some code to do a particular job of work. Having read an open-source codebase that does a similar job, you developed your own code, with the assistance of others on a SE website. You wish to further develop this code as part of your paid employment, and include the result in your employer's proprietary codebase. Your employer has no clear open-source policy, and has shown some resistance to engaging with the idea. At the same time, you wish to place the work you've done on GitHub, under some kind of open-source licence.

On the basis of what you've told us, it seems to me that the code you've developed thus far is arguably copyright-entangled with the open-source library (NB I don't say it is; I only note that your admission has made your defence against any future copyright-violation lawsuit harder). Further, your code is almost certainly subject to the SE CC BY-SA licence. Any further solution to this problem you develop risks similarly entanglements.

You raise a number of legal defences, though I am unpersuaded by at least some (fair dealing exemptions in the UK apply only for non-commercial research or study, most of the jurisprudence on "only way to implement" is not from England and Wales and so not binding here, and as Bart says de minimis is a very low bar to have cleared). But the key problem with all of them is that they are defences: you have to press ahead with potentially-infringing behaviour, wait for the rightsholder to sue, then raise those defences in court. You may be willing to do that for the GitHub project (though the Boost licence is an MIT-clone, so a GitHub project under CC BY-SA or a mutally-compatible licence such as GPLv3 would be a strong possibility), but your employer may be very much less willing to shoulder that risk.

So at this point, I think you would be unwise to use this work (or any obvious derivative thereof) in a work scenario, and extremely unwise to do so without your employer's clear, written assent. If you get this assent, I would abandon any plans to publish the work on GitHub or elsewhere; it's very much an either/or situation. If you don't get the assent and wish to proceed with open-source publication, this becomes instead an ordinary licence compliance question.

6
  • The library is boost as you can see from the linked question which you seem to have missed. I have not used any boost code as the basis of my work. It is entirely created from scratch. I mentioned the existing open source library here so as to demonstrate that the concept is not original. In fact I am effectively trying to implement an interface defined by the C++ language hence "the only way to implement" argument. The trouble is it is defined in a way that makes it challenging to implement (else I would not have had to resort to stackoverflow for help). Jul 6, 2022 at 11:41
  • I have added a bullet " * My code is written from scratch and not derived from any open source library." to make this clearer. Jul 6, 2022 at 11:45
  • Thanks for that. I understood you to say that you had at least read the boost code before trying to write your own. If that is not the case, and you are quite sure that your work can in no way be regarded as a derivative, then please say so below, and I will (substantially) amend my answer. That the concept may not be original is irrelevant, as ideas cannot be copyrighted.
    – MadHatter
    Jul 6, 2022 at 11:47
  • I read the code while working on my implementation to try and help me work out what was missing. I found it too convolulated to be much use. I certainly read the documentation. So it is definitely not a clean room implementation. But the concept is older than boost and there are other examples in the wild. Jul 6, 2022 at 11:51
  • Let us continue this discussion in chat.
    – MadHatter
    Jul 6, 2022 at 12:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.