General Summaries for April 13 – 20, 2016

This post covers the following meetings:
1. New Template Pack, April 13,
2. Dev Chat, April 13,
3. BuddyPress Work Party, April 14, and
4. Dev Chat, April 20.

New Template Pack

We held the first meeting to discuss the new template pack an hour before our regular Dev Chat as scheduled. Members of the core team shared expectations and observations about the new BuddyPress template pack based on what @im4th has accomplished so far in his next-template-pack plugin. The plugin already has an option for end users in the back end to either use bp-legacy templates or use the new template pack and it uses handlebars templating but like email tokens, you can only work with what you have in the JSON payload.

 The initial discovery phase touched on the following items:

  • modularized template pack with some theme goodies sprinkled in
  • put all the new features in next-template-pack including improved UI, compatible with latest BP/WP versions, and all the accessibility baked in.
  • modern JS and CSS, works really nicely with the idea of the CSS snippets library, too … making the whole experience more flexible and easily customizable
  • general agreement that the new template packs don’t have to be beholden to bp-legacy backward compatibility
  • core files  still have to honor the parent theme styles
  • modular CSS – BP  pattern library
  • make a list of the kinds of things we need to output, so we can work to unify styles as much as possible, see http://alistapart.com/blog/post/getting-started-with-pattern-libraries
  • planning documents: Google Docs, bpdevel, Trac tickets
  • identifying core markup to use/move
  • move next-template-pack to BuddyPress github account
  • manifesto with project scope and implementation plan
  • Shoot for the moon. “I’d say let’s not be circumspect (with anything). Let’s go for it, then throttle back what we have to,” per @dcavins

Next meeting: Wednesday, April 27,  same time (18:00 UTC), same #buddypress channel in Slack.
Update: See additional notes in the April 20 Dev Chat at the bottom of this post for the Template Pack meeting next week.

Dev Chat

BuddyPress 2.5.3

  • There are three tickets in queue with improvements to BP Email.
  • Release date: TBA

Email Subject special characters display problem with initiator.name token (#6966). This is the only ticket left open for this minor release. @dcavins, @djpaulgibbs, and @rayisme discussed about the feasibility of adding emoji support in BP Emails. Need to check which email providers and mobile clients show emojis. @rayisme has volunteered to work on this ticket.

BuddyPress 2.6.0

  • There are 115 tickets currently slated for this cycle (32 closed. 83 open)
  • Beta 1: May 25, 2016
  • Release Candidate 1 (string freeze): June 8, 2016
  • Target Release Date: June 15, 2016

Route `/me/*/` to `/members//*/` (#6325) @rayisme has patch for the redirection.

Minimum WP version bump for BP 2.6 (#7013) @dcavins reminded all re @boonebgorgespost: BP 2.6.0 will require WP 4.1 or higher.

filter for $after_member_slug in bp-core-catchuri.php (#6694) Has patches by @dcavins, @boonebgorges, and @rayisme. Needs testing/feedback.

Use “Mystery Group” avatar when group avatar not available (#6372) Has patches by @abweb and @boonebgorges. Feedback welcome.

Activity post form template improvements (#6680) Has patches by @rayisme and @mercime. @dcavins has posted before and after-patch screenshots of the Twenty-* themes and premium themes to address some backpat concerns. Comments on the ticket are welcome.

Re backward compatibility from @boonebgorges: “I think we should try to differentiate between different kinds of (potential) backward compat breaks for templates. some are minor, while others are debilitating. some will simply be a case of a custom template not receiving new features, while others will break markup so that stuff like JS no longer works.” Weigh potential gains from the break “on a case-by-case basis . If we were never willing to break compatibility, we’d never fix any bugs:)

Accessibility: Update Heading Structure in Template Files (#6871)  @mercime asked for the consensus of the team.  @boonebgorges, “My position is that if we can demonstrate that the styling changes are minimal in the Twenty themes, it’s fair evidence that it’s a change with fairly low negative impact. This also assumes that the a11y benefits are meaningful, which I’m relying on your judgment for.” @djpaulgibbs noted, “BuddyBoss and a UK agency have both told me that the heading changes that have gone into 2.6 will require them to update all their sites/themes. I am not trying to be against improvements. But it’s a fine line.  I am just saying if we are committing to making such significant changes to the main markup, we need to communicate that NOW and way better than we ever have before. Because honestly we’ve always changed stuff and broken it. It has had little to no documentation, generally. As Boone said, we need to look at the impact of each change on its own basis.”

BP Template Versioning (#6642) @djpaulgibbs and @hnla discussed  @im4th‘s work in documenting template changes in the file header in ticket as well as versioning of the template files like Woo does.

Add BP top level menu and Admin Page to Improve User Experience (#6827) @mercime will upload new patch.

Creation of developer.buddypress.org (#6812) @tw2113 would like to get this going sometime soon, “Essentially we need to get a final destination set up, run a parser scan on the latest stable version, and then comb the website for inconsistencies and things needing changed also work on any sort of triggers/automation to update the source there and re-parse.”

BuddyPress Work Party

Route `/me/*/ to /members//*/` (#6325) @rayisme has uploaded new patch. Dev feedback needed.

Comment notification NOT notified (#6057) @im4th has uploaded new patch. Dev feedback needed.

Cover Image location is incorrect for blogs other than the primary blog (#6931) @im4th has uploaded new patch. Dev feedback needed.

Extending Messages notification should be improved (#6750) @rayisme committed patch to trunk.

Profile Cover not working when we define a custom BP_XPROFILE_SLUG (#6962) @rayisme committed patch to trunk.

fatal error: bp_blogs_record_existing_blogs (#6940) @rayisme has closed the ticket in favor of #6370 below.

Blogs: Improvements to bp_blogs_record_existing_blogs() (#6370) Has new patch by @rayisme. @johnjamesjacoby has given feedback in ticket.

Add aria attributes for dashicons in Components screen (#7017) @mercime has committed patch to trunk.

Dev Chat – April 20

Notifications for activity stream comments and replies (#6057) @im4th has patch plus screenshots uploaded and would like to get this new feature in for 2.6. @boonebgorges has posted feedback in ticket. Feedback in Slack was very positive with some suggestions on inline documentation. Looks like this will be fixed soon.

BP Users front.php (#6769) @im4th has uploaded screenshots and the first patch for this new feature. @hnla and @dcavins have mentioned testing and providing feedback soon.

bp_notifications_get_notifications_for_user() bug (#7020) @rayisme has patch.  Testing and feedback welcome.

Route `/me/*/ to /members//*/` (#6325) @boonebgorges has posted feedback for @rayisme‘s patch.

filter for $after_member_slug in bp-core-catchuri.php (#6694) Fix has been committed to trunk by @boonebgorges during dev chat.

BP Template Versioning (#6642) @dcavins: “Need to settle on the format/requirements for the template versioning, we could tag all of the templates, before we come up with our super jam for how to help site owners realize their templates are no longer up to the current high standards.” @boonebgorges “The minimum that needs to be decided for the process to start is what header format we’re going to use. Questions about how we inform users, how we assemble changelogs, etc – these can wait. On the other hand, Inline changelog + summary changelog with each version may be enough.”

Allow admin to select fields to display in user “excerpts” on Groups’ user list page (#4126) @boonebgorges mentioned the UX considerations in the ticket proposed by @oc2ps require admin-level tools (which we don’t currently have) for site owners to modify the way that BP content looks on the front end. Comments/thoughts about whether it’s the kind of thing we want to do are welcome.

@booneborges noted that “if we’re going to introduce something like this into BP, it would have to be an actual interface where you could customize things and it would extend to interfaces other than member directories, in the long run. I think the answer for this ticket is that it’s not a route we can comfortably go down given our current approach to templates.”

Date xprofile field enhancement (#5500) @boonebgorges mentioned that this ticket has a new patch which “has some promise, but will need extensive rewriting to fit with BP/WP standards (not just coding standards, but architecture). I will try to take some time in the next couple weeks to pore over it, but if anyone has time in the meantime, feel free.”

Screen notifications settings page (#6712) Has patches. @rayisme requested for dev feedback.

Additional notes for next week’s Template Pack Meeting

  •  @johnjamesjacoby: “I’d like to propose that in whatever new template pack is built, that no `do_action()` calls exist in template parts, and if we find ourselves wanting them, we architect a better solution inside of the API.”
  • Use “magic hooks” from @johnjamesjacoby, “anywhere we need `before/after` actions in templates, is a place where a new template part should exist, and `bp_get_template_part()` should fire its own `before/after` actions before & after every part is successfully pulled in.”
  • On the other hand, @boonebgorges noted, “Here’s another take on this. If you are a WordPress developer, you know that if you see a `do_action()`, you can make something appear there by calling `add_action()`. If we introduce micro-APIs for every little thing, it obfuscates what is currently a fairly simple process.” @im4th added, “without overriding the full template. That’s the good part of the `do_action` i agree.”

#dev-chat

In keeping with our WordPress…

In keeping with our WordPress compatibility policy, BuddyPress 2.6 will require WordPress 4.1. See https://buddypress.trac.wordpress.org/ticket/7013.

#7013

Dev Chat Summary for April 6, 2016

BuddyPress Work Party Recap

@dcavins reported that several tickets were fixed and closed during the party.

  • Fixed. Make sure inviter_id !== 0 before inviting a user to a group (#6941)
  • Fixed. Avoid using HTML tags in translation strings (bp-settings/bp-settings-template.php) (#6900)
  • Fixed. Request: Allow Gravatar’s “d” param to be filtered (#6989)

@djpaulgibbs and @boonebgorges also identified other tickets that are close or ready to be committed, if anyone wants to get in on the fun:

  • Profile Cover not working when we define a custom BP_XPROFILE_SLUG (#6962). Has patch.
  • Cover Image location is incorrect for blogs other than the primary blog (#6931). Has patch.
  • bp_core_print_generation_time() should echo only in WP_DEBUG mode (#6976). Has patch.

Trac Tickets

filter for $after_member_slug in bp-core-catchuri.php (#6694). Has patches from @dcavins, @boonebgorges, and @rayisme.

Group Types API (#6784). Has patch from @mamaduka. @boonebgorges would like to see the patch for the proposed Group Type UI before proceeding with the review.

Activity post form template improvements (#6680). Has patch. “The main template changes in the activity form ticket is markup changes for the placeholder and some new hooks. The rest are CSS/JS related,” @rayisme mentioned. @djpaulgibbs noted that the enhancement would break backward compatibility with themes. On another note, even if this new enhancement was used in a new bp-template-pack, this would (potentially–we’re not certain, yet–see “homework” below) break backpat with some BP plugins.

Discussion then ensued about what constitutes “breaking backpat issues” – HTML/style enhancements or JS/break functionality of BP plugins or both – which prevent or halts adding new enhancements to BuddyPress. @dcavins then said, “The activity stream/post box was mentioned in the BP survey results last year, and some of the alternatives were pretty impressive. I don’t want BP to fall far behind on key UI/UX bits.”

Homework (for whoever’s interested): Try the patch in #6680 [with BP plugins and themes -Ed.] so we can revisit next week with surety in our hearts about the way forward.

Route /me/*/ to /members//*/ (#6325). Has patch by @dcavins. @djpaulgibbs noted that a decision should be made on where the redirection should be done. @boonebgorges has since commented in ticket to handle redirect in a callback function via new action/filter hook.

Framework for bulk data handling after updates (#6841) @boonebgorges: “I’m most concerned about upgrade flow, and how it affects the technical infrastructure. From my experience, people are afraid to click upgrade DB buttons. You can blame WC for that :)” From @imath: “A lot of users are not backing up their DB before a plugin upgrade, i think we should inform them to do it and then let them click on a button to launch the routine.”

“Since it sounds like we want to require user action here, I think we should just start with an existing UI – doesn’t matter which one (bbPress, imath’s, whatever) and use it as a framework for talking about database locking, batch processing, etc. Migrations probably need to have a UI if only to report any errors. If we ever want to migrate activity favorites (or anything else) to generic relationships, that’s another use case. Anyway, I think we should start with an existing AJAX-based UI because they already exist, and we should solve some of the other problems first,” per @boonebgorges.

Behat for BuddyPress. @djpaulgibbs reported, “There is no documentation. This is annoying. That is all.” @boonebgorges linked to an article about Codeception, a possible alternative.

Style Modules @hnla requests more feedback on the proposal here at bpdevel to get a consensus.

Special BP Template Pack Meeting

What: Template pack by @im4th
When: Wednesday, August 13 @ 18:00 UTC
Where: #buddypress channel in Slack
Who: All interested parties are welcome to join @dcavins, @im4th, @hnla, and @mercime

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

#dev-chat

Dev Chat Summary for March 30, 2016

BuddyPress 2.5.2

@dcavins,  release lead for BP 2.6.0, packaged and released BuddyPress 2.5.2 on Thursday, March 31. This fixes some email issues reported in trac and forums.

BuddyPress 2.6.0 Schedule

  • Beta 1: May 25, 2016
  • Release Candidate 1 (string freeze): June 8, 2016
  • Target Release Date: June 15, 2016
  • There are 95 tickets slated for 2.6.0 to date. Forty-seven of 79 tickets still open have patches.

Weekly Meeting Time

Join us every Wednesday at 19:00 UTC at the #buddypress channel on Slack. @djpaulgibbs encouraged anyone who wants “to participate in these meetings but can’t always make it can leave comments in Slack beforehand” or in posts here at bpdevel.

For newcomers, here’s how to get a WordPress/Slack account.

BuddyPress Work Parties née Bug Fixin’

A friendly reminder from @dcavins re invitation to a party on Slack or Trac  to fix ’em bugs this coming Tuesday, April 5 and Thursday, April 14.:)

2.6.0 Scoping/Wishlist

BP REST-API. @dcavins followed up on the status of this project, i.e., whether we can work on this or should this hold until WP API gets sorted. @djpaulgibbs noted that “WP API ​is​ sorted. You/we can work on it now.”

BP Style Modules – A Proposal. @dcavins asked for more information about the proposal. @hnla: “Style modules is an additional enhancement for templates, more for engaging the community and providing a means to add small code blocks, similar in the way frameworks offer them sometimes.” @boonebgorges and @hnla later exchanged a series of enlightening comments about some of the details of @hnla‘s proposal.

A new API to manage single items navigation (#6534) @boonebgorges passes baton to @im4th to save this ticket from oblivion. @im4th brought up the issue of an upgrade routine to implement this feature which requires Framework for bulk data handling after updates (#6841).

Incrementor-based caching for ID queries (#6643) @boonebgorges is looking to implement this for at least one component during 2.6.

Accessibility tickets. @mercime will be working on the ones already in trac and will be adding some more later.

Explore Behat to add a functional testing capability to the project. @djpaulgibbs‘ dream is look into adding a functional testing capability to the project. “I don’t know if this is something that we’ll want, but I need to build it before I can convince everyone.”

New bp-template pack @djpaulgibbs is trying to come up with a plan to answer the never-ending questions around if/when BuddyPress will ever get a new one. “I’ve started with asking about eight of you some questions around that. It’s going to be a lot of work to come up with some kind of plan. I got essay-length replies from everyone and each reply is vastly different. Everyone has a very different opinion. I think some goal-setting needs to occur before we are able to write new templates with 100% buy-in from everyone, but it’s still early days and I reserve the right to change that opinion.”

Group Types API (#6784) @boonebgorges mentioned that it would be good to make headway on this ticket. Ping @mamaduka

2016 BuddyPress Survey (#6792) @mercime will conduct this year’s survey after the April 15 tax day.

Activity link moderation doesn’t output useful error message to end users (#6719) @rayisme has made some headway on better error messages in the activity stream. “Question is should we be holding off on this for an activity_status DB column.” @boonebgorges noted that  the “main issue would be documenting that select * from $bp->activity->table_name queries will have to be adjusted accordingly.”

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

#dev-chat

BuddyPress Work Parties

At the end of the 2.5 development cycle, a rare event occurred: many friends of BuddyPress happened to be working together (I mean at the same time and in the same Slack channel–we always work together in spirit:) ). It was super productive and entertaining, to boot. Let’s try to harness the magic again.

If you’d like to help out, please join us at these times:

  • Tuesday, April 5, 1400–1700
  • Thursday, April 14, 1900–2200

You can help out by adding new tickets, commenting on tickets, testing patches, writing patches, writing content for the Codex, answering questions on the BuddyPress support forum, or offering moral support. We’d love to have you.

#work-party

BP Style Modules – a proposal

User Submitted Style Modules

This post is a RFC to gauge feedback from the wider BP community for an idea I have been mulling over and sketching out in rough code locally.

Outline

Style Modules is a concept that seeks to provide or explore a means to add CSS and JavaScript snippets to existing themes in a modular sense for BP elements or components – think Members list ul/li constructs or user profile messaging table lists – allowing developers to work on specific aspects of BP’s components adding style enhancements or added JS functionality.

Why Modular? Modular is a method we can use to provide added enhancement in easy to manage smaller ‘chunks’; small enhancement files created by the BP development community where they can concentrate on improving a given area without feeling bowed down by an overwhelming challenge.
Modular because users can download and install just the enhancement they desire without effecting aspects of their BP install they’re happy with.

The Primary Benefit(s):

There is in this proposal one overriding aim, that prompted thinking this through to very basic implementation which is that the BP project is able to bring to the community a further means to engage in the project and to feel even more a part of that project as a contributor acknowledged as such by their module inclusion.

As we’re all aware engagement is paramount for a healthy project, the more people that feel engaged and involved the healthier any project is; this is one means to further that aim and to bring people in to contributing, and contributing at a level that could as equally suit mid range coders as more advanced coders, and where the established developers can mentor and advise where it helps.

A secondary benefit would be that BP gains far more by way of enhancement to it’s components and gains a growing library users can peruse and download modules they like the look of, which install in a very simple fashion by simply dropping into the correct sub folder.

The Approach

So far the approach to implementing this idea and which I’ve been working from is thus:

A module is defined in a ‘folder'(directory) that lives under the BP folders /community/style-modules//buddypress/style-modules/

The user needs to create the /style-modules folder (conversely we could possibly create programatically, but would rather avoid that)

The folder /style-modules/ is a critical one we scan for this folder and don’t continue if not found.

A module is defined as a folder e.g /bp-members-list-module/ this folder constitutes the ‘module’ as uploaded to the repo or downloaded to users site theme directory for use.

In the ‘module’ we have a series of files that validate the module, in the simplistic offering this folder will contain a stylesheet, in more advanced ones we might also have a supporting JS file or perhaps just a JS one (JS supporting styles was my original thinking). All modules will contain a readme.txt file (maybe in .md form), the stylesheet will use style headers in a similar manner to WP stylesheets. Both the style file and the JS file if included take the same name as the module directory name, using just the file ext to identify the type (file headers could expand this though & partly why they are mentioned)

By example in a practical module or example module to use as a skeleton we’ll set out some guidelines to follow for a module to be considered for inclusion.

An example initial module might be member lists as panels(boxes) – often desired; a module would provide this styling for members lists to work for twenty* themes.

Loading the Modules:

Loading up the modules will be relatively trivial and involve a directory scan and fopen to enqueue an array of files, for local purposes I’ve run a simple scandir and fopen looping out the files to build an array on files I find as long as the ‘modules’ parent is located otherwise I’ll bail. This process we already do do in BP’s templates functions.php so I propose we simply extend that to check for this folder given two criteria are met 1/ running a BP overloaded theme 2/ having the existence of a folder named ‘/modules/’

If BP provides the mechanism for loading automagically then it’s easy for users to use these files, and an incentive for dev to produce them.

Curating & Location:

My proposal would be that we maintained a ‘modules’ repo on BP’s github account in which modules would be kept available for download, along with instructions for use.

BP would be making it clear that while the modules were tested not to cause any major issues it didn’t guarantee that they would work for all themes/installs.

Curation would be amount to one or more devs stepping up to test a new module to work in a couple of main WP themes, not in detail but not to cause issues, then a scan of the files to ensure basic formatting standards were adhered to. All in all this shouldn’t be too much of a burden on existing BP team, as not expecting hundreds to be submitted, although would be only too happy if that were the case, this would also be something that could be a task for aspiring new contributors to tackle, similar to the way theme reviewing works.:)

Comments & Feedback:

Would love to hear some thoughts and comments from the wider community as to whether this idea has any merit, I certainly think it does; yes there are pros and cons and I have deliberately not included the cons at this stage as want to avoid the negative and focus on what might work and if thought viable then tackle the cons in the process.

One definite pro is that overall setting this up is not a huge amount of work!.

Looking forward to comments good or bad.

Hugo.

Dev Chat Summary for March 23, 2016

BuddyPress 2.5.2

Four tickets have been slated to date for this milestone. Possible release date: March 28, 2016.

Release Leads for BuddyPress 2.6.0 and 2.7.0

@djpaulgibbs, @boonebgorges, and @johnjamesjacoby have been talking about what they could “adopt from WordPress core’s development processes and see how they work out for BuddyPress.” Starting 2.6, we’re going to have release leads as described in this RL announcement in WP Core by Andrew Nacin.

@boonebgorges noted, “The RL gets a sense at the beginning of the dev cycle what he/she would like to accomplish, as well as what others want and are willing to contribute. Within those parameters, there is likely lots of room for the RL to make decisions about what the focus should be.”

David Cavins David Cavins will lead BuddyPress 2.6. @dcavins (twitter) has been a member of the BuddyPress Core Team since January 2015. David is a huge fan of the groups component and the collaborative possibilities it offers a community. He also builds acoustic guitars in his adopted hometown of Columbia, Missouri.

Mercime Next at bat for BuddyPress 2.7, @mercime has been a member of the BuddyPress Core Team since April 2014. Mercime (twitter) enjoys building sites with an eye on accessibility as well as contributing to open-source projects like BuddyPress, bbPress, and WordPress via trac, codex, forums, theme reviews, and surveys.

BuddyPress 2.6

@dcavins will be setting the release schedule this Wednesday during our dev chat. One of the things he’d love to see are optimizations, like extending “our use of caching to group memberships, for instance.” (#6327). He’d love to get everyone’s feedback on ways to make BP run more lightly, “so please be thinking about your favorite component.”

BuddyPress 2.7

@mercime will share the focus and scope at a later time. In the meantime, @bowe suggested, “a release cycle focused on the community aspects. Bring some lesser known but awesome BP stuff to the forefront and implement some long standing UI/UX improvements and rethinking of what BuddyPress should be in 2016 and onwards.”:)

It takes a strong volunteer community to improve the BuddyPress project for each release. Your contributions are most welcome and appreciated!

Open Floor

1. Theme Review

@djpaulgibbs reiterated @karmatosed‘s invitation to join the WP Theme Review Team and review BuddyPress-specific themes currently in queue.

Hey amazing BuddyPressers :wave: – I come bringing good news. We have 4 themes waiting for theme review for BuddyPress which is unusually high. Unfortunately I also bring bad news and we don’t have enough reviewers anymore to do this without it taking ages for the poor themers. I know you’re all super busy, but if any of you with theme experience want to give us a hand it would be brill!

For those interested, please read how to conduct a theme review. @bowe mentioned that he will be reviewing a theme this weekend.

2. BuddyPress.org Theme and Plugin Pages

@bowe is currently working on the outline of the proposed new theme/plugin pages to replace the ones @djpaulgibbs deleted the other week. Let someone know at the #buddypress slack channel when you’ve got something ready Bowe.

3. Audit of Components in BuddyPress Trac

@offereins inquired about other development process ideas which the Lead Developers found useful besides having release leads, like having component maintainers and whether BuddyPress would benefit from the concept. @boonebgorges and @johnjamesjacoby noted the pros and con. @djpaulgibbs opined that BP trac components would probably need some review to see that they’d fit into this kind of model (BP Components e.g. groups would be way too big). @boonebgorges stated, “That would be a good first task for someone interested in making it happen.”
Result: @offereins has accepted the task of auditing components listed in BP trac:)

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

#dev-chat