BP Dev Chat Summary, September 4

5.0.0’s schedule

  1. Second beta release: September 10.
  2. First release candidate: ~ September 16.
  3. 5.0.0 release: ~ September 30.

Issues & Feedbacks about the first beta release

Some i18n issues appeared into the BP REST API code and have since been fixed by @espellcaste. @im4th will improve the bp.apiRequest JavaScript function before beta2 (#8131).

IAmTheWebb reported that he hasn’t noticed any regression issues but also informed us he hasn’t found the time to test the new features yet. The lack of ticket report is a bit worrying as it makes us wonder if the beta1 has actually been tested by BuddyPress plugin or theme developers 🤔.

@boonebgorges explained it wasn’t easy to test the BP REST API as it required building clients. Having the BP REST API documentation site available would probably help.

The BP REST API documentation site

@johnjamesjacoby & @netweb have been working on the developer.wordpress.org needed set-up to host the BP REST API documentation site. Although we are very confident they will soon fix #4601-meta, we decided to wait until September 20 before applying our backup plan.

In case we can’t make it on developer.wordpress.org @im4th will buy a specific domain name for the staging site we used to write the documentation and we’ll make this site widely available.

BuddyPress plugin & theme developers will be able to consult The BP REST API documentation before the 5.0.0 release 💯.

Hello BuddyPress modal

BuddyPress 3.0.0 introduced this modal to replace the Welcome Screen. We use it to inform about the new features introduced in the new major releases of BuddyPress.

@im4th shared a patch on #8132 to make this modal more inline with the WordPress Administration styles. @johnjamesjacoby shared his thoughts about it on the ticket and agreed during dev-chat that matching core’s modal would be best.

@im4th is 🇫🇷 so there are probably some english mistakes in the text parts of the patch. BuddyPress contributors : don’t hesitate to find and fix them 🙏

5.0.0-beta2

We decided to package a second beta next week to remind our contributors we need their help to test our contributions. Let’s not wait for the stable release to find bugs we could have avoided during the beta period!

Next dev-chat

It will happen on September 18th at 19:00 UTC in #BuddyPress slack channel, just before the release candidate.

PS: @dcavins couldn’t attend to the dev-chat but recently shared in our Slack channel he will soon publish an overview about the changes introduced by the BP Invitations API 👌.

#5-0-0

BP Dev Chat Summary, August 21

5.0.0’s schedule

Here are three important dates about our next major version:

  1. First beta release: August 28.
  2. First release candidate: ~ September 16.
  3. 5.0.0 release: ~ September 30.

BP Invitations API

@dcavins has committed this new API to manage Invitations/Membership Requests across components. The first BP Component to enjoy it is naturally the Groups one. Many thanks and huge congratulations for the accomplished work 👏🤝. See #6210 for more details about it.

BP REST API

Code improvements

  • He also adapted the Group Invites and the Group Membership Requests endpoints so that they are now using the BP Invitations API.
  • The create_item() method of the Group Membership controller is now taking in charge the action to let members join a public group.
  • WP_REST_Server::DELETABLE methods are now all returning an object with two keys. The first one informs about the success of the DELETE request and the second one contains the previous BP object as it existed before its deletion.

Documentation

The content is almost ready! Documenting the Group Invites and the Group Membership Requests endpoints (the last ones) will be achieved before the beta release.

Making it available from BuddyPress.org is in very good hands @johnjamesjacoby will work on it asap to try to have it ready around beta release so that it should be easier for contributors to play with the BP REST API during our Beta/RC release steps.

How the BP REST API will be included into BuddyPress Core for this beta release?

To keep working from our BP REST GitHub repository to fix potential bugs / improvements, we will include it during our build process a bit like what happens today with BP CLI: see this comment on #7156 for more details.

This means:

  • the BP REST API plugin, if active, will take over BuddyPress, making it easier to carry on maintaining it from GitHub during the Beta/RC time.
  • If contributors are using trunk to beta test, they’ll need to npm install & grunt build to get the BP REST API into this build.

5.0.0 milestone’s remaining tickets

  • #8046 & 8093 have been moved to next release.
  • #8103 (BP Legacy Companion Stylesheet for Twenty Nineteen) is kept during the beta/RC to leave a last opportunity to include it before final release if it gets some contributions/testing.
  • #8123 will be committed asap & before beta release.

Beta Release tasks

  • @im4th will take in charge the beta release packaging
  • @dcavins will try to post on this blog to introduce the BP Invitations API
  • We still need to write the announcement post for BuddyPress.org. A draft for it is available on BuddyPress.org (the title is BuddyPress 5.0.0-beta1), don’t hesitate to add the information you think are important to mention. I’ll polish the writing part 🖼 📝

Next dev-chat

It will happen on September 4th at 19:00 UTC in #BuddyPress slack channel. Of course is something goes wrong with right after the beta release, we’ll always be able to meet next week.

#5-0-0

BP Dev Chat Summary: August 7, 2019

5.0.0’s schedule

At the end of our discussions, considering the work we still have to achieve to feel satisfied about ourselves, we’ve decided to postpone the first beta release to the last week of August. Our new targeted date for 5.0.0-beta 1 is August 28. Thanks for everyone’s comprehension 🙏

BP REST API focus

NB: we didn’t have enough time to decide about “how to include the BP REST API into BuddyPress Core“. We will do it during our next dev chat. In the meantime, you’re welcome to contribute to #7156.

Documentation

We’re making great progress on this topic. More than 50% of our endpoints are now documented. @im4th shared the link of the testing site we use waiting for #4601 to be fixed (@im4th and @espellcaste are 🤞).

Writing this documentation is also very helpful to improve the API code: 10 pull requests were generated and merged so far.

@im4th is 💯 confident all the endpoints introduced into version 5.0.0 of BuddyPress will be documented before its public release.

Code improvements

In addition to these PRs @dcavins has been working hard on adapting the Group Invites and the Group Request Membership endpoints to the new BP Invitations API. @espellcaste & @im4th ‘s reviews of his patches led to 2 important conversations during the dev chat.

What endpoint should handle the action “a user joins a group”?

While @boonebgorges intuitively expects a POST request to the Group Membership endpoint to succeed if the group is public, I was wondering if “joining a public group” could be interpreted as “requesting an already accepted membership request” and as such use the Group Request Membership endpoint instead. @dcavins informed the second option would generate a consistency issue as the response object wouldn’t fit with “joining a public group“. We decided to use the first option (See PR209).

How should we build the response object to the WP_REST_Server::DELETABLE methods?

So far we were returning the object as it existed before its deletion for all endpoints excepting for the Members endpoint. The Members controller is actually extending the WordPress Users one : so we decided to follow WordPress way of building the response object in this case. See PR210.

BP Invitations API

See #6210 for more details about the API. @im4th & @dcavins are confident about committing the changes into BuddyPress Core to make the API available to everyone for 5.0.0 🙌. A Back compatibility mechanism is in place and our testing did great. The soonest the patch will be converted, the best it will be to finish the needed adaptations of the BP REST API (See PR206). @dcavins will work asap 💪 on the committing task, making sure to split the patch into small & consistent chunks.

5.0.0 milestone’s tickets

As we were already playing overtimes for 30 minutes for this dev chat, we will decide about whether to move the remaining tickets to a next/future release or not during our next dev chat.

If you have CSS skills, you are very welcome to contribute on #8103. If you’re not familiar with working with Trac patches, we’ve put together this Twenty Nineteen child theme to make things easier for you.

Next dev-chat

It will happen on August 21th at 19:00 UTC in #BuddyPress slack channel. As @im4th said at the end of this dev-chat:

Let’s meet again in 2 weeks with everything ready for a beta release the week after 💪 🙌

#5-0-0

BP Dev Chat Summary: July 24, 2019

Feedbacks about 4.4.0 Security & Maintenance release

4.4.0 has been released on July 23rd and has been downloaded more than 30,000 times since then. No specific feedbacks were posted on our support forums about it. We’ll keep an eye on how it evolves in the coming days but it looks like it went smoothly.

BP REST API

Documentation site

@johnjamesjacoby is assigned to the Meta Trac ticket which goal is to prepare existing developer.buddypress.org to house the BP REST API documentation.

@espellcaste shared his worries about the time remaining until 5.0.0 release. I think it’s still doable and if we’re short, we will be able to use our « test drive » as a fallback. We’ll only have to buy a domain name more meaningful.

As discussed during the previous dev-chat, I’ve started writing the documentation into the « WordPress Handbook » format copy-pasting parts of the Restsplain generated documentation. Here’s a first page for the Components endpoint.

The interesting benefit about doing so is the fact it’s a good way to review the BP REST API. If members of the team want to participate to this effort, they just need to ping @im4th to get admin access to the site.

Code improvements

To illustrate the benefit described in the above paragraph, I’ve (I am @im4th 😁) shared this pull request (#196) about improving the consistency of the Component’s endpoint PUT method arguments description/documentation. @espellcaste will look into it and check the other endpoints about the subject.

@espellcaste also worked on adding hooks to the prepare_links() methods when needed and to items collection query parameters. He will also look into this issue to try to understand why a notice error is thrown when removing the avatar original file.

Finally, although @dcavins couldn’t attend our dev-chat, he’s been hardly working on adapting the BP REST API (197) to go along with the new Invitation API (#6210) he’s been building for BuddyPress. I will look into it more deeply asap. My very first feedback would be to rebase the pull request as there is one merge conflict (probably due to the hooks recently added by @espellcaste)

5.0.0 milestone’s tickets

At the end of the previous topic, @im4th informed he would probably open a new ticket to improve the bp.apiRequest : the dataType argument should default to json, doing so it will save some time to plugin developers using it in the future as REST replies are in JSON.

We did a quick review of the “new” tickets having patches, in particular @boonebgorges and @im4th talked about #8013 to decide about the name of the additional key to use for the exporter item names displayed to regular users. @im4th agreed with @boonebgorges it was best to bp prefix the name.

@espellcaste decided to move #7018 to next release to concentrate on the last BP REST API tasks.

About the list of patches I mentioned into the July 10th’s dev-chat summary. I’ve decided to commit the three crossed out ones (the first 3, if you prefer) below and leave some more time to the BP Legacy Twenty Nineteen companion stylesheet.

About this last ticket, it would be great to have some feedbacks about it as I’m unsure I made the right CSS decisions about it.

BuddyPress & the Gutenberg project

As requested by @espellcaste into this comment of the dev-chat agenda we kept some time to discuss about this topic or more precisely about the first ideas we have to benefit from the Gutenberg project (Phase 1 – editor & Phase 2 – widgets).

The first very important thing @im4th wanted to highlight is:

BuddyPress Blocks will be easier to create by us or plugin developers thanks to the BP REST API: I think it’s a very important point, because the Gutenberg project mainly use REST.

I’ve been thinking about this since the dev-chat and I think we really need to have this ticket fixed for 5.0.0 release : #8116 BP Blocks category.

Then we had difficulties to understand each others and I think that’s because the Block Editor is often called Gutenberg 😇.

Theme Compat API “vs” Block API

@boonebgorges shared very important points comparing the Block API to our Theme compatibility API.

Gutenberg does something similar to what our theme compat does. It provides a way to place dynamic content in the “content” area of a theme template.

Retrospectively, I would add that the Gutenberg team is working on a “JSON templating” feature, but I’m unsure it will be overridable : I think “overridability” is a great feature of our Theme Compat API.

What does the BuddyPress community want/need ?

@espellcaste think it’s important we get our community members expectations about this topic.

another thing I think would be important is to see what the community want… try to get the info somehow…. specially from bp theme authors…

A lot of things could be improved but that doesn’t mean it will have the most impact…

I think he’s 100% right, so instead of dropping the ideas we talked about during the dev-chat, I guess we need to organize them a little and let you give us your opinions about it. It would help us a lot to decide what will be our next steps into this area. So stay tuned! We’ll soon be back to you 🤗.

Next dev-chat

It will happen on August 7th at 19:00 UTC in #BuddyPress slack channel. We will have 1 week left before 5.0.0 first beta so let’s get our last tasks done during the next 2 weeks 💪.

#4-4-0, #5-0-0

BP Dev Chat summary (June 26)

Updates about the Tickets into the 5.0.0 milestone

#8045 is achieved: we now have our very first core feature using the BP REST API. If you chose to use BP Nouveau as your template pack (it is the default template pack for new installs), your group administrators will enjoy a brand new interface to manage the members of their group(s).

The interface is more dynamic than our legacy one and Administrators of popular groups will probably love the search feature! Finding the specific member they want to promote, demote, ban or remove is faster than ever!

#6210 @dcavins is working on a new version of the patch to adapt it to play nicer with BP Nouveau & see how things will evolve with the BP REST API. He worked very hard 💪 🏋🏻‍♂️ so far and I believe he’s very close to achieve his goal. I think it’s a very promising feature that will first improve how we handle group invitations and soon give new opportunities for other objects such as sites of a network. I also think it’s an interesting way to test & review the group invites & requests BP REST API endpoints.

There are 7 tickets with patches. Feel free to help us: testing patches and confirming they do the job is a already a great help. If you can improve them: it’s even greater! If you don’t know where to start, read this comment about how to test BuddyPress patches.

#7156 is the master ticket for the BP REST API. @im4th (me 😄) has suggested a patch to include the BP REST API into the BuddyPress’ build process. It’s a first reply to the question we haven’t replied yet since our previous dev-chat: « How to include the BP REST API into the BuddyPress plugin package? ». Feedbacks are very welcome.

BP REST API focus

REST fields (~= BuddyPress Components metadata)

We still have work on this “field” 😅 I’ve submitted a pull request that is implementing them for a bunch of endpoints. @espellcaste: please have a look at it soon and commit if you feel like me & @boonebgorges the approach is good.

The xProfile REST fields will need an extra work as the meta table is a bit different: we can attach a meta to a data, a field or a group of fields. I’ve posted an issue about it with a suggestion to handle this specific case. I’ll update it with a new pull request to adapt the one I was talking about into the previous paragraph.

The current endpoint about Threads/Private messages is more sensitive imho. REST fiels are messages metadata not threads ones. FYI, I’ve been also exploring how to use the BP REST API into the BP Nouveau Messages UI. I think I will carry on because it’s a nice way to eventually improve it.

REST links

I think we need to harmonise their use, for instance in BP REST Activity, BP REST Groups, BP REST Members, the links should all include a filter to let plugins add custom ones if needed. There should be links for the Private Message object to transport the “star” link, and probably the links of the users involved into the message…

Documentation site about the BP REST API

Last but not least! Feedbacks are very welcome about the post I’ve published to share my suggestions.

Next dev-chat

It will happen on July 10th at 19:00 UTC in #BuddyPress slack channel. In the meantime: have fun contributing to BuddyPress 👍

#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.)