MyBB Documentation

Information for new developers

The 1.6 Documentation is no longer maintained and some information may be outdated.

The MyBB 1.6 series reached end of life on October 1, 2015.

This means there will be no more security or maintenance releases for these series and forums running these versions of MyBB may be at risk of unfixed security issues. All administrators are strongly encouraged to upgrade their forums to the latest release of MyBB as soon as possible.

Contents

Welcome

Welcome to the MyBB "Info for new Developers" setup and procedures document. This document is to get new staff members up to speed about procedures on development, and give potential staff members a taste of what is required.

Software

You may use whatever software you want to edit the code. Here are some we recommend:

Editors and IDEs

The following text editors are recommended whilst working on MyBB.

  • EditPlus (Windows)
  • PHPEdit (Windows)
  • TextMate (Mac)
  • Notepad++ (Windows)

Here are some other IDEs for PHP:

  • PHPEclipse - Repackage of Eclipse with PHP editing tools.
  • NetBeans PHP - Repackage of NetBeans with PHP editing tools.

Note: Your editor will need to be configured to match the MyBB Development Standards requirements.

Subversion clients

  • TortoiseSVN (Windows) - Tightly integrates with Windows Explorer (recommended)
  • RapidSVN (Windows / Linux / Mac) - Cross platform SVN client
  • SvnX (Mac) - Runs under Mac OS X

Subversion Access

For MyBB development we use a subversion repository which allows us to work on the code independent of other users then commit our changes. The repository URLs:

Fixing Bugs/Implementing Features

Introduction

This section's purpose is to outline the procedure for fixing MyBB Bugs found or reported in a separate location outside of the development site. This procedure may also apply to beta's or internal fixes.

Creating the ticket

Whenever there is a bug in the code, a ticket needs to be created for it. This is so we can keep track of changes, and the reasons for those changes in our development tracker. You may create a new issue here and you may view a current list of tickets here. You may use the "Custom queries" or search criteria to narrow down ticket results to specific criteria.

When you are creating the ticket, include the following details:

  • Tracker: Bug or Feature (note: only Management or Lead's may create "Feature" tickets)
  • Subject: Title of the ticket - Should relate to the problem or feature
  • Description: Description of the ticket - Should relate to the problem of feature
  • Status: Set to Assigned
  • Priority: The only option is "Normal"
  • Assigned to: Set to the developer that will be working on the ticket. Leave blank if you do not know.
  • Category: The category in which this ticket falls under. If it doesn't fit in a specific category choose Other
  • Target Version: The version in which this ticket will show up in. Leave blank if you do not know.

Once you have done that you may submit the ticket.

Choosing a branch to fix

If you are fixing bugs in the development code or latest release, you will need to fix the bug in the 'trunk' folder in SVN. If you are fixing bugs for older releases or branches, you will need to fix them in the appropriate version in the 'branches' folder in SVN.

Example: If you are fixing a bug for MyBB 1.6 (the current public version) fix it in the trunk AND the branch. (/branches/1.6-stable/ and /trunk/). If you are fixing a bug in a development version, fix it only in the trunk.

Note: There is no /trunk/ version of MyBB in the public repository as MyBB 2.0 is still being developed on a private repository.

When you make a fix to the code always test it, under any circumstance.

Making the commit

This is the last part to fixing a bug or implementing a new feature. When you make a commit you need to include a ticket in the message. It should follow this format:

For bug fixes:

Fixes ''title_of_ticket'' (fixes ''#ticket_number'')

For bug fixes work-in-progress:

WIP ''title_of_ticket'' (wip ''#ticket_number'')

For features work-in-progress:

Feature ''title_of_ticket'' (WIP ''#ticket_number'')

For completed features:

Feature ''title_of_ticket'' (completed ''#ticket_number'')

This is so changes and the reason for those changes can be tracked and linked to specific commits. In addition, this allows us to put together a change log for releases.

Hint: Take time to double check the file for any problems or debug code you may have accidentally left in.

Once you have gone through these steps, commit it!

Note: If you are still unsure or confused, please view some examples on the MyBB Development site or ask for clarification from a seasoned staff member.

After making the commit

There are a few things you should consider after making a commit. Tickets will only update themselves in relation to commits descriptions, on a scheduled cron job, or otherwise if you directly visit this page. It is generally a good idea to keep tickets as in-sync as possible, so visit the repository page reguarly and check the commits while your at it for possible errors.

Note: If you just committed a "work in progress" feature, visit the Repository page so the changes take effect on the ticket and then update the following fields on that ticket:

% Done: Change to the estimated percentage of completion.

Conclusion

If you follow all these steps to the 'T', you will do just fine as a developer. More information can be found on development standards and other related pages at the wiki Development page.


Edit this page on GitHub