BP Dev-Chat Summary (June 12)

BP REST API

A huge work has been accomplished by @espellcaste 💪 so far from the feature as a plugin “BP REST” and we think the 5.0.0 release will be a good time to bring the REST API within BuddyPress core. As explained in #7156 it will introduce 14 BuddyPress endpoints and you’ll soon be able to play with activity updates, groups, members, private messages and extended profile fields using REST requests 🙌

8 other endpoints (eg: blogs, friends) will arrive in 6.0.0.

BP REST Documentation

As @boonebgorges said during the chat, this part is very important for us to help you build great BuddyPress plugins thanks to this new API. We’ve been looking for a nice tool to generate this documentation out of the endpoints schemas and we think we’ve found a good solution to start. We now have to put up a website to host this documentation. I’ll take care of sketching out the next steps of this site and @boonebgorges will be able to help for the domain name.

Let’s start using the API within BuddyPress core!

The best way to help you discover the BP REST API potential is to use it ourselves 😉. We plan to do so by improving how Group members are managed within the Group Manage screen (front-end) and the Group Admin screen (back-end). Below is a video demo to let you discover a bit early how it should look like on the front-end of your community site.

You can follow our progress from the #8045 ticket.

How to include the BP REST API into the BuddyPress plugin package?

We’ve been discussing about it for about 30 mins during the chat and we haven’t decided yet how this will happen. We have 2 options:

  • Carry on maintaining it from GitHub.com and include it during the BuddyPress plugin’s build process (that’s what we’re doing for BP Default & BP CLI)
  • Merge it into BuddyPress Core.

There are “pros” and “cons” for both options. For example, maintaining it from GitHub can be confusing for contributors because it adds a second place to report for this part of BuddyPress as @boonebgorges noted. It’s also problematic regarding the history of how the decisions were made: it would be “tied up in two places“. @espellcaste also expressed his preference, despite the fact working in GitHub is more convenient, about keeping things “in house” (we have less control about the future of GitHub). Finally @boonebgorges also explained we could keep it on GitHub for a couple of releases before bringing it home as “once we go Trac, we cannot go Back“.

Another relative point on this subjet: how plugins should behave if they are both activated?

  • Should the plugin BP REST take over BuddyPress ? Meaning all endpoints can be maintained from the GitHub repository.
  • Should it be BuddyPress? Meaning the BP REST plugin would only be used to develop the 8 remaining endpoints.

We agreed we still have time until the first beta release to decide, but if you have ideas or recommandations : please share them in comments 😊

About the 5.0.0 release schedule

We agreed on a first date : 5.0.0-beta1 will be released around August 15.

As discussed during the chat, it will give us the time to work on the documentation site and decide about the « BP REST API including » strategy.

It should also give us the time to clear the tickets list of the milestone, there are around 10 tickets left and you are very welcome to give us a hand testing or suggesting patches.

Until Beta1 we will have a dev chat every other Wednesday at 19:00 UTC in #BuddyPress. Here is the planning of our next meetings:

If you are going to Berlin to attend to the WCEU 2019: have fun, make good connections and learn great things! @johnjamesjacoby will be there, don’t hesitate to enjoy his conference 👌 and chat with him about BuddyPress 😍

You can also decide to give a hand to BuddyPress during this WordCamp thanks to the contributing area! We’ll be very happy to help from where we are 😁

#5-0

BP REST API chat summary – Jan 28, 2019

See previously: https://bpdevel.wordpress.com/2019/01/23/bp-rest-api-chat-monday-jan-28/

In attendance: boonebgorges, espellcaste, imath, rekmla, tw2113, chetansatasiya Slack archive: https://wordpress.slack.com/archives/C02RQBYUG/p1548687725147600

We chatted briefly about the current state of the API code https://github.com/buddypress/bp-rest. CRUD coverage for BP content types is about 90% complete, with a few pending PRs. Renato and Boone are working toward 100% in the next week or two.

There was general agreement that the BP 5.0 release should focus on the REST API, with a tentative date of Q1 2019 suggested. A few discussion points:

Documentation

Questions about API usage have already come in at a fairly fast pace on the GitHub issue tracker. As such, we aim toward having documentation covering basic usage by the time we ship. For reference, the WP REST API documentation on developer.wordpress.org contains both hand-built documentation and automatically generated docs. See https://developer.wordpress.org/rest-api/ and https://developer.wordpress.org/rest-api/reference/. We’re hopeful that we can leverage some of wordpress.org’s tools for automated generation of documentation, or perhaps a third-party tool like https://github.com/humanmade/Restsplain In the upcoming weeks, we’ll try to collect team wisdom on the current state of buddypress.org and the options available to us.

If it’s not possible to make major mods to our wordpress.org documentation in order to support these automatically-generated docs, we might roll our own outside of wordpress.org, much in the manner of https://wp-api.org prior to the core REST API merge.

Authentication

Authentication is likely to be a point where documentation is especially important, particularly because the majority of BP site users are authenticated. There have also been some questions on the GitHub repo about the consistency of making authenticated requests, the use of nonces, etc. For reference, here’s the core page on API authentication: https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

BP core API usage

There was general agreement that it’d be wise for BuddyPress itself to use the API in at least a handful of ways for the 5.0 release. In addition to enabling new, AJAX-powered interfaces, the process of building on top of the REST API for BP itself will help the team gain familiarity with the nature of the API, and improve its usability before the public launch.

In some cases, existing AJAX can be converted to use the API. See eg https://buddypress.trac.wordpress.org/ticket/8043#ticket. In other cases, we may consider adding new interface features using the API. See eg https://buddypress.trac.wordpress.org/ticket/8045#ticket. While it’s generally safest to modify existing functionality in the Dashboard – where our interfaces aren’t easily customizable by themes etc – it may be possible to swap out some front-end stuff (say, in Nouveau) without too much breakage. My initial thought was directory AJAX, but then I remembered that some of those existing endpoints return markup rather than JSON-formatted entities. Any ideas are welcome.

Ongoing meetings

In support of the 5.0 push, we’d like to reestablish regular project meetings. The current proposal is to use the old meeting time of Wednesdays at 19:00 UTC, every other week beginning February 13.

#5-0

Dev Chat Summaries for June 7 & 14, 2017

New Schedule for BP 2.9

  • Beta 1: June 21, 2017
  • Release Candidate 1 (string freeze): July 12, 2017
  • Release Date: July 26, 2017
  • Currently 66 tickets in queue (30 open. 36 closed)

BP 2.8.3

  • Currently 4 tickets in queue (all fixed)
  • Release Date: To be announced.
  • Plus one more ticket coming up from @johnjamesjacoby

bp-nouveau

Updates from @hnla on the work done during June 1-14:

  • Various adjustments for styles.
  • Tackling the button args defaulting some to button from the default anchors.
  • Button JS functions were re-factored to check button element type and fetch the wp_nonce according to data attr or href so we can allow switching in templates of elements without losing Ajax functionality.
  • NPM modules were all updated thanks @netweb.
  • @mercime added a round of further A11y updates for aria-labels on navigational elements, added updated color vars to pass 4.5:1 color contrast checks, and we added ARIA state changes to button elements along with attendant JS & Ajax adjustments to toggle them.
  • Updated table styles a tad to improve line separation for notification & adjusted cell widths and vertical centering for checkboxes.
  • Updated act update excerpts ‘view’ link to improve visually, updated excerpts so they match across components.
  • Minor button $args updates to data attr string nonce name for uniformity.
  • Updated group homepage admin info message for styling.
  • Updated navigation wrappers to use nav element for better semantics thanks @mercime
  • Completed hopefully adding aria state attr to action buttons toggling elements.
  • Also thanks to @dcavins for taking the Star action Ajax issue on

@hnla: “We need to think about #7157 UI to pick Template Packs and how we can tackle that.

“We are pushing onwards and upwards but we do still need the community to start to wade in running any checks in general, or picking up tickets where they can. I’ll be trying to move tickets around a bit in the projects card screens.

“There’s an interesting ticket re: new custom homepage for Groups/User. There’s discussion on how these pages could have custom content manipulated/added. Perhaps someone might like to look at that and see what they can come up with? It would be pretty much an open book to play with https://github.com/buddypress/next-template-packs/issues/19

“Under ‘General Tasks’ we have a number of tickets of a ‘bug’ or ‘enhancement’ label, some are relatively straightforward & we could do with any help to grab a few of those and tackle.
https://github.com/buddypress/next-template-packs/projects/1

“I would like one of the lead devs to step up at some point and offer some thoughts on how we approach two fundamental requirements, those being implementation of the dashboard selection of template packs and the second being looking at the principle loader file in the plugin root next-templates-packs.php with a view to how this is re-factored to serve as a means of doing the necessary template registration, especially if additional template packs are provided either as plugin or in core.”

Trac Tickets

Fix for profile image upload on Microsoft Edge breaks iOS Safari and Chrome (#7416) @r-a-y has committed fix in trunk.

Use bp_get_admin_url() in XProfile instead of hard-coded links (#7536) @JohnPBloch has submitted patch. @johnjamesjacoby will be testing this in the multitude of environment setups that we support.

Plugin short descriptions are limited to 150 characters (#7452) @johnjamesjacoby will handle this.

Use JOIN rather than Subquery on user search (#7452) @r-a-y requests feedback from lead dev.

Only load component action and screen code when we’re on the component’s page (#7218) @r-a-y has patch. @boonebgorges has posted feedback and @r-a-y has responded in ticket.

When searching on the activity page, you cannot search using an author’s name (#3889) Ticket has been punted to future release.

Trailing slash needed for URLs for compatibility with LiteSpeed (#7448) @r-a-y has patc. @johnjamesjacoby has posted feedback and @r-a-y has responded in ticket.

`bp_member_profile_data( ‘field=Non existing fields’ )` (#7516) @r-a-y has committed fix to trunk.

Messages are not deleted from DB, when user is deleted (#7523) @r-a-y has patch. @johnjamesjacoby has posted feedback.

Slack logs:
June 7: https://wordpress.slack.com/archives/C02RQBYUG/p1496862133456977
June 14: https://wordpress.slack.com/archives/C02RQBYUG/p1497466925349980

Dev Chat Summaries for May 24 & 31, 2017

bp-nouveau

@hnla gave an update of the work done for the past two weeks:

  • Improved Group invites screen
  • Updated the search styling/markup to match to directory search input
  • Improved general styles and icons
  • Updated the action button for groups and activity arg functions to better check and switch the url nonces from href to data attr depending on element selection.
  • Tweaked JS to ensure we target correctly the newer elements so screen messages display within grid loop boxes
  • Added Ajax support for state changes
  • Changed a range of action links to button elements
  • Added missing labels for form controls
  • Merged pull requests from new contributors, @jon007 & @s-ferdie, for cover-image-header correction and adding parameters to allow Sass variables to be overridden.

Trac Tickets

Remove `remove_node` ‘edit’ in `bp-core-adminbar.php` (#6831) @tw2113 has committed patch to trunk.

Remove/Replace `title` attributes with Tooltips usable in all devices (#7188) Screenshots on Mac OS for latest patches posted by @dcavins. Feedback from @hnla. @r-a-y recommended using `data-bp-tooltip` instead of `data-title`. @mercime will refresh patch and commit.

Only load component action and screen code when we’re on the component’s page (#7218) @r-a-y has patch. @boonebgorges has posted feedback.

Don’t show the sorting box and the meta information (#7312) Related: #6754.

When user is not logged in, in he/she clicks email link to view new messages gets 404 page when should get login page (#7349) @r-a-y has committed a couple of patches fixing redirection issue and adding notices. Has new patch for `visibility` and `redirection` updates.

Fix for profile image upload on Microsoft Edge breaks iOS Safari and Chrome (#7416) @r-a-y has patch. Needs iOS user to test. Update: @mrjarbenne has tested patch and the issue still exists on Mobile Safari on iOS.

Resize member avatar error with cyrillic (not latin) filename (#7484) @r-a-y has patch. @boonebgorges: “I’d have to spend more time with it to understand in greater depth, but at a glance it looks like a clever fix.”

`bp_group_has_members` performs unnecessary query (#7513) @dcavins has patch. Dev feedback requested.

Messages are not deleted from DB, when user is deleted (#7523) @r-a-y has refreshed patch based on discussion during dev chat.

Counter for “All” tab for activity and groups table (#7526) @bhargavbhandari90 has patch. @r-a-y will review the patch.

Fetching of ALL users from `bp_friends_prime_mentions_results()` for non logged in users (#7530) @r-a-y has committed patch to trunk.

Slack logs:
May 24: https://wordpress.slack.com/archives/C02RQBYUG/p1495652618137375
May 31: https://wordpress.slack.com/archives/C02RQBYUG/p1496257388695772
(A WordPress Slack account is required to view the logs.)

Dev Chat Summaries for April 5 & 12, 2017

bp-nouveau template pack

@hnla reported on the bug and a11y fixes made on bp-nouveau to date. He has added a temporary Gruntfile.js, primarily for compiling and linting Sass files, as well as other project-specific configuration files. @mercime will be posting solutions in codepen for removing placeholders from form controls.

Many thanks to @boonebgorges for delving deeply into bp-nouveau and his post introducing the new template pack.

BP REST API

@rayisme has started work on the /members endpoint for the BP REST API locally. He raised a question at the Github repo re Members – GET – List Users Schema. @modemlooper has responded in ticket.

@rayisme noted, “We’ll definitely have the /members endpoint ready by the time BP 2.9 is done, but probably will not be merged into core. The BP REST API will stay as a plugin for at least the next few release cycles until things have been fleshed out, similar to how the WP REST API was a plugin for awhile.”

Trac Tickets

Allow bp_get_group_permalink() to produce HTML links (#7485) @dcavins has committed fix to trunk.

Update bp_group_description_excerpt() to accept a $length param (#7493) @hnla has patch. @dcavins has responded to keep the group as the first parameter.

Required xprofile fields are not validated (#7483) @hnla has confirmed issue reported in ticket. Needs patch.

groups_send_invites() should allow us to omit sending to users that have already received an invite (#7397) @rayisme will be refreshing the patch for BP 2.9.

Include BP Edit Group Slug into the core (#6014) @dcavins refreshed the patch including unit tests. New patch adds support for changing group slug via wp-admin. Dev feedback requested.

Take advantage of BP_Groups_Group magic methods in groups component setup (#7494) @dcavins has patch. Dev feedback requested.

Use JOIN rather than Subquery on user search (#7442) @brandonliles has patch. Dev feedback requested.

Harmful bp_activity indexes (#7500) @johnjamesjacoby in discussion with @brandonliles.

Deprecate the BuddyPress functions for bbPress 1.x forums (#6851) @johnjamesjacoby introduced a motion to “remove bp-forums pretty much completely, or relegate it to its own compatibility plugin like we did Wire and Status.”
@boonebgorges concurred with the compat plugin route and noted, “I’d like to stage it over maybe two releases, with large warnings in the interim release if you are running legacy forums. Maybe even block upgrade to the removing-version if we detect you are running it (like we did with the 5.3 requirement). How many of them will upgrade to BP 3.0 or 3.1, that’s another question. But it’s easy enough for us to create barriers to white screens, so we should do so.” @johnjamesjacoby: “Making this release ideal for the warning. I think the 3.0.0 release is a nice round number to cut the old legacy forum cord, too.” @boonebgorges: “So admin notices + upgrade-blocks for 2.9, and maybe some logic in 3.0 that prevents loading the full plugin if the compat plugin is not found. Someone will need to wrangle all of the necessary steps, including preparing and releasing the compat plugin.”
@johnjamesjacoby has volunteered for the tasks, “the pleasure of the pain will all be mine.”

Create administration sections for every component that’s currently lacking an interface

@johnjamesjacoby: Friends, Messages, and Notifications basically. “Preferably, I’d like to also stagger the work on those, so the expectation isn’t to have a 100% fully covered and integrated interface that covers all users and use-cases. Similar to Groups Admin (how you can’t create a new group from within wp-admin). I really also want a live-chat style Messages UI while you’re in wp-admin”
@boonebgorges: “Big +1 to more admin coverage, though we should think carefully about whether each of these BP components needs its own top-level item. (Friends may be properly a property of Users, rather than its own thing, or whatever).”
@johnjamesjacoby: “Right now, all of BuddyPress makes theme-side websites better, and that’s awesome, and it should, and always will. But once you enter wp-admin, BuddyPress doesn’t actually help WordPress itself be a better piece of software for managing users, community content, etc. We don’t need to talk about all of the detail-work right now, but I wanted to drop that vision in here now, so everyone has an idea of what I’m thinking, and we can maybe try to hit that vision hard in 3.0 and beyond. Hopefully 2.9 and Nouveau and everything else will keep the traditional BuddyPress installation type satisfied for a few years, enough time to work on REST API, wp-admin integration, maybe some GraphQL if we like that, etc.”

BP Theme Compatibility

A basic visualization of the BuddyPress Theme Compat is now available for bp-templates/bp-legacy. Use Ctl/Cmd +/- to zoom in/out, scroll up/down or click + drag right/left to navigate. Visualizations for bbPress Theme Compat and the upcoming bp-nouveau template pack are also in the works.

Slack logs:
https://wordpress.slack.com/archives/C02RQBYUG/p1491418861341587
https://wordpress.slack.com/archives/C02RQBYUG/p1492023677928317
(Slack account is required)

#dev-chat

BP 2.9 Kick-Off Meeting – March 22, 2017

BP 2.9 Scoping/Wishlist

bp-nouveau Template Pack

@hnla, 2.9 Release Lead, will focus on getting bp-nouveau ready for integration into core this dev cycle. He noted, “bp-nouveau represents a clean break from those older templates, clean markup, new styles new file structure with include files and function files managing components and affords us the opportunity to build a better BP than ever before.”

@hnla encouraged all core devs to have a local install running the plugin version and to reconvene at next meeting for a renewed focus & to air any concerns. He has added the following guides to the project for all who want to contribute:

  • Milestones: https://github.com/buddypress/next-template-packs/milestones
  • Project cards: https://github.com/buddypress/next-template-packs/projects

The major steps to get this project for inclusion are pretty much covered by the milestones but broadly fall into:
1. Core integration: adding the switching mechanism to core admin settings, working out the logic for default selection & some means of registering packs in use.
2. Testing the process for stylesheet building and testing the core files merged to trunk along with possible gruntfile adjustments required.
3. Testing of components by device( mobile/ desktop & browser versions) and testing.
4. Testing Accessibility.

@boonebgorges: “I share Hugo’s belief that the time has come to move beyond bp-legacy, and I think that a new set of templates is critical for the future of the project. I’m going to be working with Hugo over the next few weeks to develop some materials that’ll introduce the rest of the team to the workings of bp-nouveau, as well as more details on a plan for moving toward merge, with the idea of soliciting as much energy and contribution from the broader team as possible.” He will help to get bp-nouveau in for 2.9.

@mercime noted that per her initial a11y audit of bp-nouveau (last year), there were items which needed to be fixed in core first. Edit – Most items have been fixed, there are only a few remaining a11y issues which will affect template pack left in core.

@modemlooper likes the Template Pack UI in admin which he thinks will open up lots of customization … spawning child themes of bp-nouveau.

@dcavins volunteered to help with bp-nouveau. @hnla mentioned his concerns with group creation wanted it more a one step process that we could then paginate if we wanted to but accessing certain meta is hard such as group ID at some points where you need it. @dcavins: “I also have some feelings about group creation. (Like change it to one step then redirect to the new group to setup.)”

@boonebgorges will be working on a summary document about bp-nouveau’s status plus user-facing and developer-oriented features over the next week or so.

BP REST API

@rayisme would like to see where we’re currently at and what we can accomplish in this dev cycle. @boonebgorges responded, “it needs someone to take the lead – there was some initial work done on the Members endpoint but it needs to be seen through.”

BuddyPress.org Redesign

@hnla brought up the redesign site/mockups by @modemlooper and @karmatosed and wanted to know the best way to get the redesign implemented.

@rayisme: “There are elements I like about both. modemlooper’s orange header + iconfont section and karmatosed’s “Are you a user / developer” section. At first, I didn’t like the orange header, but I like that it’s a little in-your-face.”

@modemlooper‘s design was à la https://jetpack.com/ and said, “the design reboot started because I thought the homepage lacked alot of marketing points.” @karmatosed thought that doing original design is good. She’s happy to noodle some more.

@johnjamesjacoby: “Naturally, I have opinions, but mostly I really want all of y’all to feel like these themes are yours to create/enjoy also. It seems like everyone is still in the “I wonder what this or that might look or feel like” which is totally fine. No rush, no agenda, and if something naturally suddenly clicks into the place, we should head that direction.”

Dev Chat Schedule

This is a friendly reminder that starting Wednesday, March 29, dev chat at the #buddypress channel on Slack.com will be at 19:00 UTC through the end of Daylight Savings Time for both U.S. and Europe.

Slack log: https://wordpress.slack.com/archives/C02RQBYUG/p1490212929620791
(Slack account is required)

#bp-nouveau, #dev-chat

General Summary as of February 6, 2017

Apologies for not posting updates here lately. This is a compilation of all the dev chats for January 4, 11, 18, 25, and February 1 plus relevant activities.

BuddyPress 2.8

BP 2.8 Trac

BP Email: Allow end user to specify which PHPMailer should be used (#7286). @djpaul has committed patch to trunk.

Alphabetical sorting in the group widget (#7313). @dcavins has committed patch to trunk.

Make group search more flexible (#7418). @dcavins has committed patch to trunk.

Use BP_Groups_Group::get() where possible (#7419). @dcavins has committed patch to trunk.

get_group_extras function doesn’t “respects” the user_id variable from groups_get_groups() function (#6431). Ticket punted to Future Release.

BP 2.8 – Prevent loading if PHP < 5.3 (#7277). @boonebgorges has commited patch to trunk.

Add View link for users on BP Signups page (#7261). @slaFFik has committed patch to trunk.

Group Types Default Pagination Broken (#7423). @r-a-y has committed patch to trunk.

When user is not logged , in he/she clicks email link to view new messages gets 404 page when should get login page (#7349). Ticket punted to BP 2.9.

XProfile: use filterable field input name in radio/checkbox field type (#7425). @offereins has committed patch to trunk.

Group and member template functions should check current group/member as well (#3842). Ticket punted to Future Release.

Notice: Trying to get property of non-object (#7329). @r-a-y has committed patch to trunk.

Welcome Screen for 2.8.0 (#7426). Under construction.

Hook for custom email type schema (#7431). @DJPaul has committed patch to trunk.

Update and fix all the NPM things (#7429). Ticket punted to BP 2.9.

XProfile: a group’s first field becomes last after save (#7428). @offereins has committed patch to trunk.

BuddyCamp Miami, March 24, 2017

WordCamp Miami hosts BuddyCamp for the 6th time and this year, expect a REST API workshop along with interesting BuddyPress topics in this single full-day event.

As of Feb. 6, topics for the “BuddyCamp + REST API” track on Friday, March 24th, include:

  • “BuddyPress 101: What You Need To Know” by David Laietta
  • “Taming BuddyPress” by Tanner Moushey
  • “A BuddyPress Case Study” by Tara Claeys
  • “How To Build A WordPress/BuddyPress Mobile App” by Brian Messenlehner
  • “The State of BuddyPress” by John James Jacoby
  • “Working With The WordPress REST API” by Joseph Van
  • …more speakers and surprises to come!

WordCamp Miami 2017 will be held over the course of three days, March 24-26, at Florida International University.

Initial list of speakers for the BuddyCamp + REST API Track on March 24. Top row, L – R: David Laietta, John James Jacoby, Tanner Moushey. Bottom row, L – R: Joseph Van, Brian Messenlehner, Tara Claeys. (Image from WordCamp Miami 2017 site)

#dev-chat