Since joining the Team a few months back, I have been fascinated to learn how things work, and how to get fixes or improvements into MediaPortal. I did not realize that would be a nice side benefit of joining the Team. I now realize that I could have done much of this without being a Team member, so I thought I would share what I have learned with everyone. Here is the Inside Scoop on: How You Can Improve MediaPortal
How You Can Improve MediaPortal
What is the golden key?
The key to MediaPortal development is our Project Management system, Mantis. If an issue is entered into Mantis, you can be sure it will at least get looked at and most likely fixed or incorporated. Some issues are deferred to future releases, usually if the developers feel some risk is involved, or the issue only affects rare cases.
How does an issue get entered in Mantis?
When I first joined the Team I did not realize that all Team members are actively involved in testing and development. Any Team member can add an issue to Mantis IF and ONLY IF the issue is:
Confirmed by a valid bug report from a user OR
Confirmed by at least one other Team member
That is why we are always asking for valid bug reports, because if we get one, we can reproduce your issue and add it to Mantis. MediaPortal is so extensive that even Team members are not always familiar with every possible feature or option. So we need you to help us!
The Team Process
If you really want to see the Team Process, check out this Work Flow Chart which displays the Team’s development work flow for MediaPortal 1.
What is the role of bug reports?
We all want to fix as many issues as possible and make MediaPortal better. However, the Team has limited time and resources. We do not have even the financial resources to purchase and test every possible configuration, or even every type of TV card, let alone access to specific TV channels or providers. Thus our community plays a huge role in testing by providing bug reports.
When I go through the bug reports forum and find incomplete bug reports, I move on to the next one! Even if I am not an expert in the issue, if the bug report provides enough information for me to reproduce the issue, I will open a thread in the Team forum for discussion with other Team members who may know the issue better, and ask them to take a look.
On IRC, Team members often ask each other to take a look at a bug report and see if they can confirm it, or even understand the cause of the problem. However, a lot of valuable time is wasted if bug reports do not provide full or even key information. That takes away time from users who do provide good bug reports that could enable us to fix issues.
The main point is, if your bug report is well done, it will get attention and appreciation! However, it takes time and skill to produce really good bug reports.
What is a valid, or well done, bug report?
This is well documented in the bug reports Forum sticky post (Announcement): How to Report Bugs and Get Support. Here are the most important points:
- Debug mode log files – which are now much easier to produce
- System specs
- Step by step instructions how to reproduce - this is the most important part of the bug report since many issues do not show up in logs, so it is essential!
Log files are critical, and required for ALL bug reports, including ones you might think do not need them, even skin related issues.
Luckily log files can now be created correctly and easily by using the Debug Mode shortcut on the Windows Start menu.
Moreover, issues related to installation or upgrading of MediaPortal require the log files stored in the Old Logs folder, since usually the new log files have already overwritten the logs which contained the original issue.
Why System Specs?
Many users still do not enter their full System Specs in the Forum User Control Panel (User CP). They just provide a few details they think are relevant in the bug report post. However, this is often not enough. Even information about driver/firmware versions in the System Specs or in the report itself can help solve an issue. For example, the Team has found issues, bugs or limitations in the firmware of TV CAMs (Conditional Access Modules), drivers of various TV cards or even of remotes.
If I am looking at a bug report, I need to know exactly how the system is configured in order to reproduce the issue. Often an issue can be related to something in MediaPortal code that you might not even think of.
When our testers and developers look at your log files, they also need to know the full system configuration. It is just annoying, and time consuming for everyone, when you have to go back and ask for more information, sometimes more than once.
Step by Step Instructions to Reproduce
To get an issue confirmed and entered into Mantis, this is usually THE most important information, and most often missing! It is not enough to say “xxxx doesn’t work anymore. All I did was update MediaPortal." No one can confirm such an issue.
When entering the steps to reproduce, ideally list every step you performed when creating the Debug mode log files. Just write them down as you do them. Always be sure to include the following:
- The feature – i.e. Videos or Recorded TV, etc.
- The view – i.e. Shares, Titles or Channels, Genres, etc.
- Configuration settings you have set in MP
- Any customization you have made in MP or in your OS or if MP is running on a 2nd monitor
- The results at each point
- Screenshots if any part of the issue is visual.
A good rule of thumb is if your spouse/partner can read your report and reproduce the issue, without any further explanation, then you have succeeded!
Adopt the right attitude
By the time you enter a bug report you may be quite frustrated, tired and fed up. If so, maybe you should wait to post the bug report. The best approach to take is to understand you are also part of the MediaPortal Team. Work together with any Team member willing to look at your issue. The goal is to try and solve it, not argue about it or try to assign blame!
What goes on behind the scenes?
Once an issue has been confirmed, it is entered in Mantis. Usually the Team member who confirmed or championed the issue, will report the Mantis Issue # in the Bug Reports Forum thread. If a developer has already shown an interest, or has already dealt with the issue previously, it will be assigned to them right away. However, this is not always the case. Sometimes we have to try and interest a developer to look at an issue.
Once a developer starts work on an issue, it will be marked ‘WIP’ (Work In Progress). Often there are several notes added to an issue as Testers and developers look at it. The important step is when the issue is marked for 'Feedback'. Usually that means a binary (such as a .dll file) and/or patch file is posted for testing. If there is a bug report, the fix be posted in that thread for all users reporting the issue to test, and a link will be posted in Mantis for Team members to test it as well.
If test results are positive, the issue is marked ‘Fixed’. Once a developer sets an issue to ‘Fixed’, it is the responsibility of the reporter, as well as testers, to test the fix, usually using a !privatebuild which they can generate easily in the Team IRC channel. Once they confirm the fix they close the issue. Our MediaPortal 1 Group Managers, as well as the Project Manager, review all Mantis Issues before any release.
It is actually much easier to improve MediaPortal than I realized. It is also a lot more work for Team Members than I realized!
You have to get confirmation of any issue! Often you can't find a Team member who uses the feature in question, has the required hardware, or access to the specific TV-Channel, etc..., so you have to rely on user bug reports.
Each fix has to be considered carefully, so frequently you need to open a thread for Team discussion, and evaluation by the developers. Many of these threads end up over ten pages long!
Then you need a developer interested and knowledgeable to fix the issue.
Finally you have to test any fix thoroughly, and get users, and ideally other Team members, to test as well, especially to avoid regression. That isn't always easy if they have never used the feature before!
Along the way, you have to keep Mantis up to date and inform users in any related Forum thread and update the status of that thread.
If you are lucky, no one yells at you! If you have patience, you can often succeed in making significant improvements in MediaPortal!