Version 3 (modified by anonymous, 5 years ago) (diff)


Rules for contributions

Rules set forth hereunder are meant for discussion, but might become binding for contributions at the discretion of plugin authors and maintainers. 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'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 must 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/ b/someplugin/trunk/so/
--- a/someplugin/trunk/so/
+++ b/someplugin/trunk/so/
@@ -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 be covered by the code base's license(s) at the time of the contribution is submitted to trac-hacks. Acceptance of the contribution is entirely optional and at the discretion of the author or current maintainer respectively.


  • 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.


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

-- hasienda

  • Instead of requiring explicit declaration in each patch (and ticket comment, wiki edit, ...), you could just handle this in the Terms of Service. (Similar to how by using the Wikipedia website you agree to licensing ToS so any contributions are automatically licensed as appropriate.) Require agreeing to the ToS on the account registration page or once when logging for existing users to make it explicit.