xebia-functional/nine-cards-v2

Copyrights in the Backend

diesalbla opened this issue · 4 comments

Since we are soon to release the source code of the back-end server, we have to check all of the several issues involving the Copyrights, either ours or someone else's, and how to make our source code to comply with the existing practices.

This involve the following tasks:

  1. Review the files, either Scala source code or others, in the backend project. For each file, check if its contents were written completely by a member of 47 staff.
  2. Obtain a list with all of those files that, totally or partially, include contents written from other authors, be it other software libraries or programs, or be it from references such as books, weblogs, Q&A sites, etc.
  3. For those contents, check the licenses under which they were published, and the requirements they impose on our own licensing terms. If any of the mentioned contents were not compatible, they should be rewritten or deleted.
  4. Select, guided by the company's policies, the license for the publication of the source code. Create in the root of the project a COPYRIGHT file, containing this license. If necessary, modify the files in the project to add author and license notices.

Regarding point 1, these are so far the files I have found that could be non-original

  • In the googleplay module, the file src/main/protobuf/GooglePlay.proto was fetched from a previous project, which is restrictively licensed. However, we can replace it with a simmilar file from a BSD-licensed project.
  • In the googleplay module, the src/test/resources/ folder contains some files downloaded from the Market Api or from the Play Store webpage, that we use for testing the parsing functions.
  • There are a couple of code fragments obtained from Stack Overflow, but these are published under a CC-SA license.

That seems to be most of it.

Regarding the protobuffer file, if that is available under a less restrictive license let's switch to that one.

Code fragments obtained from SO should also include links to the original posts and proper attribution in the license comments.

As for the assets used for testing resources, can we refer to them via URL instead of including the files in the project?, alternatively lets produce similar assets ourselves to remove that dependency altogether if necessary.

About the test resources: the Converters used to extract the relevant app information from the protocol buffer file, or from the web page, are a bit more complex than usual. To check the correctness of this converters if they are changed, we need a set of fixed-content files, unless those available from the Market API or the Play Webpage which are updated frequently. Also, it should be possible to run some unit tests even if no Google-Play-Token is available. Therefore, we made the unit tests to be runnable in off-line mode.

The Copyright notices, and the attribution to external files, have been added to almost all of the source, build, and configuration files.