Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
Legal considerations for contributors¶
Contributor License Agreement¶
Before we can accept your code contributions, there is an administrative thing to do: you must give us permission to use them. You must sign the Contributor License Agreement (CLA). The CLA basically says that you promise to be the author of your contributions, and that you give us an irrevocable right to integrate them into our work.
Unless you are Estonian, the easiest way to sign the CLA is to
print the pdf document
sign it on paper and
send us photos of (1) your national ID card and (2) the signed document.
We apologize for the inconveniences.
Why is this needed?
The copyright holder of a software project must be a clearly defined legal person because otherwise there would be disadvantages regarding personal liability, lack of a framework for management or mistakes regarding tax obligations (more about this for example here). Rumma & Ko Ltd is our pragmatic choice as long as no other legal person applies for getting the job.
We cannot use your contribution if you don’t sign this document. Just imagine that some third party would infringe copyright, e.g. by making a non-free fork, and we would decide to protect the software by going to court: without a clear and unique legal copyright holder the infringer could use nasty tricks to escape justice.
The CLA protects you from certain responsibilities like getting sued if, for example, a bug in your code would cause damage to a user of the software.
The CLA also protects us all from the risk that Lino, like any Free Software product, would get jeopardized by a Rights-Ratchet Model. To avoid this risk, paragraph (3) of our CLA explicitly states that we “shall not use Your Contributions in a way that is contrary to the license terms in effect at the time of the Contribution.”
Coding standards¶
Any new source code file should start with the following header:
# -*- coding: UTF-8 -*-
# Copyright AAAA-ZZZZ Rumma & Ko Ltd
# License: GNU Affero General Public License v3 (see file COPYING for details)
The start year (AAAA) should be the year of first publication. If your file is based on an existing file, keep the original value of AAAA. When updating a file, check the end year (ZZZZ) and increase it if needed. We write only the start and the end year. Anyway these year numbers are informative, in case of a dispute the git history would be authoritative.
The FSF recommends to add a quite long header with three paragraphs of text to each source file. This long header was one of the major reasons why we changed from GPL to BSD in October 2016. In April 2021 we switched back to GPL (and even to the strictest of them, the AGPL) after realizing that actually we don’t need follow this recommendation. We assume that a one-line header is enough to protect the code from accidentally being separated from its license.
Standard files¶
Every repository should contain the following four files in its root directory:
- README.rst¶
A file named
README
(or some variant thereof) should be in the root directory of every public code repository and should contain a description of the project, links to more detailed documentation, …In Synodalsoft projects this file is automatically generated by the
inv bd
command from the long_description in yoursetup_info.py
file.
- CONTRIBUTING.rst¶
Explains how to contribute. For repositories maintained by Rumma & Ko Ltd this just links to Contribute to the code.
- AUTHORS.rst¶
Lists all source contributors. This is a reviewed output of
git shortlog --summary --numbered --email
.
- COPYING¶
The content of these files should be the same for all repositories that are part of the Lino framework. The book repository is considered the master copy: if we change any thing in one of these files, the other repositories should copy the new version as soon as possible.