BP 2.3.0 Dev Cycle – Contributor Priorities

This is a compilation of the planning and discussions held during the past three weeks (02/11/15, 02/18/15, and 02/25/15). Contributors have indicated the areas they are going to work on for the next three months or so of the 2.3.0 dev cycle:


  • New Invitations API where he’ll be building the API/lib first and add the component later as the need arises (#6210) with @johnjamesjacoby
  • Add tests for group invitations and membership request functions (#6209)


  • Complete documentation on BP Core files (#5940)
  • Complete documentation on BP Templates (#5948)
  • Reference: Docs initiative (#5022)
  • Afterwards, he will go over to all existing phpdocs and touch up ones that PHPStorm is reporting as inaccurate params and whatnot.


  • New Attachments API (#5429) with @johnjamesjacoby
  • Local avatar management with new attachments API (#6004)
  • Possible new Relationships API with @djpaulgibbs based on https://github.com/paulgibbs/buddypress/tree/posts2posts for the Favorites/Likes features. Meeting at WCLondon to discuss this.


  • Member types API level such as member-type-specific xprofile fields (#5192)
  • “Only Me” profile fields are searchable by other users (#6138)
  • Member Types API: remove a user’s member type (#6188). Update: This issue was fixed today.
  • Check in other ongoing work in Trac


  • Add companion stylesheets for all WordPress Default themes (#6248)
  • Twenty Fifteen theme BP Companion Stylesheet (#6124)



  • 2015 BuddyPress Survey: launched 02/18/2015 through results post in April (#5980)
  • 2015 bbPress Survey: from ~ April 2015 through results in June/July 2015 (bbPress#2767)
  • WP Theme Repo: submit themes which support BuddyPress and bbPress
  • BuddyPress Codex: Add/update articles


  • Work with @im4th on the new Relationships API
  • Deleted activity items remain favourited (#3794) with @johnjamesjacoby
  • Activity Favorites: alternative management & new features (#5644) with @johnjamesjacoby
  • Improve representation of blog posts in the Activity Stream (#6177) which is virtually ready
  • BP Trac Maintenance and work on ideas for future releases


  • New Notifications Meta (#6257)
  • Work with @rayisme on Message cache
  • Work with @im4th on new Attachments API
  • Work with @dcavins on new Invitations API
  • Work with @djpaulgibbs on Favourites/Likes
  • Work on new Administration UI’s for each component. @djpaulgibbs mentioned that he has UI for xProfile in wp-admin.


  • Will continue with his 5% for WordPress via BuddyPress and find ways to contribute in Trac.

You can keep track of the tasks for the 2.3.0 milestone on this page.

Commit Access

  • Commit access has been granted to @hnla for his work on the tickets mentioned above and other tasks to be assigned by the Lead Developers.

BuddyPress.org Issues

  • @slaffik raised an issue about the i18n sites of BuddyPress.org. @henrywright brought up an issue re BuddYPress.org forums. @ubernaut reported on an issue which was previously reported in trac which will be fixed when the WP trac ticket referenced in said ticket is fixed.
  • @johnjamesjacoby mentioned that these issues can be posted in https://meta.trac.wordpress.org/. The themes and plugins are open-sourced and can be patched. He added, “I don’t expect anyone to want to figure that all out (as it’s a bit non-standard at the moment.) It’s a bit unorthodox because BuddyPress.org & bbPress.org share resources amongst several sites & trac which does not run WordPress or PHP.”

New BuddyPress Welcome Screen Designs

  • Per initiative led by @djpaulgibbs in his post last Dec. 19th, @modemlooper presented two screenshots prepared by designers from WebDevStudios two weeks ago (#6224). Most of those present at the dev chat preferred the screenshot of the BP Welcome screen header (light version).
  • @djpaulgibbs encouraged interested parties to think bigger than what we do on the Welcome screen already, not just “make current screen look/work better”.

2015 BuddyPress Survey

  • Please help guide the direction of BuddyPress development in 2015 by taking the Survey at https://buddypress.org/2015/02/2015-buddypress-survey/ Thank you!

2015 BuddyPress Survey Launched


BuddyPress 2.2.1 is here!

Upgrade now https://buddypress.org/2015/02/buddypress-2-2-1/

The $bp global

Way back in the early days of BuddyPress, the $bp global variable was king. Just about everything BuddyPress related was connected to it in some way (other than the template loops themselves.)

This approach is not uncommon. Even WordPress does something similar in wp-settings.php:

$GLOBALS['wp'] = new WP();

The major difference between WordPress and BuddyPress here is that the $wp global has always been a WP() object responsible for setting up the WordPress environment, while our $bp global used to be just a big collection of random attributes.

We’ve been fairly open and relaxed about latching on to the object as a global data store for all of BuddyPress’s runtime variables. Several third-party BuddyPress plugins use it, and our BP_Component interacts with many of its variables directly.

Fast forward to 2012, and $bp is transformed into a real BuddyPress object, complete with methodology and best practices, and ready to be a bit more intelligent than it was in the past. Since then, we’ve slowly removed our dependence on touching the $bp global directly, and instead encapsulated it in a call to buddypress() to retrieve the object into the current scope. You can read more about the overall initiative on Trac Ticket #5138.

This evening, I replaced all of our remaining global touches with one sweeping changeset. In most cases, this should be a completely invisible change that means very little to anyone not working on BuddyPress core. For the small group of us constantly building and maintaining core, this means a few different things:

  • No more defining the $bp global. Use the buddypress() instead.
  • Even though the global is still hanging around for backwards compatibility, touching it directly should be avoided to prevent accidental breakage.
  • We can start to introduce magic getters and setters for commonly referenced or manipulated variables to ensure their evocation and ongoing validity.
  • We can start reliably moving other BuddyPress globals into this object, and architecting what the next generation of extensions to BuddyPress core will look like, and how BuddyPress core will react to them.
  • We can sleep a bit more soundly knowing that the $bp global has an extra layer of protection against being unknowingly overridden by unexpected plugin conflicts or other WordPress environmental oddities. (Though it’s been years since BackPress and BuddyPress were actively loaded together, between BuddyPress, BackPress, and bbPress, the “bp” namespace was very easily polluted.)

Though developer impact should be minimal, this represents a sweeping code change for BuddyPress 2.3 that should not go unrecognized or uncelebrated. This bit of clean-up was years of iteration and testing, and it feels pretty darn good to have it over and done with so we can move on to other more pressing issues.

BuddyPress 2.2.0 Spumoni

BP 2.2 is now available! https://buddypress.org/2015/02/buddypress-2-2-spumoni/

Slack log: https://wordpress.slack.com/archives/buddypress/p1423080058000925
Packaging and reviews started earlier than the meeting and lasted till after the meeting proper.

Testing and feedback welcome :)

Many thanks again to everyone who contributed to BP 2.2:

@andemann, Andrea Tarantini (@dontdream), Boone B Gorges (@boonebgorges), Brandon Allen (@thebrandonallen), Clean-Cole, @colabsadmin, Damon Cook (@colorful tones), @danbp, David Cavins (@dcavins), Fahmi Adib (@fahmiadib), George Mamadashvili (@mamaduka), Greg Rickaby (@gregrickaby), Hugo (@hnla), Jake Spurlock (@whyisjake), Jess Planck (@ev3rywh3re), John James Jacoby (@johnjamesjacoby), Josh (@joshshashaty),@jreeve, @lakrisgubben, Laurens Offereins (@0ffereins), @lenasterg, Mario Peshev (@nofearinc), Mathieu Viet (@im4th), @mercime, Michael Beckwith (@tw2113), @modemlooper, OC2PS (@sooskriszta), Paul Gibbs (@djpaulgibbs), @pro120, @psycleuk, @rayisme, Renato Alves (@espellcaste), Sergio De Falco (@SGr33n), @shpitzyl, Slava UA (@slaFFik), @standardspace, Stephen Edgar (@netweb), @svenl77, @tharsheblows, @thebigA, @thomaslhotta, Tomasz Ostrowski (@tometzky), Unsal Korkmaz (@unsalkorkmaz), @vimes1984, Scott Taylor (@wonderboymusic)

Trac Updates

It can be cumbersome to navigate, intimidating to learn, and difficult to master. We know Trac isn’t always the most user friendly tool, but we love it anyways because it works really well for managing the type of project BuddyPress is and the workflow we use.

These issues are exacerbated when Trac is out of date, or has not been “gardened”, which usually refers to general pruning, tidying, and making sure there’s a place for everything and everything is in its place.

Over the past year or two, we’ve focused on improving the software and the build tools, and (other than software updates to keep up with WordPress’s Trac) haven’t revisited our Components, Milestones, or Resolutions in a long while.

This morning I made some rearrangements I think will help us stay better organized and on-target, outlined below:

  • Added the “Under Consideration” milestone, for issues that the core team has reviewed but hasn’t decided on exactly where it belongs yet. This is good for keeping Awaiting Review empty, and getting feedback to ticket authors sooner.
  • Components are now namespaced by what exactly they are intended to be. This should help tickets get categorized appropriately sooner, and help the core team better assess what areas need what improvements.
  • Several components were renamed to more approximately reflect our intentions for them.
  • Removed (4) beta and RC releases from Versions. Any related tickets were moved to their closest appreciate version. We were hugely inconsistent with these versions, and much of the time these were not accurate.
  • Deleted old milestones for Unit Tests and TestBP.org. These had 4 total tickets that were moved to more apprpriate milestones.
  • Added the “regression” ticket type, to help draw attention to issues that should be tested more quickly and prioritized higher.
  • Tens of tickets were shuffled around to better match the above changes. Sorry for the barrage of emails this probably sent out to several of you.
  • Updated current and future milestones to loosely set the pace for 2.2.1 and 2.3, which will start not-long-after 2.2 is released.

Like most things, all of these changes are open to criticism and scrutinization. If it turns out they hurt more than they help, we can try something else. These changes are inspired by years of interacting with Trac and witnessing repeated workflow hang-ups.

We aren’t exactly agile; sometimes members of the core team don’t intersect on issues for a few days, and tickets go unloved for weeks or months. I think we do great in the face of this, and hope our slightly modified arrangement feels like a natural progression of our growing team and project.

Make.WordPress Community Hub poll

Here’s a reminder for those who haven’t seen it. Please take a few minutes to fill in the Community Hub Poll as the poll closes in the next few days. Get at it!

This poll’s aim is to find out what features the WordPress community would like in their Community Hub. This survey will close at 29 January 2015 00:00 UTC What do we need from you? Please fill in this poll to voice what features you feel are important for the WordPress community hub to have.

Take the poll