Want to write code for Banshee.fm? Read more below.

Write Code

Banshee is primarily coded in C# using Gtk# and is licensed under the MIT/X11 free/open source software license. Contributors retain their copyright, but all contributions are subject to the MIT/X11 license.

Setting up Your Development Environment

Having the latest code is recommended when writing code for Banshee.

Building Banshee

The building process is straightforward and familiar for those who have experience building software on Linux. We use the standard autotools suite for our build environment. Once all build dependencies are met, you can start the build process.

Using MonoDevelop

For navigating Banshee’s source tree, it is recommended to use MonoDevelop after successfully building Banshee from the command line. Even if another editor is your main tool, having MonoDevelop open can be convenient for locating class declarations and tracing code back to its origins. Some particularly helpful features include:

  • Navigate to [type or file] in the search bar.
  • To access a variable or type, you can right-click and select “Go to Declaration” or “Find References.”
  • To access the properties and methods of an object, type “object_name.” and then press ctrl-[space bar].

New Features

Banshee is a complex project that requires maintainers to make difficult decisions to ensure its quality and usability. Havoc Pennington has written an informative article on this topic.

Style Guidelines

For easier maintenance of Banshee’s code, please adhere to our style guide provided in the HACKING file located in our top-level checkout directory for all patches.

Producing a Patch

Refer to GNOME’s git documentation for instructions on using git to create a patch. Remember to commit to your local git branch and generate the patch using git format-patch HEAD~1 to include your commit message and author information.

Submitting Your Patch

To have a patch committed to Banshee, the initial step is to open a bug in Banshee’s bugzilla. It is necessary to provide a detailed description of the patch, including its potential implications.

Please attach the patch to the bug report, making sure to select the appropriate version (usually git master) and severity. If the patch introduces a new feature, the severity should be marked as enhancement.

When filing a bug, the Banshee developers are automatically notified, eliminating the need to email the banshee-list about it.

All participants are encouraged and expected review and provide feedback on patches submitted by others. Once a patch has been thoroughly reviewed, including by a maintainer, it will be committed or the submitter will be asked commit it themselves.


API documentation for Hyena and Banshee is generated at build time. It is stored in XML files in the docs/ subdirectory and can be viewed in the Monococ tool. Users can edit the generated docs within Monococ to add their personal touch and more information. After editing, users can run make merge-docs in the Banshee build directory and submit the changes as a patch attached to a bug report.

  • DBus Interfaces