How Do Features Make It Into A Release?

Do not post support requests, bug reports or feature requests. Discuss phpBB here. Non-phpBB related discussion goes in General Discussion!
Scam Warning
Pony99CA
Registered User
Posts: 4783
Joined: Thu Sep 30, 2004 3:13 pm
Location: Hollister, CA
Name: Steve
Contact:

How Do Features Make It Into A Release?

Post by Pony99CA »

There's a lot of discussion about the phpBB development process going on in the phpBB Falling Behind? topic. That got me to thinking that it might make an interesting topic to read how features actually make it into releases.

For example, how were the features that went into 3.0 and 3.0.6 were decided upon? Were they chosen only from RFCs or were some features added in response to competitive boards, requests posted here on phpBB.com or because phpBB MODs indicated that they were popular? Were all of the "reasonable" (for a board) RFCs accepted? If not, what criteria were used to implement some features and not others?

This is the kind of openness that can help users relate to the development process. Letting us in on the process for 3.1 and beyond will help even more.

Steve
Silicon Valley Pocket PC (http://www.svpocketpc.com)
Creator of manage_bots and spoof_user (ask me)
Need hosting for a small forum with full cPanel & MySQL access? Contact me or PM me.
User avatar
Arty
Former Team Member
Posts: 16654
Joined: Wed Mar 06, 2002 2:36 pm
Name: Vjacheslav Trushkin
Contact:

Re: How Do Features Make It Into A Release?

Post by Arty »

This is my understanding on how system works:

Create RFC on area51 for version 3.2 (or 4.0 if you want it for v4) because 3.0 and 3.1 are feature frozen. Do your best to describe that feature, list all cons and pros of including it.

Consider making a patch or collaborating with someone to make a patch. Even thought 3.1 is feature frozen, if you write a good patch for your feature for 3.1, it gives a high chance of your feature being moved from 3.2 to 3.1, that has happened to few features. Making patch is easy: fork phpBB on github, create new ticket for your feature on tracker, create new branch on your fork, commit changes and create a pull request. If you are having problems with any part of it, you can always ask questions in #phpbb-dev on freenode where many users and developers will gladly help you with different issues.

edit: Oleg explained it better below
Last edited by Arty on Mon Jan 02, 2012 12:15 pm, edited 1 time in total.
Vjacheslav Trushkin / Arty.
Free phpBB 3.1 styles | New project: Iconify - modern SVG framework
Oleg
Former Team Member
Posts: 1221
Joined: Sat Jan 30, 2010 4:42 pm
Location: NYC
Contact:

Re: How Do Features Make It Into A Release?

Post by Oleg »

I don't know what the reasoning was before 2011. Currently it is roughly as follows:

Generally speaking, features are included if there is consensus among the development team that they should be included.

Features that have no obvious downsides need one developer to agree that the feature is useful and merge it. Bug fixes tend to fall into this category as well (one developer needs to agree that there is a bug and the change fixes the bug).

Features that seem useful overall but have something going against them, such as complexity or runtime cost, usually are not merged right away such that all developers are able to comment on the specific implementation. If a sufficient amount of time passes with no negative votes from the developers then one developer can again take responsibility for merging the feature.

Lastly there are features that are not appealing to any developer, or are too complicated to review. These tend to languish until they are either made more developer-friendly or someone pokes one or more developers to look at them.

If there is disagreement among the developers as to whether a feature should be included, or whether a particular implementation is acceptable, developers debate the issue to arrive at consensus. In the event that no consensus can be reached the team leader's decision will override team members, but I can't recall an instance when this actually happened in my time here.

If a feature is proposed by a developer, at least one other developer must agree with the feature for it to be included in phpbb.

For features and bug fixes to make it into a release which is in maintenance mode (currently 3.0.x), release manager for that branch must approve the change. If the release manager feels that the change is too big or otherwise unsuitable for the maintenance branch, the change will go into the next feature release.
Participate in phpBB development: Get involved | Issue tracker | Report a bug | Development board | [url=irc://chat.freenode.net/phpbb-dev]Development IRC chat[/url]
My stuff: mindlinkgame.com
User avatar
MichaelC
Consultant
Consultant
Posts: 3642
Joined: Mon Dec 21, 2009 3:36 pm
Location: Surrey, UK
Name: Michael Cullum
Contact:

Re: How Do Features Make It Into A Release?

Post by MichaelC »

Generally RFCs are for going into talking about implementation. Sometimes its wise to create a topic in the 3.2 (or 4.0) dicussion forum to get some general feedback before posting an RFC.

If someone can provide a patch for an RFC and submit it before 3.1 reaches alpha then it will be included in 3.1 even if it was posted now. The feature freeze only applies to the RFCs that have to be completed for 3.1. Developers only work on the features for the next piece of software on the RFCs posted before the feature freeze (generally, there are some exceptions).

As Arty said, posting an RFCs provides use-cases, pro's, cons and if you can suggestions for implementations. Even if you don't post an implementation on how it can be coded, you can post it on how it might work front end. Quite often even coders do this, talk about front-end, decide what their doing then talk about the backend.

Once you've made an RFC you can make a ticket on the tracker. This is important as this is the place to provide a patch if you have one or if you can use github, then you need to call your branch and commit message after the ticket ID.

Once you have made a ticket and got an RFC with some feedback then you can go and post a patch (if you know how, i'm just documenting the full process). To submit a patch directly into the repository you need to learn git, if not then post it in the RFC or tracker and a developer (or another community member) will submit it too the repo.

You need a github.net account, if not then you need to register. Then you fork the phpBB Repository. Then you make your changes in a new branch locally (called ticket/TICKETID), commit then with the commit message template:
[ticket/TICKETID] Short description of what you did in the commit
/new line, you don't need to include this text.
PHPBB3-TICKETID
Then push to your branch to your local repository.
Open up your branch on github, then click the pull request button.
Then type in the ticket URL in the Pull Request (PR) description.
Then copy the url for the PR and post it as a patch URL in the tracker ticket.
Then wait for a developer to come and comment on either the ticket, or more likely the pull requests with any changes.
Then make the changes, the pull request will automatically update to include changes in that branch.
Then if the developers think your patch follows coding guidelines etc. it will be merged into the main repository.
:)
Formerly known as Unknown Bliss.
Formerly Website Team Lead/Manager & Development Team.
Please don't PM me for support (or stuff that belongs in the forums or tracker) but otherwise feel free
User avatar
Brf
Support Team Member
Support Team Member
Posts: 52001
Joined: Tue May 10, 2005 7:47 pm
Location: {postrow.POSTER_FROM}
Contact:

Re: How Do Features Make It Into A Release?

Post by Brf »

To echo the original question:
Pony99CA wrote: 3.0.6
There were some new featuries added in 3.0.6, such as Quick Reply and a revamped captcha system.
How were these features added to 3.0, when it is supposedly feature frozen? What would we need to go through to add such features to a later release of 3.0?
User avatar
bantu
3.0 Release Manager
3.0 Release Manager
Posts: 2523
Joined: Mon Jul 10, 2006 9:58 pm
Name: Andreas Fischer

Re: How Do Features Make It Into A Release?

Post by bantu »

Brf wrote:To echo the original question:
Pony99CA wrote: 3.0.6
There were some new featuries added in 3.0.6, such as Quick Reply and a revamped captcha system.
How were these features added to 3.0, when it is supposedly feature frozen? What would we need to go through to add such features to a later release of 3.0?
3.0.6 was something in between a new major release and a maintenance release. I actually suggested to call it 3.1 or 3.2, but the costs of branching off of 3.0.x were not worth it. The decision for including those features has almost solely been made by the development team leader at that time.

One of the lessons learned from the 3.0.6 release was that we want/need more than one branch. At least one that is really stable (3.0.x right now, the develop-olympus branch in git) and another branch that has new features (3.1.x right now, the develop branch in git). This way, people can pick what they want or care about.

Adding features to 3.0.x is (almost) impossible. You would have to convince developers that your feature does not break anything which is kind of hard considering the spaghetti code in 3.0.x and lack of unit tests. 3.1.x on the other side requires PHP 5.2 which itself already allows developers to write "better" code.
Powered by Coffee
User avatar
Lumpy Burgertushie
Registered User
Posts: 67773
Joined: Mon May 02, 2005 3:11 am
Contact:

Re: How Do Features Make It Into A Release?

Post by Lumpy Burgertushie »

Ok, playing the old red advocate here...

So far in this topic I have understood exactly zero of what any of the answers to Steve's question have said.

I have never seen any part of the process being discussed above.

I also do not want to have to learn what it is and how to use it. I just want a particular feature request to be listened to and considered.

What is the best way to make that happen?
Is my feature request going to have any chance at all of being implemented in a future version if I don't do any of the process mentioned above?


robert
I'm baaaaaccckkkk. still doing work on donation basis. PM your needs.

Premium phpBB 3.3 Styles by PlanetStyles.net

If nobody is in the forest, does a tree really fall?
User avatar
Arty
Former Team Member
Posts: 16654
Joined: Wed Mar 06, 2002 2:36 pm
Name: Vjacheslav Trushkin
Contact:

Re: How Do Features Make It Into A Release?

Post by Arty »

Lumpy Burgertushie wrote:I have never seen any part of the process being discussed above.
It is happening on area51, not on this forum.
Lumpy Burgertushie wrote:Ok, playing the old red advocate here...

So far in this topic I have understood exactly zero of what any of the answers to Steve's question have said.
I'll try to explain it as simple as possible.

You have an idea, here is what your steps should be (without the coding part).

1. Think it through. Write it down, trying to write as many details as you can.

2. List pros and cons of implementing your idea.

3. Post it on area51.

3a. If your idea is well written, you can post it in one of RFC forums, naming it "[RFC] My cool idea title".

3b. If you aren't sure of something and just want to start discussion, you can post it in a discussion forum.
Vjacheslav Trushkin / Arty.
Free phpBB 3.1 styles | New project: Iconify - modern SVG framework
wGEric
Former Team Member
Posts: 8805
Joined: Sun Oct 13, 2002 3:01 am
Location: Friday
Name: Eric Faerber
Contact:

Re: How Do Features Make It Into A Release?

Post by wGEric »

How do the developers decide what is a useful feature?
Eric
User avatar
MichaelC
Consultant
Consultant
Posts: 3642
Joined: Mon Dec 21, 2009 3:36 pm
Location: Surrey, UK
Name: Michael Cullum
Contact:

Re: How Do Features Make It Into A Release?

Post by MichaelC »

By the replies in the discussion topic and soon when the ideas centre (currently deciding what to use for the script for this on area51) is setup then the average joe user will be able to vote on features they like easily.
:)
Formerly known as Unknown Bliss.
Formerly Website Team Lead/Manager & Development Team.
Please don't PM me for support (or stuff that belongs in the forums or tracker) but otherwise feel free
Pony99CA
Registered User
Posts: 4783
Joined: Thu Sep 30, 2004 3:13 pm
Location: Hollister, CA
Name: Steve
Contact:

Re: How Do Features Make It Into A Release?

Post by Pony99CA »

Lumpy Burgertushie wrote:Ok, playing the old red advocate here...

So far in this topic I have understood exactly zero of what any of the answers to Steve's question have said.

I have never seen any part of the process being discussed above.
Thanks, Robert. However, to be fair, I think that Oleg and Bantu did give us some insight into the process. However, what I gathered from those posts is that everything that gets into a release is decided by the developers themselves; no user input is directly taken into account. If no developer is interested in the project, a feature may go unimplemented.

That may not be a correct assessment, but it seems like there should be a Project Manager who decides what features go into a release (based on developer input on how long a feature will take to implement and the pros and cons of that feature, of course). This is not the Development team leader, but an independent staff member (maybe the Community Liaison discussed in previous posts, maybe the Operations Manager). Heck, maybe there should even be a User Team responsible for making phpBB best for users. ;)

Arty and Unknown Bliss, thanks for the responses, but maybe my original post wasn't as clear as I had hoped. I know how the RFC process works, but am more interested in two questions:
  • Are new features taken only from RFCs or from other places, for example, competitive boards, popular MODs, frequently requested features on phpbb.com, etc.? To put it another way, will somebody on staff take ideas from those areas and create RFCs for them if they don't already exist?

    If it's only from RFCs, that makes my suggestion of moving the feature request process to phpbb.com more important.
  • Once a feature is under consideration for inclusion into phpBB (whether it's in an RFC or not), what is the process for determining what features actually make it into the release plan?

    If it's only done "behind closed doors" by the team members (especially just the development team members), I think that's a problem. I mean no disrespect to the developers -- I've been one myself (not on phpBB, obviously); I just think that developers often can't see the forest for the trees at times. :) I also believe that user input into what features are accepted for a release will make for happier users.
I hope that clarifies what I'm asking about (and why).

Steve
Silicon Valley Pocket PC (http://www.svpocketpc.com)
Creator of manage_bots and spoof_user (ask me)
Need hosting for a small forum with full cPanel & MySQL access? Contact me or PM me.
User avatar
Lumpy Burgertushie
Registered User
Posts: 67773
Joined: Mon May 02, 2005 3:11 am
Contact:

Re: How Do Features Make It Into A Release?

Post by Lumpy Burgertushie »

Yes, I was trying to ask my question about the RFC process because I have never looked at that process. ( yes, I know about area51) I do not code and have never really thought about requesting a change or addition anyway.

I was making the point that for most users, the above descriptions are going to sound like chinese. I feel I understand phpbb fairly well but I have no clue what any of those terms even mean. I know that I could spend a few minutes checking it out and probably understand everything that was said. However that is not the point.

Most users do not know or wish to know how to use that type of system. That is why I was wondering what the process was for them( us ) and Arty's explanation was very good and understandable.
( thanks, Arty ).


I certainly do not speak for the staff past or present, but my understanding of the whole thing has always been that it is not a democracy and never was.

From the descriptions of the process posted, I would not call it a democracy still.
I am not saying that is a bad thing, just that if it is the case then we/nobody should expect everything to go up for a vote and the majority wins.


robert
I'm baaaaaccckkkk. still doing work on donation basis. PM your needs.

Premium phpBB 3.3 Styles by PlanetStyles.net

If nobody is in the forest, does a tree really fall?
User avatar
naderman
Consultant
Consultant
Posts: 3735
Joined: Fri Aug 01, 2003 10:06 pm
Location: Berlin, Germany
Name: Nils Adermann
Contact:

Re: How Do Features Make It Into A Release?

Post by naderman »

I think others have already done a good job at explaining the current process. But I'd like to point out two details in the reasoning behind this process:

1) There's a topic on Area51 discussing a formal voting process which you can post in if you have a good idea for how to improve RFC voting. In general the feedback developers receive will always be skewed in some direction since we won't get a majority of all phpBB users on the web to participate here. But I think simply by allowing everyone to discuss and requiring developers to explain their reasons in those topics, we can get quite a lot of community participation already.

2) We can only ever put a feature in phpBB if it is implemented. For it to be implemented a user or developer must write the code. Since this is a volunteer project, developers will stop participating if they are continously forced to implement features which do not interest them, because it demotivates them. So a key to getting features into phpBB is convincing someone able to implement the feature (does not need to be a developer), that a feature is a great idea, so they will voluntarily spend their time on working on this feature. If we had a project manager who decided on features, that nobody wants to work on, we wouldn't get them into phpBB either. On the other side this means, that anyone capable of implementing a feature can influence feature decisions a lot more than other users. Users can demonstrate and explain the merits of a feature so that people capable of implementing the feature will implement it. Insulting, being angry or having unrealistic expectations of developers is not going to help with that.
I appreciate gifts from my Amazon wishlist.
naderman.de twitter: @naderman
Pony99CA
Registered User
Posts: 4783
Joined: Thu Sep 30, 2004 3:13 pm
Location: Hollister, CA
Name: Steve
Contact:

Re: How Do Features Make It Into A Release?

Post by Pony99CA »

naderman wrote:Insulting, being angry or having unrealistic expectations of developers is not going to help with that.
Has somebody in this topic gotten angry or insulted developers? I didn't see anything like that (although some of the other topics may have had some). I think that most of us respect the jobs that the developers are doing.

As for unrealistic expectations, that's why posted release dates can help (if they're realistic, of course). Then people won't keep asking when the next release is coming out. ;)

Steve
Silicon Valley Pocket PC (http://www.svpocketpc.com)
Creator of manage_bots and spoof_user (ask me)
Need hosting for a small forum with full cPanel & MySQL access? Contact me or PM me.
User avatar
naderman
Consultant
Consultant
Posts: 3735
Joined: Fri Aug 01, 2003 10:06 pm
Location: Berlin, Germany
Name: Nils Adermann
Contact:

Re: How Do Features Make It Into A Release?

Post by naderman »

Pony99CA wrote:
naderman wrote:Insulting, being angry or having unrealistic expectations of developers is not going to help with that.
Has somebody in this topic gotten angry or insulted developers? I didn't see anything like that (although some of the other topics may have had some). I think that most of us respect the jobs that the developers are doing.
Sorry, I really didn't mean to imply that at all. That sentence originally sounded a bit different until I edited it, but I guess it's out of context now. I really just thought of that cause I've receive the one or other rather insulting PM "missing" features before ;-)
I appreciate gifts from my Amazon wishlist.
naderman.de twitter: @naderman
Post Reply

Return to “phpBB Discussion”