Dev Chat Summary for August 12, 2015

BuddyPress 2.3.3

Release Date: After WP 4.3.0 rolls out next week.

There are three open tickets:

  • Wrong shape of the CROP size of the group thumbnail (#6551)
  • Mentions.js fails on wp-admin post editor (#6487)
  • WP 4.3 changes in WP_List_Table (#6465)

@djpaulgibbs has volunteered to help move these tickets forward.

BuddyPress 2.4.0

Add UI for adding Profile Header Images for Users and Groups

  • (#6570) @im4th opened the conversation which lasted ~ one hour on the best way forward for this new feature. This resulted with great feedback from @johnjamesjacoby, @rayisme, @djpaulgibbs, and @hnla.
  • Points made:
    1. Feature is available for all themes. bp-legacy‘s member-header.php gets the new hotness, and nothing gets broken if the feature is not activated.
    2. Create new template part with new markup, styles, and JS as needed
    3. Integrate a flexible header image for admin-area profiles, user dashboard
    4. If a custom template part is used in theme, then nothing happens because theme compatibility would never include anything in bp-legacy. If they are relying on theme compatibility and bp-legacy then they get the new markup and CSS that we give them.
    5. Users/theme authors will be able to edit their home.php template to support this new feature
  • More to follow. Odds are, there will be some fast and furious work coming soon.

Conversation replies don’t immediately inherit the HTML of custom templates

  • (#6572) @rayisme introduced a new template part to replace the hardcoded markup used to render a single message item in ticket. Discussion in dev chat then ensued to solve one of the two hard things to do in computer science, naming things . Consensus was reached on the name of the new template part, simply message.php.
  • Update: Patch has been committed to core.

@since standard not parseable with phpDocumentor 2

  • (#6576) @since tags throughout the BuddyPress project needs to be revised/updated to parse docs correctly in preparation for developer.buddypress.org.
  • @tw2113 will be working on this.

Attachment API conflicts with wp_enqueue_media()

BuddyCamp Brighton, U.K.

This event was a success based on the feedback from the attendees. Congratulations to @djpaulgibbs and @karmatosed, organizers of the first BuddyCamp in Europe, as well as to all the speakers and presenters!

  • @im4th has posted about his BuddyCamp experience in français along with his slides at his site.
  • @modemlooper has uploaded his BuddyCamp video about mobilizing your BuddyPress site @ Dropbox.

If you want to include links to your BuddyCamp Brighton slides/videos or photos, post a comment below and we’ll add it to the list above.

Slack log: https://wordpress.slack.com/archives/buddypress/p1439406192001125

#6465, #6487, #6551, #6570, #6572, #6574, #6576, #dev-chat

Dev Chat Summary for June 3, 2015

This post includes updates since the dev chat last Wednesday.

BuddyPress 2.3.1

New BP Core Team Member

  • We’re pleased to announce the newest member of the BuddyPress Core Team, @hnla (Hugo Ashmore). He is a long-time BuddyPress core contributor, Forums Moderator, Co-Lead of the BP Codex, completed the new BP companion stylesheets for the Twenty Fifteen and Twenty Fourteen themes in this recent dev cycle, and has many tasks scheduled for this year. Hugo is a freelance frontend developer based in London who enjoys Sunday Roast or Curry. Congratulations @hnla!

New BP Rockstar

  • We’re happy to share the news that @dimensionmedia (David Bisset) is the newest BP Rockstar. @dimensionmedia has organized the first U.S. BuddyCamp (and second ever after BuddyCamp Vancouver) in 2013 and continued to do so in 2014 and 2015. That makes him a Rockstar in our books! To top it off, @dimensionmedia is one of the founding members of WordCamp Miami and has organized the event for the last six years. Quite amazing, really. Congratulations @dimensionmedia!
  • You can view the archived livestream for the morning and afternoon BuddyCamp sessions (you need to create a livestream.com account to do so): A.M. sessions – http://livestream.com/accounts/13701773/events/4081950 P.M. sessions – http://livestream.com/accounts/13701773/events/4081959

BuddyPress in WordCamp Lyons, France 2015

  • @im4th has given a 40-minute grand tour of the “BuddyPress Ocean” last Friday, June 5th, aboard possibly the first ever “floating WordCamp” in Lyons. He has just posted about the event at our BuddyPress.org blog. He has included images, links to his slideshow, and gists for making BuddyPress work for you in different scenarios, among other tidbits.
  • Check out https://buddypress.org/2015/06/boarding-the-wordcamp-lyon/
  • #wclyons photos by Manuel Schmalstieg are available at https://www.flickr.com/photos/kinetoskop/sets/72157653729160548

@im4th presenting the BuddyPress ocean. Image by Éric Wayaffe

BuddyCamp in Brighton, U.K. 2015

  • Mark your calendars! The first BuddyCamp outside of North America has been greenlighted. Our very own @DJPaulGibbs and @karmatosed are co-organizers of the first BuddyCamp in the U.K. which will be happening on August 8, 2015 in the beautiful seaside city of Brighton, a 2-hour drive south of London. The calls for speakers and sponsors are now open!
  • Keep an eye on the BuddyCamp Brighton site as things develop over the coming weeks @ http://brighton.buddycamp.org/2015/

#dev-chat

Happy #weekly-updates, everyone. If you…

Happy #weekly-updates, everyone. If you haven’t read @karmatosed‘s posts on the state of the template pack, or @boonebgorges performance improvement numbers, go do that. Both are must-reads.

Beta 2 will be arriving this week. If you’ve contributed to the project this last week, thanks so much — share here what you did. 🙂

The state of the template pack

As most know by now, the template pack isn’t going to be part of 2.0. Whilst this is a little sad, it’s for the best. It wasn’t ready and there is no point releasing something that isn’t going to be amazing.

That all said, the focus for the template pack should move onto 2.1. I’ve spent a bit of time thinking about this and plan on during April to do something a little different. I will personally work on a fork experimenting with some layouts and interfaces. I feel the project was the casualty of both taking a long time and momentum. I want to take stock and create a fork to play with ‘what could be’.

This will be a short time and will be an attempt to be more brave about this project. The aim is to push and come up with a solution for the navigation and other areas we had to settle for. It won’t be to commit it all, I will post what I create to get feedback and opinions. I think at this stage the project needs this singular focus and experimentation just for a few short weeks.

I will be doing this all on a Github branch called lab on the project here:
https://github.com/karmatosed/buddypress-templates/tree/lab

Perhaps one of the biggest areas that will need hands come the push into 2.1 will be the messages area. I am keen we work on the layout we dropped due to issues. I am optimistic with renewed strength and new development hands we can deal with this. I think this is something we shouldn’t settle for not doing.

Whilst it’s disheartening when we don’t reach a goal, I feel that this template pack will be stronger for this process. Those that have worked on it, thank you. Those that want to work on it for 2.1 – yay thank you and welcome.

As far as ‘what happens next’ goes. I think in a few weeks I will post a summary of my experimentation. We still have the Github project, that won’t go away. Anyone is welcome to work on anything there and test, refine in meantime. We will after that look at the next steps. I’m very keen we get this early into core during 2.1.

#weekly-updates

One of the primary focuses…

One of the primary focuses of BP 2.0 development has been performance. In this post, I’ll share a few numbers that demonstrate the improvements you can expect in the new version.

For testing, I set up a fresh installation of WP 3.8.1, running Twenty Fourteen and the default widget configuration. Using wp-cli-buddypress, I generated 30,000 members and 60,000 activity items. I toggled between various setups, running the latest BP 1.9.x as well as the latest BP trunk (2.0.x). The tests labeled “APC On” were run using APC with a default config (specifically, APCu on PHP 5.5.10) and the WP APC plugin. In these cases, I also primed the cache with a page refresh. Tests labeled “APC Off” do not have persistent object caching enabled.

What follows are statistics about MySQL (number of queries and the total query time). In many cases, there are corresponding improvements in script execution time and memory footprint, but these latter numbers are so dependent on other environmental features that I’ve decided not to include them here. You should take things like “query time” with a grain of salt; the numbers are useful mainly to visualize relative gains. But it’s worth noting that the improvements in query time will become more significant as sites become larger than the dummy site that these numbers come from.

  1. Baseline
    Here are some numbers with BP deactivated, so you can get a sense of what the default WP installation is doing:

    Home page – BP deactivated – APC Off

    # queries: 30
    query time: 0.005503s


    Home page – BP deactivated – APC On

    # queries: 9
    query time: 0.002269s

  2. Activity
    Several important changes were made to the way that BuddyPress activity is queried, including significant improvements in object caching and splitting the query to avoid costly JOINs. Here are some results of looking at the main Activity directory page, default filters, as a logged-out visitor.

    BP 1.9.2 – APC Off

    # queries: 80
    Query time: 0.111316s


    BP 2.0 – APC Off

    # queries: 59
    Query time: 0.046568s


    BP 1.9.2 – APC On

    # queries: 10
    Query time: 0.002157s


    BP 2.0 – APC On

    # queries: 5
    Query time: 0.001317s

  3. Members
    The efficiency of members queries was another area of intense focus during the 2.0 dev cycle. The way that last_activity data is stored and queried was overhauled, and a large number of improvements were made to userdata caching. The following data is from the 234th page of the Members directory, sorted by Last Active (/members/?upage=234), as seen by a logged-out visitor.

    BP 1.9.2 – APC Off

    # queries: 63
    Query time: 0.197926s


    BP 2.0 – APC Off

    # queries: 39
    Query time: 0.0952112s


    BP 1.9.2 – APC On

    # queries: 17
    Query time: 0.184889s


    BP 2.0 – APC On

    # queries: 10
    Query time: 0.091074s

  4. Logged-in data
    Users who are logged in to a BP site carry a lot of data along with them on every page of the site. Userdata is used to build navigation links, to build the admin bar, to populate the Notifications dropdown, etc. We’ve made an effort to make these queries less redundant and more efficent. Here are some numbers from a home page visit by a logged-in user.

    BP 1.9.2 – APC Off

    # queries: 49
    Query time: 0.010246s


    BP 2.0 – APC Off

    # queries: 45
    Query time: 0.008786s


    BP 1.9.2 – APC On

    # queries: 16
    Query time: 0.0042662


    BP 2.0 – APC On

    # queries: 4
    Query time: 0.0012240

You can see that the improvements are significant. The number of queries per page load in each case has been cut by up to 50%, and query time, on average, has been cut by more than 50%. And remember that these numbers are total values – it’s BP on top of WP’s standard queries. That is to say that the query footprint attributable to BP itself has been reduced by up to 75% in many places.

This is not an exhaustive list of benchmarks, but it’s indicative of improvements you should see across most sections of BP sites after the 2.0 upgrade. The improvements will be especially noticeable on very BP installations. If this isn’t good motivation for you to help with the 2.0 beta, I don’t know what is 🙂

#weekly-updates for the week of…

#weekly-updates for the week of 31st March. Remember for this week’s dev chat, the time moved to 19:00 UTC (back one hour from what it was before, because of DST).

What’s everyone been up to?

#5511

Once upon a time, we…

Once upon a time, we had #agenda posts going up once a week before the dev chat. They kind of died out when we switched the frequency and time of the dev chats around, but now that we seem to be on a bit of a roll again, I’d like to suggest we try something similar.

The goal is to put individual updates in a more visible place (finding the IRC logs is kinda tricky) and, by moving a lot of the updates to this site, to free up more time in the dev chats to give everyone more time to talk to each other synchronously and ask questions. If a feature developer has other time commitments for a particular meeting, moving the updates to the bpdevel site will make sure that everyone has the opportunity to read an update from them. Let’s see how this works for a couple of weeks, and we can make changes as necessary.

I’ll publish a #weekly-updates post on this site every week, and for everyone who’s contributing to a ticket, please leave a comment on that week’s update post with a summary of you’ve done. As a prompt when writing these: tell everyone what you contributed to last week, and what you’re aiming to do this/next week.

#4551, #4680, #5128, #5220, #5328, #5357, #5398, #5399, #5400, #7899

A couple of weeks ago WordCamp London happened…

A couple of weeks ago, WordCamp London happened. As is becoming increasingly common, the day after the conference was Contributor Day. In a nutshell, a Contributor Day is an opportunity for you to learn how you can make your own contribution to WordPress, in a room full of friendly and helpful people.

A small group of us got together and spent the time contributing to BuddyPress; big thanks to those who stopped by, even for a quick chat. Mad props goes to Noel Tock, haykayltduk (Anand), @karmatosed, and @hnla. We spent a long fun day working on a couple of projects and brainstorming.

We’re pretty proud to share one of these with you now. Introducing a refreshed appearance for the BuddyPress Codex: new header colour, re-designed sidebar, countless typography improvements — and be sure to scroll to the very bottom of the page!

This has inspired us to focus on making many more improvements to our websites in the year ahead, and already there’s all sorts of things happening behind the scenes to make it much easier for people to contribute in these ways. Stay tuned!

@karmatosed and I spent a little time this…

@karmatosed and I spent a little time this morning updating the appearance of this P2 to more closely resemble buddypress.org; the blue was super old. 🙂

#bpdevel

BuddyPress 1.9 dev cycle plans

[Thanks to Trisha for helping to compile these notes!]

After the BuddyPress dev chat on July 31, we’ve got some tentative plans for the 1.9 scope and timeline.

For the 1.8 dev cycle, our experiment with a short timeline and strict deadlines was, by most measures, a big success. We’ve had very few bug reports related to changes in 1.8, and the speed of the cycle meant that nothing sat unused in trunk for too long. We’re hoping to replicate this success by taking a similar approach for BuddyPress 1.9.

Scope

We settled on roughly the following major feature set for the 1.9 release. I’ve listed appropriate ticket numbers, along with those who’ve committed to the tasks (though, as always, more participation is very welcome).

  • New template pack (@karmatosed and others; see #4952). This work was begun during the previous release cycle, and we think we’re in a good position for this to be the main user-facing improvement in 1.9.
  • Move user ‘last_activity’ out of wp_usermeta. (@boonebgorges; see #5128)
  • Better two-way sync of activity comments with sources like forum replies and blog comments (@r-a-y and @paulgibbs; see #1419)
  • Migrating to the WP Rewrite API (@johnjamesjacoby; see #4954)
  • Custom Post Type enhancements: better activity stream integration, and better dashboard support for that integration (@trishasalas and @boonebgorges; see #3460)
  • Codex cleanup and refresh (@mercime and @hnla)

Timetable

  • August 1, 2013 – 1.9 development cycle begins
  • September 26, 2013 – End of new development for 1.9. Beyond this date, nothing gets committed that is not either a bug in a new feature, or a regression from 1.8.x. Any major features from the list above that are not commit-ready by this date will be bumped. Note – The period between Aug 1 and Sep 26 is eight weeks, two weeks longer than the corresponding part of our 1.8 cycle. We’re hopeful that this extra two weeks will give us more time to wrap up big features, and perhaps to focus more specifically on scrubbing old bugs.
  • October 1ish, 2013 – 1.9-beta1. We’ll release the first beta as soon as the cleanup from the dev period has taken place.
  • November 7, 2013 – BuddyPress 1.9 release