Extras Repository
From Habari Project
A repository exists for public contributions of plugins and themes to Habari that are not part of the core offering.
Contents |
Resources
This repository has its own issue tracker and subversion access.
Gaining Access
Public anonymous read access is granted to this repository, and write access is available upon request.
To obtain access to commit new code to the repository:
- Please read and be aware of the requirements for use of the extras repository before continuing.
- Create a Trac account on the main repository.
- Request commit access on the Habari development mailing list or via IRC. Be sure to include your Trac username.
Someone with access to add new accounts (a PMC member) will add you to the contributor group, which will grant you access to commit to the extras repository.
Be aware that all commits to all Habari repositories must take place over https. If you have checked out a project via http, you must use svn switch to convert your working copy to use the secure URL before you will be allowed to commit.
Adding a Plugin
Once you have gained access to Trac, a plugin can be committed using the following command-line procedure:
- Create the base directory for your plugin.
$ svn mkdir https://svn.habariproject.org/habari-extras/plugins/myplugin
- Create the "mini-repo" directory structure for your new plugin.
$ svn mkdir https://svn.habariproject.org/habari-extras/plugins/myplugin/trunk https://svn.habariproject.org/habari-extras/plugins/myplugin/branches https://svn.habariproject.org/habari-extras/plugins/myplugin/tags
- Checkout the trunk directory of your plugin's "mini-repo" to your local disk.
$ svn co https://svn.habariproject.org/habari-extras/plugins/myplugin/trunk myplugin
- Put your plugin files into the newly checked out trunk directory.
- Commit your new plugin to the repository, with an informative message.
$ svn ci myplugin -m "plugin:myplugin initial commit"
Repository Structure
The extras repository has the following directory structure.
locales/
{locale}/
branches/
tags/
trunk/
themes/
{theme}/
branches/
tags/
trunk/
plugins/
{plugin}/
branches/
tags/
trunk/
If you have difficulty understanding this or do not know how to create this structure, please ask for help on the development mailing list or in the IRC channel.
trunk
trunk is for active development of addons. It's unstable, and may be broken or incompatible with Habari's trunk at any given time. People using trunk should use subversion to keep the addon up to date.
tags
On release of a version of Habari, a tag should be created. This is a stable snapshot of an addon that has been tested with a released version of Habari. If you're using subversion externals to integrate addons into your Habari web site, you should use a tag for the version of Habari you're running. If the addon hasn't changed since the last release and still works, developers can simply copy the previous tag when a new version of Habari is released. If there isn't an appropriate tag, you might consider creating one.
Tagged things should have a distribution created automatically (which doesn't happen yet, but when it does it should tie into the addons directory).
branches
Branches exist to fix issues that arise with released versions or for experimental features. If there are fixes for an addon targeted at a released version, a branch should be made from the appropriate tag, the fix made, and a new version tagged. There's no need to automatically create a branch when a release of Habari is made.
Other branches can exist for experimental features, and you can do whatever you like with them.
Requirements
Projects may be committed to the extras repository only under the following conditions.
Licensing
Habari has an affinity toward the Apache Software License. To maintain the propriety of our source, we require that any code committed to the repository be licensed under the ASL, or be licensed under an ASL-compatible license. As a rule of thumb, if your plugin couldn't be added in whole to the Habari core software without debate as to the license compatibility, don't submit it to the extras repository.
One example exception is GPL-licensed work. While some authorities suggest that GPLv3 is compatible with ASL, in order to remove any ambiguity over what is allowed no plugins or themes should be committed to the extras repository that use any version of the GPL license.
Attribution
Plugins and themes committed to the extras repository may be attributed to their authors, provided that this is done only in the metadata for the plugin or theme. Metadata for themes and plugins is located within the xml file provided, and allows for multiple authors/copyright holders to be listed.
Retaining the author information in no way entitles that author to any special rights apart from those granted by the associated license.
In any case where a plugin or theme displays output that includes the author name or site, future modifications by any committer to the extras repository may remove or alter this output. Plugins and themes that require derivative works to maintain attribution in output should not be committed to the extras repository. Any plugin or theme committed to the repository that does output attribution is implicitly assenting to the community's ability to remove or alter that or any other contributed code.
Contributions to the extras repository may also be attributed to "The Habari Community". This relinquishes your copyright to the submitted work to the community as a whole. Do not attribute a plugin to the community without the consent of its existing authors, as this implies consent of all authors to relinquish their copyright on the code.