wiki:License/MandatorySignOff

Version 1 (modified by hasienda, 2 years ago) (diff)

initial page structure and preliminary content

Rules for contributions

Rules set forth hereunder are meant for discussion, but might become binding for contributions on plugin authors and maintainers discretion. We're thinking about setting similar constraints for all contributions to this site to prevent potentially dangerous legal ambiguity for all hosted content, as soon as a broad agreement among currently active developers has been reached.

General rules

Authors, whether they directly commit to trac-hacks.org's repository or just add/edit wiki content and append ticket comments, are exclusively responsible for all contributed content.

Developers, that register a new hack ensure, that each hack has a valid license attached to it, and that code changes match the respective license. In absence of an explicit license we assume, that the license of the underlying framework applies, always meaning the latest t:TracLicense. However this is only meant as a starting-point, if such license-free code is encountered the first time, especially with older contributions predating this set of rules.

Third party contributions

A significant part of code changes is driven by other developers, who report issues and/or propose code enhancements, partially accompanied by patches or similar suggestions, what should be changed.

Explicit declaration

The preferred way of legal clearance regarding contributions is an explicit sign-off notice include in the contribution itself or as supplementary comment with unambiguous reference to the contribution it is meant for. Example:

# This is a small change to correct issue #xyz for SomePlugin.
# Signed-off-by: Steffen Hoffmann

diff a/someplugin/trunk/so/macro.py b/someplugin/trunk/so/macro.py
--- a/someplugin/trunk/so/macro.py
+++ b/someplugin/trunk/so/macro.py
@@ -45,6 45,7 @@
 class SomePlugin(Component):
     def __init__(self):
         self.somevar = 0
+        self.somemore = true
 
     def do_something(self, req):
         if self.somemore:

Hereby the patch author declares explicitly, to waive any copyright and release the contribution under the terms set by the respective license of the code base, that he/she's contributing to.

Implicit waiver

In absence of other unambiguous declaration by the author of a contribution, or in case of an anonymous contribution, a contribution will get covered by the code base's license at the time of the initial publication. Acceptance of later changes is entirely optional and a the discretion of the author or current maintainer respectively.

Rationale:

  • One key factor for the value of code provided by many individual authors here is determined by the freedom to use it, share, study, modify, redistribute etc.
  • While this is mostly about copyright and legislation, topics often unsuitable for the general audience, terms of use and contributions must be still as simple and clear as possible.
  • We recognize, that the freedom of use can only be ensured permanently, if all contributions are covered by suitable, legally binding free licenses.
  • Contributions must usable for developers without neither obvious nor hidden pit-falls.
  • Ultimately, users must be trusted to know before-hand, if they want to contribute code, knowledge or other properties of their own or not.

Discussion

(advice and comments welcome, add your questions and thoughts here)

-- hasienda