Difference between revisions of "Development guide"

From MythTV Official Wiki
Jump to: navigation, search
Line 1: Line 1:
= MythTV Development Howto =
+
MythTV is primarily written in C++. Feel free to talk to us about your code and experiments in our mailinglists and chatgroups or code something and submit it as a patch or feature to us.
  
So you want to know more about the development of MythTV? Well, ''first'', almost all of the development activity goes through the [http://www.mythtv.org/mailman/listinfo/mythtv-dev/ mythtv-dev mailing list]. When you have an interesting idea, subscribe to mythtv-dev, review [http://gossamer-threads.com/lists/mythtv/dev/ 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.
 
  
== I can't program. Can I help? ==
+
=== Getting started ===
  
Of course, there are lots of [[HowToHelp | things that can be done]] without being a code wizard:
+
The simplest and best way to get started coding on MythTV is by downloading the code(from subversion), compile and run it on your machine. To do this just simply follow any installation manual for MythTV.
* Help documenting new features (Documentation often lags behind features).
+
* you can work on internationalizing/translating the product if you have language skills.
+
* Creating a new themes (Create new looks for MythTV).
+
* Help writing and editing material right here on the Wiki
+
* You can improve the manual for MythTV
+
* Test new features: One does not need to be a developer to help testing. This way the developers can work on while you help testing.
+
  
  
 +
After this you can experiment with the code, recompiling it and test it on your machine. When your familiar with the code your could try to pick-up a ticket to solve a bug or build a new feature.
  
You can find a summary and an explanation how to get started in [[HowToHelp | the how to help page]]. Just choose how you can help best.
 
  
== I've got this great idea... ==
+
=== When your code is ready ===
  
Ultimately, this project's direction is Isaac's to control.
+
When your code is ready for the public, check the [[Submitting Bug Fixes]] page for information on how this is done.
  
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.
 
  
Often, your idea might 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:
+
=== How we work together ===
 +
 
 +
Almost all of the development activity goes through the [http://www.mythtv.org/mailman/listinfo/mythtv-dev/ mythtv-dev mailing list]. When you have an interesting idea, subscribe to mythtv-dev, review [http://gossamer-threads.com/lists/mythtv/dev/ 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 [[Community | '''here''']].
 +
 
 +
 
 +
=== 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.
 
* 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.
Line 30: Line 32:
 
* [http://gossamer-threads.com/lists/mythtv/dev/ 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.
 
* [http://gossamer-threads.com/lists/mythtv/dev/ 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.
  
== I can program, how can I help? ==
 
  
If you are new to developing Myth, these pages can help you through the process:
+
=== Plugins ===
  
* Some guidelines for writing code are on the [[Coding Standards]] page.
+
In the [[Plug-in development guide]] we will explain you in a few simple steps how you can build your own plugin for MythTV. All this is explained in a Walk-through example having you build your first (Hello world)plugin within 30 minutes (no need to read any other stuff on this site).
* When your code is ready for the public, check the [[Submitting Bug Fixes]] page for information on how this is done.
+
  
  
= Plugins =
+
=== Developing MythTV themes===
In the [[Plug-in development guide]] we will explain you in a few simple steps how you can build your own plugin for MythTV. All this is explained in a Walk-through example having you build your first (Hello world)plugin within 30 minutes (no need to read any other stuff on this site).
+
  
= Developing MythTV themes=
 
 
'''Required skills:''' Light technical knowledge, feeling for layout and design
 
'''Required skills:''' Light technical knowledge, feeling for layout and design
  
Line 48: Line 46:
 
* The [[Menu_theme_development_guide | Theme menu developmentguide]] to create theme menu's
 
* The [[Menu_theme_development_guide | Theme menu developmentguide]] to create theme menu's
  
=Other developer sources =
 
  
 +
=== I've got this great idea... ===
  
* [http://svn.mythtv.org/trac/ More about how to help developing MythTV]
+
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.
 +
 
 +
 
 +
=== Some helpfull pages to keep close ===
 +
 
 +
If you are new to developing Myth, these pages can help you through the process:
 +
 
 +
* [http://www.mythtv.org/mailman/listinfo/mythtv-dev/ mythtv-dev mailing list] - The mailing list developers use to communicate to each other.
 +
* [[Submitting Bug Fixes]] - How to submit your bug fixes when your code is ready for the public.
 +
* [[Coding Standards]] - Some guidelines for writing code.
 +
* [http://svn.mythtv.org/trac/ MythTV Trac server] - Trac startpage with relevant coding info
 
* [http://www.mythtv.org//modules.php?name=MythInfo mailinglist and more information]
 
* [http://www.mythtv.org//modules.php?name=MythInfo mailinglist and more information]
 
* [http://www.cuymedia.net/doxygen-dev-docs/html/ 0.20.2 (Stable) Code Documentation]
 
* [http://www.cuymedia.net/doxygen-dev-docs/html/ 0.20.2 (Stable) Code Documentation]
 
* [http://miffteevee.co.uk/documentation/development/ Trunk  (Development) Code Documentation]
 
* [http://miffteevee.co.uk/documentation/development/ Trunk  (Development) Code Documentation]
 
* [[Developing_in_Eclipse_on_Win32 Developing in Eclipse on Win32]]
 
* [[Developing_in_Eclipse_on_Win32 Developing in Eclipse on Win32]]
 +
  
  

Revision as of 16:52, 7 November 2008

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


Getting started

The simplest and best way to get started coding on MythTV is by downloading the code(from subversion), compile and run it on your machine. To do this just simply follow any installation manual for MythTV.


After this you can experiment with the code, recompiling it and test it on your machine. When your familiar with the code your could try to pick-up a ticket to solve a bug or build a new feature.


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.


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.


Plugins

In the Plug-in development guide we will explain you in a few simple steps how you can build your own plugin for MythTV. All this is explained in a Walk-through example having you build your first (Hello world)plugin within 30 minutes (no need to read any other stuff on this site).


Developing MythTV themes

Required skills: Light technical knowledge, feeling for layout and design

If you are interested in creating a new theme, than you can read:


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.


Some helpfull pages to keep close

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