June 2009 – Staff changes

Greetings all. Today we’ve got a little update on the MyBB staff.

Returning and new staff members

Firstly, we welcome back nickman. nickman was with us previously on the development team and has now offered to rejoin us on the SQA team. When he was on the developers’ team he worked mainly on bug fixes, and SQA is all about bug fixes and offering possible fixes. Please make him feel welcome again.

Please also welcome Joshua Mayer. Joshua is very active and has been a great help to members who request various forms of support.

Staff member leaves

Today we say goodbye to Sergio Montoya who has been a developer with us for the past year. He leaves us to focus more on his personal and real life. We hope you join us in wishing him the best of luck in his future.  Sayakb has been moved to the development team to fill Sergio’s place.

MyBB 1.4.6 Released – Security Update

MyBB 1.4.6 is a security update to the MyBB 1.4 series. It fixes 1 medium risk and 1 low risk security vulnerability. We recommend everybody upgrades to this release immediately or patch their boards with the manual patching instructions below.

These vulnerabilities affect MyBB 1.4.5. Older versions of MyBB may also be affected. Please see below for upgrade instructions for 1.2.14.

Thank you to Jacques Copeau for finding and reporting these vulnerabilities.

MyBB 1.4.5 to MyBB 1.4.6 Patch

This patch is only for users running MyBB 1.4.5. If you are running an older version of MyBB then please download MyBB 1.4.6 from the MyBB site and update to it.

Please download the attached ZIP archive and replace the files in your forum directory with those from the ZIP archive.

changed_files_1406.zip

If you wish to manually patch your board please download “mybb_1405_patches.txt” and follow the instructions in that file.

mybb_1405_patches.txt

Reporting MyBB security vulnerabilities

If you think you’ve found a vulnerability in MyBB, we advise you not to publicly post it on these forums or publicly release information about it elsewhere until we’ve had time to prepare and release a patch.

As always, you can send through security related messages on the MyBB website from the Contact Us page.

MyBB 1.2.14 Patch

This patch is only for users running MyBB 1.2.14 or any previous release of the MyBB 1.2 series.

Please download “mybb_1214_patches.txt” attached to this post and follow the manual patching instructions.

Please note all users of the 1.2.x series are urged to upgrade to the latest release of MyBB. (1.4.6)

mybb_1214_patches.txt

All things MyBB

We’ve been reasonably quiet between the release of MyBB 1.4.4 and 1.4.5, but that doesn’t mean that nothing has been going on behind the scenes. This blog post aims to outline some of what has been going on at MyBB during the last couple of months.

Over the past few weeks you may have noticed a few changes with our current staff, whether it was removal of staff or a change of position. Some changes may not even be noticeable by you but I’ll outline them all anyway.

  • Chris Boulton
    Due to time restraints placed on Chris by work, Chris was finding it difficult to find a balance between work and play whilst including MyBB and therefore has shifted some of the lower priority, day-to-date responsibilities of product management to Dennis Tsang. To be clear, Chris will still be involved in the MyBB project and will be overseeing the project from an executive aspect.
  • Dennis Tsang
    Dennis will be taking on more of the the day-to-day operations and administrative tasks that Chris Boulton used to do.
  • destroyer (Kevin Camps)
    Kevin will take on some content management duties, this includes the MyBB website, MyBB Wiki, etc. Kevin will also be partly responsible for approving themes, plugins and resources to the Mods section of the MyBB site and help out coordinating the translations with Tochjo.
  • Ryan Loos
    Ryan has made the move from a Support Team member to a Public Relations Liaison. With this new title, Ryan will be responsible for resolving community issues, updating the blog, making Twitter updates from the MyBB Twitter account, seeking new talent to take up positions on the team, in future betas and in the Mentor group and educating other communities on MyBB if their views are a little off.
  • Justin S.
    Justin is now in the developers’ group although he will still maintain the Wiki and continue his design work. He was always a design developer on the team, so the title change just reflects his correct role, although he will be performing all of the same duties as he did before.
  • Tomm M
    Tom’s moved into a developer’s position from his old role as a Support Team member. He’s shown a good understanding of how MyBB’s insides work during his time on the team and has already taken on a good portion of development for MyBB 1.6.
  • Max Marze
    Max too has become a developer and will be working towards getting the new version of the MyBB Merge System out. Specifically, he will help by writing unit testing scripts to ensure that the Merge System, when released in the future, will not have as many problems as in previous releases.
  • MattRogowski
    Matt, though still a part of the Support Team, will also be partly responsible for approving themes, plugins and resources to the Mods section of the MyBB site.
  • sayakb
    Sayak has offered to come on board as an SQA Team member. He’s shown a strong knowledge of MyBB by developing plugins, which can be found at the KDE forums, and testing new MyBB releases for compatibility with the KDE forums.
  • LegosJedi
    We’re saying goodbye to LegosJedi who has left us due to time constraints. We wish LegosJedi best of luck on his future endeavors.
  • Tom Loveric
    Tom has also decided to head his own direction with a custom CMS he is building. We wish him the best of luck in his future and with his CMS.

Recruiting New Support Staff

We’re always looking out for new potential. If you want to be on the MyBB Team, you just have to show:

  • You are dedicated and active to the project
  • You speak English very well and have good communication skills
  • You have good knowledge of how MyBB works and in the position you want to take up

If you don’t feel like we’re noticing you it’s probably just because we’re too busy making the next version of MyBB! So just send us an email via our contact form with “Available Team Member Position” as the subject. Include your forum username. Remember though, your chances are considerably increased if you stand out with the three suggestions listed above.

SQA Team Updates

You might have also noticed the creation of the SQA Team (Software Quality Assurance) right after the release of 1.4.4 due to the amount of problems that were reported after its release. SQA has been able to confirm 95% of fixes are working and don’t cause any regressions that are written by our developers and put into our code base. Among those that they confirmed, SQA was able to find and report dozens of regressions over the course of the entire MyBB 1.4.5 development in over 100 bugs, optimizations, and tweaks. As such, SQA has been a huge success for the MyBB Group and in turn creates much more stable releases for you. We are continuing to perfect the new SQA Team and implement processes that will eliminate preventable issues from the get-go.

Team Interviews

If you’ve ever wanted to know more about the MyBB Group or a particular staff member, now is the chance!  We’ve started a thread where you can post questions for staff members to answer at a later date in a blog post. If you have any questions for specific staff members or groups of staff then head over to the thread and post your questions!

EOL announcement concerning MyBB 1.2

Discontinuation of support for 1.2 series

MyBB 1.4 has been out for over 8 months. During this time we have had a security audit done and we believe that the 1.4 series is the safest yet. So upgrading should not worry you one bit.
When we first released 1.4 we only planned to continue support for 6 months but continued support due to the sizeable amount of people that still used the 1.2 series.

Support for the 1.2 series will end on June 1st, 2009 – making it 9 months of support after the release of the 1.4 series.
For those of you who are still operating boards with 1.2 we urge you to upgrade to the latest 1.4 release and seek help if needed before June 1st.

Some links that may be of use to you:
http://www.mybboard.net/downloads – To obtain the latest MyBB release
[Wiki: Database_Backup] – Always important if something goes wrong. Also be sure to backup all your files.
[Wiki: Upgrading] – Standard upgrading procedure details.

After June 1st, 2009, the 1.2 support forums will be moved to the read-only archive.

It is important to note that we will still provide vulnerability patches for the 1.2 series until December 31st, 2009.

Use Twitter? Follow @MyBB for MyBB Updates & News

TwitterFor those who use Twitter, the “social networking site without a business model”, you can follow @mybbgroup @MyBB for quick access to all of the latest on MyBB.

Edit: The Twitter handle is now @MyBB.

For those who don’t use Twitter, the concept is you have 140 characters to post status updates/messages. You can follow other users for easy access to their updates, and have people follow you.

We’ll be using Twitter to:

  • Post updates to MyBB and what we’re working on
  • Notify you of updates to the MyBB Blog and new threads posted in the MyBB Announcements forum
  • Point out interesting plugins, themes, tips and tricks that help you benefit more from MyBB
  • Exclusively grab feedback on new things, especially regarding the development of MyBB 2.0
  • Reach out to potential users who have questions regarding MyBB, and help out those who are having diffuclties

If you don’t already have a Twitter account, why not sign up for one today? It takes less than 5 minutes and is a fabulous social networking tool.

(Shameless plug – you can also find me on Twitter: @surfichris)

Update on MyBB Development

Greetings to all,

As we continue to try and reach out to the community with more information on our progress, development, et cetera, this blog post is here to inform you on our current plans for MyBB 1.4, MyBB 1.6, and MyBB 2.0. We are not going to be giving in-depth information away on MyBB 1.6 or 2.0 until they near completion but I would like to draw a general outline and sum up some information that has been spread across the internet.

MyBB 1.4.5

Work is currently going to completing MyBB 1.4.5. It will contain over 100 various fixes, and include performance and stability improvements among other things. We want to put MyBB 1.4.5 through a 2-week beta testing phase before we release it to the general public. This is done in order to ensure we minimize any regressions from changes that have been made to the code since MyBB 1.4.4 and so you can have a smooth transition upgrading from MyBB 1.4.4 to MyBB 1.4.5.

MyBB 1.6

We are steadily and diligently working on development for MyBB 1.6. There have been 17 features/improvements officially “completed” and are in the process of Quality Analysis. We have several more near completion. You won’t be seeing any huge changes in MyBB 1.6 and we have taken steps to ensure that when MyBB 1.6 is officially released it will be a stable release. This is done so we can keep the impact on theme creators and plugin and mod authors down to a minimal level. This will lead to a smooth transition between MyBB 1.4 and MyBB 1.6 and I’m looking towards at least 60% of all plugins should still work with MyBB 1.6 with minimal changes (essentially just the “compatibility” indicator updated for most).

MyBB 2.0

We have been brainstorming, sharing ideas, sharing mockups, etc for the past few months. We will probably be brainstorming and trying new ideas for MyBB 2.0 for the most part all the way up to the general testing of MyBB 1.6 and then we will shift gears to MyBB 2.0.

We hope everyone enjoys this small update on our development and future plans. We will continue to space out these updates during our normal development cycles to keep you informed on the going-ons of MyBB.

Update on the MyBB Merge System

Hi,

My name is Ryan Gordon and I am the lead developer of MyBB and the MyBB Merge System. This blog post is here to inform the community members on some of the caveats and successes of the MyBB Merge System.

Let me first introduce a bit of history on the MyBB Merge System. It has been in development for quite a while – before MyBB 1.2’s release – and it hasn’t officially reached a “stable” tag in its development. The MyBB Merge System is quite a revolutionary product in terms of the abilities it provides to those who use it. Many people don’t realize the full potential or mistakenly think that the MyBB Merge System is used to virtually “link” two forums together, when in fact the Merge System actually takes data from any supported forum software and combines it with your current forum. This is where things start to get interesting.

So let’s get straight to the point- Because of the unique nature of the Merge System, design and development is a grueling process. We have been able to work through most of the problems but several issues have plagued us over the course of its development:

  • Testing – It is a long enduring process to replicate a bug report, that may not have been caused by the Merge System in the first place. This is compounded by the fact we are also testing with different forum systems with which we are not familiar.
  • Complexity – The actual process of converting data from one forum to another is very easy, which is why most forum software choose to go down that path. However, the process of being able to merge two existing forums into one is a much more complex process. In terms of manpower, this has greatly impacted our development abilities for the Merge System.
  • Mainstream Availability – Many people shy away from testing the Merge System because of the “RC” or “Beta” tags attached to it. Unfortunately, we haven’t gotten many people to come forth and test it for that reason and in turn it just creates a catch-22. If we can’t get people to test it, then it is difficult for us to move forward. On the flip side, people don’t want to test it unless we’ve completed development to a “stable” point.

Testing has been a problem since the beginning and the Merge System has gone through 3-4 rewrites because of it. The process of testing and reproducing in its current state is cruel to us developers for a few reasons:

  • Information – We need very specific information to reproduce problems, which can be sometimes hard to procure from users. And when we get that information we have to determine whether it was caused by the Merge System, the other forum system, or by a modification or plugin that may have skewed with the database data.
  • Time – The MyBB Merge System is a staircase in a high rise. You have to work your way up from Level A all the way through Level Z to complete the merge. At any point in time, a problem could have happened. If we are able to reproduce the problem, then we have to look at the code to see if there is a way to fix it. If the developers were able to come up with a fix, then we have to test the Merge System again. If the fix didn’t work then we’re back to square 2 and we have to repeat the process. This means that we are at minimum required to run the Merge System twice on our test data, and usually it’s more than that.
  • Reproduction – In the case that we weren’t able to reproduce the problem then we have to go back to square 1 and figure out what more information we need or in some cases, direct access to the test data in the live environment where the problem originally happened. This leads us to our last reason.
  • Communication – Some of the time users report their problems and never come back because the merge is already completed into their forum and most problems are usually already fixable with a bit of manual work. This makes it really frustrating when we’re trying to reproduce and diagnose problems reported by users.

Complexity has also been a large problem for our developers and one of the reasons progress has been so slow. Not only do we have to perform balancing acts between MyBB and the Merge System, we also have to deal with the complexity of the Merge System when testing and reproducing issues and general updates overall.

Lastly, mainstream availability has been a big issue with the Merge System. The market for a Merge System is a lot smaller then the market of MyBB and it’s a one-time-use program, so people tend to use it, report their problems, and never need to come back to it. 

For the reasons above, we have started looking into automated methods of testing code.  One solution we are currently trying is Unit Testing, a type of testing used in SQA departments.  In fact, I am current about half way through reworking the Merge System to support Unit Testing. 

Unit testing is a form of quality assurance where small blocks of a software module such as a single function are tested to ensure that by themselves their outputs correspond correctly to given test inputs. At a click of a button, a developer or tester can run a set of tests and see the results quite simply as a “pass” or “fail” for each of the test cases. This will help us quickly identify any “broken” components which may have been caused by the latest changes, and from which component the problem is in.

Once we have unit testing in place, a large majority of problems we would be able to identify and resolve before it is ever released to the public and in turn we won’t need to rely as much on the public to test the Merge System.

Thanks for reading and I hope you enjoyed this article.

Road to 1.4

Well… it’s been a long journey folks; With MyBB 1.4 released, we thought it might be a good idea to tell you how 1.4 got to where it is today. So without further ado, we present to you the Road to MyBB 1.4.

April 2006:

The first pre-alpha mockups of the ACP are shown internally to the staff. Ideas are collected for 1.4 and discussed and our general feature list is planned.

September 2006:

MyBB 1.4’s development pace starts picking up once MyBB 1.2 Final is released.

October 2006:

MyBB 1.4’s new ACP is being planned and drafted.

February 2nd, 2007:

After 8 rewrites, MyBB 1.4’s ACP’s core is finally written. The first page, the settings page, is started.

March 2007:

MyBB 1.4’s new ACP base/core continues to be improved. Some beginning pages (Dashboard/Credits) are done and others are in progress. A chunk of front-end features are in the works or completed.

October 21st, 2007:

A good portion of the MyBB 1.4 ACP is done. 99% of MyBB’s front-end features are done. This day MyBB 1.4 is open to a select few for beta testing.

March 19th, 2008:

The first download of MyBB is available to testers. All of the ACP is completed except the Themes page. 100+ bugs were reported and fixed within this timeframe. More testers are invited.

May 2nd, 2008:

The second refresh of MyBB is available to testers. All of the ACP is completed. 100+ bugs were reported and fixed in this timeframe. All of the translators, and many mod creators and theme creators were invited at this time.

June 23rd, 2008:

The sixth refresh of MyBB is available to testers. Bug reports have slowed. Since refresh two over 300+ bugs were fixed.

June 26th, 2008:

A publicly joinable private beta of MyBB is open to users.

July 6th, 2008:

The second beta of MyBB 1.4 is posted, including 40+ bug fixes from Beta 1.

August 3rd, 2008:

MyBB 1.4 is released.

All in all, in the development timeframe of 1.4 over a quarter of a million lines of code have changes in over 1,700 commits, over 500 bugs were fixed and many additional suggestions were implemented during our 6+ month beta process.

Also, throughout this process the MyBB Merge System was being worked on and the MyBB 1.2 series was being maintained.

We hope everyone enjoys the new functionality and changes we’ve provided in MyBB 1.4 🙂

Preparing your Plugins for 1.4

Hello,

With the MyBB 1.4 release pending ever closer, we are stepping up to get your plugins ready for 1.4. There are two main things you should do:

  • Update your plugins to work with MyBB 1.4 ahead of time.
    MyBB 1.4 Beta has been available to download to those who request it. Requesting it is easy. Just click here, find “MyBB 1.4 Beta Testers” and click “Join Group”. For the reason, we suggest you put “Upgrade Plugins to 1.4”, which will let us know you want to upgrade your plugins to 1.4. Theme authors may also do the same thing. It’s very important to us to make sure we give the time and resources necessary, in order to make your transition to 1.4 as smooth as possible.
  • Can’t upgrade your plugins in time for 1.4’s release? Here’s what we recommend:
    GUID’s (Globally Unique Identifiers) are used in MyBB 1.4’s plugin system to allow users to check their plugins for updates. If you were to add your plugin’s assigned guid to your plugin, prior to the release of 1.4, the users who update to it and who download it from there on out, will be able to use the version checking functionality. There is no harm in adding a guid to any 1.2 designed plugin. Versions below MyBB 1.4 will just ignore it. We also recommend adding ‘compatibility clauses’. More information on adding GUID’s and compatibility clauses to your plugin can be found below.

What is a GUID?
Your GUID is a unique identifier that has been generated for your plugin. By including this GUID in your plugin file (see below), users of MyBB 1.4 will be able to check for new versions of your plugin on the MyBB Mods server, with a click from their Admin CP. To allow users to take full advantage of this functionality, please follow the instructions below to add your GUID to your plugin file.

What is a ‘compatibility clause’?
Your ‘compatibility’ clause is a way to tell MyBB which versions of MyBB your plugin will work on. This adds the ability to stop users from installing or running plugins that won’t work with their version of MyBB. To allow users to take full advantage of this functionality, please follow the instructions below to add your ‘compatibility clause’ to your plugin file.

Implementing your GUID & Compatibility Clause
To implement your GUID & ‘compatibility clause’ into your plugin, you need simply add it to the info function of your plugin before uploading it below.

PHP Code:

 'test',
        'description' => 'test',
        'website'     => 'http://mods.mybboard.net/',
        'version'     => '1234',
        'author'      => '',
        'authorsite'  => 'http://your-site.com/',
        'guid'        => '1234567890abcdefghijklmopqrstuvwxyz',
        'compatibility' => '14*',
    );
}
?>

More information on changes in 1.4 that will require changes in your plugins can be found here: http://blog.mybboard.net/2008/07/11/plugin-upgrade-guide-for-plugin-authors/

Plugin Upgrade Guide (for Plugin Authors)

As we approach the release of MyBB 1.4 and the code is finalized I thought it would be a good idea to take some time and write an in-depth guide on how to upgrade your plugins for MyBB 1.4.

First are the required code changes in MyBB 1.4:

  • TABLE_PREFIX is not used anymore except in $db->query().
    • In MyBB 1.2 it would look like this: $db->simple_select(TABLE_PRFEFIX.”users”, “*”, “uid=’1′”);
    • In MyBB 1.4 it now looks like this: $db->simple_select(“users”, “*”, “uid=’1′”);
  • All “yes”/”no” columns have been converted to 1/0 for speed improvements. All plugins will need to change this.
  • The function is_moderator() now returns true/false in MyBB 1.4 versus the old “yes”/”no” in MyBB 1.2.
  • sprintf() is no longer used in MyBB. If you use sprintf() now use $lang->sprintf() instead.
  • Links to forums/threads/posts now use functions to generate them because of the SEO in MyBB 1.4:
    • get_thread_link(arg1 thread id, [arg2 page,] [arg3 action])
    • get_forum_link(arg1 forum id, [arg2 page])
    • get_post_link(arg1 post id, [arg2 thread id])
    • get_profile_link(arg1 user id)
    • get_announcement_link(arg1 announcement id)
    • get_event_link(arg1 event id)
    • get_calendar_link(arg1 calendar id, [arg2 year,] [arg3 month,] [arg4 day])
    • get_calendar_week_link(arg1 calendar id, [arg2 week])
  • All queries in your mods that write data to the database and use $db->query() will now have to use $db->write_query(). You won’t have to worry about queries that use simple_select or update_query as they automatically assign it to the correct function. By doing this, you can make your plugin compatible with forums that run on multiple servers. These forums are usually large, in the scale of millions of posts or more.
  • rebuildsettings() has been renamed to rebuild_settings(). Plugins looking for backward-compatibility should execute a check to function_exists before defining their own rebuild_settings() function in order not to have “function already defined” errors.
  • Plugins using the Moderation class should take note of a few changes to the function parameters
    • tid and fid are no longer passed into Moderation::unapprove_posts and Moderation::approveposts
  • Any plugins written to add / change functionality to the Administration Control Panel (ACP) will have to be completely rewritten. The changes needed to be made are too vast and too complex to be covered in this article. However, take a look at the ‘Akismet’ plugin bundled with MyBB 1.4 for examples of how to use the Admin Control Panel functionality.

Second, the suggested changes in MyBB 1.4:

  • There are two new fields for the information array in your plugin:
    • guid and compatibility.
    • guid’s (Globally Unique Identifiers) are assigned to plugins on the MyBB Mods site and can be put in plugins to allow for “Plugin Updates” via the new ACP page in MyBB 1.4.
    • compatibility can be set to “14*” so MyBB knows in the future which plugins work and don’t work with the next version of MyBB.
  • The ‘website’ field should point towards the URL to your plugin on the MyBB Mods website (or the link to the plugin where it is hosted at.) We’ve noticed that it’s been a common misconception to use that field to point towards your own personal site, while it’s intention was to be used to allow the average admin to go directly to the plugin’s page and check for updates, etc.

There is of course more material not covered that is out of the scope of this article. If you have any questions feel free to ask where appropriate.