Rules for contributions

These guidelines are meant for discussion, but might become binding for contributions at the discretion of plugin authors and maintainers. We're thinking about setting similar rules for all contributions to this site to prevent legal ambiguity for hosted content, and 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 who 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 on 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:

Here 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 the contribution is submitted to trac-hacks. Acceptance of the contribution is at the discretion of the author or current maintainer respectively.


  • A key factor for the value of code provided by individual authors here is determined by the freedom to use it, share, study, modify, redistribute etc.
  • While this is mostly about copyright and legislation, terms of use and contributions must be as simple and clear as possible for it to be understandable to the general audience.
  • 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 be usable for developers without obvious or 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.

Last modified 5 months ago Last modified on Dec 8, 2015, 2:51:31 PM