Development guide

From MythTV Official Wiki
Revision as of 19:58, 3 February 2009 by Loki (talk | contribs) (Getting started)

Jump to: navigation, search

MythTV is primarily written in C++. Feel free to talk to us about your code and experiments in our mailing lists and chat groups or code something and submit it as a patch or feature to us.


Getting started

The simplest and fastest way to get started coding on MythTV is simply by downloading the code(from subversion), compiling and running it on your machine. To do this just simply follow any installation manual for MythTV. We suggest you use:

Of course you can also choose to combine these to your liking (sometimes one tutorial explains certain topics better than the other). After this you can experiment with the code, recompiling it and test it on your machine. When your familiar with the code you could try to pick-up a ticket to solve a bug or build a new feature.

Things you can work on

you can work on mythTV by picking up a ticket or by implementing a new feature. Before starting on either one, you should let others know about your intentions by posting this to the developer-mailinglist. Visit our tracker to find out what you can work on.


When your code is ready

When your code is ready for the public, check the Submitting Bug Fixes page for information on how this is done.


How we work together

Almost all of the development activity goes through the mythtv-dev mailing list. When you have an interesting idea, subscribe to mythtv-dev, review its archive, and ask if anybody else is working on it. Some people might want to help you with figuring things out, and on the other hand, you might also be of assistance to existing efforts.


There is also the possibility to chat in realtime with other developers as you can findout here.


Plugins

Users have the possibility to extend their system with extra functionality by simply adding plugins. Users and developers can write their own plugins that run within MythTV and can be controlled by remote. A fast and easy way to get started is by taking a small existing plugin to start with. You can learn more about this here.


Themes

If you are more into design and graphics you will like the theme possibilities in MythTV to create new looks for the users to look at.


Theming can be as simple and complex as you want it to be. The best way to get started building your own theme is by experimenting with an existing theme. Learn more about this here.


Still not sure how to help?

Visit our IRC-based development discussions or send us a message through the mailing list. You can find more about this here.


I've got this great idea...

Every project has a leader, MythTV is lead by its creator Isaac. But some users have taken the time to suggest items to go on a Feature Wishlist. If you are a developer looking for a project, this might be a place look for some ideas proposed from the user community.


Understand that these features may not represent what the project maintainers are looking for. A quick note to the myth-dev mailing list with your intentions will often result in feedback on the viability of your ideas in the project.


Your idea might already exist

There is a change your idea already exist -- it's a big project, and the features are sometimes a little tricky to find. Before spending time developing a new concept, try these steps:

  • Look through all of the settings pages in MythFrontend and setup. Sometimes the feature you want isn't in the place you'd expect, or it's using a different name.
  • Read the keys.txt file in the Myth distribution. Many options are documented here, and you may not know of their existence.
  • Search Trac reports to see if someone's submitted a bug report or feature request. You may be able to help by adding more information and clarifying the original report.
  • Search the mythtv-dev archive to see if someone's already discussed the feature. It may have been rejected because of some unforeseen consequence, or someone may already be working on it.


Some helpful pages to keep close

If you are new to developing Myth, these pages can help you through the process: