Blog

“The Myth of the Genius Programmers”

Posted by A_Jelly_Doughnut in Development on April 17th, 2010

A real-life friend passed this link to me yesterday, and I thought it was appropriate to share with the phpBB community, since it deals, in part, with the development cycle of open source projects.

The link is a talk sharing a title with this blog post, given by two Google engineers at their I/O 2009 conference.

When they began to talk about the “bus factor” of a project (around the seven minute mark), my ears perked up a little bit, because, for the lifespan of phpBB, we’ve had a pretty darn low bus factor.  If we go back to the code swarm released last summer, we see that most of the time, developers simply huddle around one lead contributor.

That lead contributor has been our “bus factor” of one.

Moving forward, we really want to get the bus factor much higher.  We are working to achieve this in two main ways:

  • Writing more unit tests to help define what individual functions should do
  • Writing further specifications to identify what aspects broad features should have

Also, with our switch to JIRA and Git, all developers patches are available (at least briefly) for external review even before they make it into the main “develop-olympus” version control branch.

We’ve expanded the development team as well.  We recently added nickvergessen and rxu to the development team, to bring our ranks to nine, the largest phpBB development team in my memory.

If you would like to help, initial documentation on writing Unit Tests is available on our Wiki and we would really appreciate your help in increasing our coverage. If you have a patch with new tests or a bugfix just create a ticket on our tracker. If you would like to participate in the development process of phpBB 3.1 or phpBB 4, go to area51 and post your ideas, RFCs or present patches for new features for discussion.

Introducing JIRA – the new bug tracker

Posted by ToonArmy in Development with the tags , , , , on April 2nd, 2010

The Development team have decided to move the bug trackers for phpBB to Atlassian JIRA, we undertook this change after evaluating the options we had available and settled on JIRA as the best solution. phpBB has been using custom written bug tracker software for as long as I can remember, our custom software is simple and it works but it has deficiencies. Instead of updating and maintaining our own bug tracker we’ve decided to use an existing solution, after all we’d rather spend time developing phpBB than developing the tools to manage phpBB development!

Using JIRA we’ve got a number of things we wanted for the existing tracker right out of the box, for example now you can submit not only bugs but also improvements and feature requests. Now before everybody rushes off to the tracker to submit a feature request for kitchen sinks we have a few requests of our own, unless you have a decent proposal already (something more than one sentence) ask on Area51 and discuss it with community members and flesh out a proposal which fully explains what you’d like to add and why. If you have a patch or a Git branch we can pull from for either bugs, features or improvements even better! We’ll be revising much of the development section of the website to reflect the move to Git and JIRA as time permits.

The big deficiency with our tracker was a new tracker instance was required for each software branch, but bugs in branches with common ancestors may very well be shared. Now JIRA allows us to track the status of bugs in multiple branches of phpBB. Also included with JIRA is the ability vote on tickets encouraging us to fix them faster or implement a feature request sooner, it allows us to roughly gauge popularity of a ticket and but greater number of votes will not necessarily mean something is implemented sooner. We gain the ability to track dependencies between tickets, so we know which tickets need to be resolved before others can be tackled.

In the future we will also be using other development tools by Atlassian, but there is no time frame for when they’ll be installed.

You can find the new tracker at http://tracker.phpbb.com/, the security tracker has not moved it still resides at: http://www.phpbb.com/security/.

Please discuss this article on the forum.

Guest Post: Writing Modifications by RMcGirr83

Posted by DavidIQ in Modifications on February 25th, 2010

As a Junior MOD Validator (aka “JMV”), it is my “job” to try and test each MOD as thoroughly as possible. What does this mean?

Each modification (aka “MOD”) that goes through validation on phpBB.com is first run through MOD Pre-validation (aka “MPV”) which looks for certain items (licensing, correct version of phpBB, correct MODX version, etc) that MUST be in a modification that is to be validated. If the modification does not pass MPV (there are exceptions) then the MOD is “insta-denied” with a PM shot off to the MOD author to let them know why.

If the MOD passes MPV then a MOD Team member starts to analyze the code being submitted as well as what changes, if any, to the core code of phpBB are done (this includes any edits to the HTML files as well). Notes are made concerning the coding of the modification. For example: if the MOD follows the coding guidelines, the security of the code, the effiency of the code (query in loop == baaaaaaaad), etc. Once the validating Team Member looks at the code a status is set on the MOD (either “Deny”, “Testing”, “Repack”, etc).

If set to testing, then it’s one of the members of the JMV turn. :)

Once a MOD is set to testing, we must follow strict guidelines concerning the testing of the MOD. Those guidelines give us a sort of “checklist” and are comprised as follows:

  • The MOD must install using AutoMOD
  • The MOD must be installed on a fresh, unmodified version of phpBB
  • The instructions for making the MOD functional (eg, DIY instructions) must be accurate.
  • Debug is set to “on” in the Test Forum.
  • Any additions to HTML files, or html files themselves, must pass W3c validation.

Once the forum is setup and AutoMOD installed on it, we then upload the MOD and install it to test. If the MOD does not install (due to incorrect commands in the MODX installation file) we attempt to adjust the MODX file so that the MOD installs properly and note the changes for a possible “Repack”. As you can imagine, some modifications are quite easy to adjust while others have very involved MODX installation files.

Once installed on the forum, we test the functionality and accuracy of what the modification is supposed to do. Some of us may make recommendations on “user friendliness” but it is not a reason for a denial of a MOD. Again, some modifications are quite easy to tell if they do what the description states they do. Some modifications are extremely involved and require quite a bit time to be able to test the MOD as thoroughly as possible.

How can a MOD Author help?

The “trick” to getting any MOD to pass validation is to ensure that you, as a MOD author, thoroughly test your MOD just as a JMV would. Ensure it installs onto a fresh installation of phpBB (a.k.a. “vanilla installation”) using AutoMOD. Test your MOD as thoroughly as possible to ensure that it works properly and does not create any “features” (my version of “bugs”). If there is HTML involved, ensure the layout is as “user friendly” as possible. Analyze your code, analyze it again, analyze it again, rinse, repeat…always retesting any changes you make.

Ultimately, the success or failure of a modification passing validation does not rely upon the MOD Team Members or even the Junior Validators but with you, the MOD author. It is up to you to ensure your modification is secure and works correctly. Please know that we are here to help with suggestions and comments or even with code snippets if needed.

Happy modding!! :)

Written by: RMcGirr83 (website)

If you would like to have one of your own blog posts that relates to phpBB on this blog, please contact the Team Leader of the group for which your blog post applies to via a private message with the contents of the blog post.

Moving on – the future of phpBB development

Posted by naderman in Development with the tags , , , , , , , , , , on February 18th, 2010

About a month ago I was promoted to phpBB’s lead developer position. When I was given that role I was asked to present to the management team what my plans for phpBB are. But since they concern all of you, the phpBB community, I believe they belong here as well.

We are currently in the process of releasing phpBB 3.0.7, a smaller bug fix release of Olympus. After that development will split into multiple branches. Meik has already explained our new versioning system in a previous announcement. What this means is that after 3.0.7 is released we will start working on two branches: Ascraeus – the future phpBB 3.1, and Rhea – the future phpBB4. At the same time we will continue maintanance releases of Olympus.

Over the last few weeks we have made a few important decisions, that we believe can positively impact phpBB development. These include changes to development infrastructure as well as our development model. I will briefly outline these changes here, more details will be posted on the blog or as an announcement soon. Read the rest of this entry »

Adding navigational links to your MOD (breadcrumbs)

Posted by battye in Modifications with the tags , , on January 31st, 2010

An easy way to add navigational links to your MOD is to use an inbuilt feature of phpBB3 called “breadcrumbs” (named because it leaves a trail back to the forum index).

It only requires a few extra lines of PHP code to add a breadcrumb to your own MOD (or to your website if you are doing personal customisations). This article explains how to do so.
Read the rest of this entry »

Junior Validators

Posted by battye in Modifications with the tags , , , on January 10th, 2010

What is a Junior Validator?

Junior Validators assist the MOD Team with the validation of MODs. They help the MOD Team validators with pre-validation and testing.

Pre-validation involves running a check on MODs newly submitted to the MOD Database queue using the MOD Pre-Validation tool (MPV) and setting a status on the MOD accordingly.

Testing is the major role of a Junior Validator, and requires installing the MOD on a vanilla phpBB3 board through AutoMOD. After installing the MOD, all functions of the MOD and board should then be tested – all to make sure that the MOD and the board run error-free. The Junior Validator then makes any notes or suggestions to the MOD Team concerning the MOD and, again, the MOD status is set accordingly (“approve”, “deny”, “repack”, etc). In a nutshell, this is the role of a Junior Validator.

Why should I become a Junior Validator?

As a Junior Validator you will be gaining valuable first-hand experience with MOD Team processes which could lead to consideration for a position on the MOD Team. You will also have access to private forums including a Junior MOD Validators forum where you can discuss MOD validation with fellow Junior Validators and MOD Team members.

Most importantly, it will be fun! If you have a passion for writing MODs you will find working with the MOD Team to help validate MODs, and also the opportunity to give something back to the community, very rewarding. The phpBB Team is a very friendly group of people so the chance to work closely with the MOD Team will be very enjoyable.

What are the requirements?

To be considered for a position as a Junior Validator, it is important that you:

- have authored a MOD and submitted it to the MOD Database.
- can communicate in English.
- understand the phpBB3 codebase.
- have an understanding of MODX and MOD policies
- are familiar with the MOD Validation checklist

Where can I apply?

To apply, please fill out the form at the bottom of the Junior Validators page and your application will be reviewed by the MOD Team shortly thereafter. Successful applicants will be notified by private message on phpBB.com.

How to display posts and topics on external pages

Posted by battye in Modifications with the tags on November 9th, 2009

A very common question about phpBB is how to display recents posts or topics on a separate page, such as a website homepage. It can be very handy to do this, as it allows visitors to your website a chance to quickly see recent activity.

This blog post details how displaying a list of recent posts and topics externally can be done. There are a couple of different formats that are covered:

  • The latest topics (including only from specified forums)
  • The first post of the latest topics (including from specified forums)
  • The latest posts from specified topics
  • The latest posts from the entire forum

Everything displayed is subject to the users forum read permissions.

Read the rest of this entry »

MOD Validation Workflow

Posted by evil3 in Modifications with the tags , , , on October 5th, 2009

As the title already says, this blog post will describe how the MOD Team validates modifications and what happens to them before they come out at the other end of the queue.

Read the rest of this entry »

Less significant modification team changes

Posted by evil3 in Modifications with the tags on September 19th, 2009

As previously stated every team will announce in what way it will be affected by the significant phpBB development changes. This post will explain the effects on the modifications team.

Versioning scheme

Since phpBB will be using a new versioning scheme we will adopt this scheme for all of our tools (AutoMOD, UMIL, etc).

MOD authors will be encouraged to use this new versioning system too. We will however be less strict in enforcing it. In fact, we will allow any versioning that is compatible with version_compare, so versions such as 1.0.0.0 will be allowed. We will still require it to be stable though.

Additionally we will release a new version of MODX to support this and adapt our tools where needed.

phpBB 3.0

Because phpBB 3.0 is not going to change we don’t have to adopt any changes. This will just continue as it has been so far.

phpBB 3.x

Depending on what changes will be made to the modding API we will assist MOD authors in using it and provide documentation. All in all, it will highly depend on how many changes will be made to phpBB itself. There are a lots of improvements we can think of, and we will try and get them implemented where possible.

We will allow submission of modifications for new phpBB branches once they are released. We will support the branches that are supported globally.

phpBB 4.0

The release of phpBB 4.0 is way too far ahead for us to be able to say anything at all about it. It is a fresh start and will possibly bring many new possibilities. We can be pretty sure that the new architecture will have an impact on modding that will change it fundamentally. We will wait and see. And work together with the development team.

The future

We have some great plans waiting for the MOD writing community. These include building more advanced infrastructure and tools, as well as making alterations to the MODX standard. We will work on making the workflows of modification engineering more efficient. More information will follow in due time.

– The Modifications Team

How (not) to use request_var

Posted by evil3 in Modifications with the tags , on September 10th, 2009

Note: This post is targeted at MOD authors and contains many technical details.

Introduction

Amongst the great security features that phpBB 3.0 provides is the function used for processing user input, request_var.  This function was designed to make it easy to securely retrieve user inputted data.  It is one of the most important security functions in a system that retrieves external data as it can (with caveats that will be elaborated upon) single-handedly stop XSS and SQL injection attacks dead in their tracks

The reason we have created this blog post is to give more information to modification developers on how to properly explain how this works and why you should use it.

Read the rest of this entry »