BP Dev-Chat summary : September 7, 2022

BP Attachments / Activity block editor update

  • @im4th has started working on templating to display single media on the front-end.
  • He also made it possible to share media using the Activity Block Editor when the BP Attachements plugin is active. This means block developers could soon enjoy a new playground to express themselves.
  • The BP Attachments Admin UI now includes an “Edit Item” view. See the screenshot below.

11.0.0 updates

  • @im4th shared he was hesitant about #8052. Now the blog post title is directly included into the corresponding activity type’s content, we don’t need to use a blog meta to retrieve it inside the activity action string anymore.
  • @dcavins suggested to request a feedback from @rayisme who worked on this part and should be the best of us to know whether it’s safe or not to make this move in 11.0.0.

11.0.0 schedule reminder

  • First beta: October 19, 2022.
  • Release: December 14, 2022.

Open floor

@im4th started discussing about the drop on the active installations stat we observed on the BuddyPress WP.org plugin’s page as it went down from 200k to 100k 😱. Thanks to @johnjamesjacoby we were able to get more precise numbers about this decrease and it turns out we’re around 190/195k active installs. But the trend since year 2017 is concerning as it’s 📉 not to mention the fact there are less and less contributors to the project 😭. We’ve discussed about the possible reasons for these bad results:

  • lack of cool front-end things added to the plugin recently,
  • hesitancy to install a big plugin like BuddyPress for a single feature,
  • lack of privacy tools, of a media component,
  • growth of the use of things like Teams and Slack,
  • BuddyBoss’s commercial aggressivity (eg: Google Adwords) or their slick-looking theme attractivity,
  • etc..

As the BP Attachments add-on should be available around the 11.0.0 release date, the first action we took was to open a ticket about including a basic private community feature into our next major release.

After some more discussions with @espellcaste we came to the conclusion we need more data from users. A new survey was suggested as well as asking the WordPress Marketing Team for help. We finally thought about posting into our support forum this simple question “what is the most important feature that BuddyPress is missing?“. We decided to test this last idea as soon as we have a text to explain why we are questionning ourselves about it. If you believe you have answers to share with us, don’t hesitate to comment this post 🙏.

Next Dev-Chat

It will happen on September 21 at 19:30 UTC in #BuddyPress. If you have specific points you want to discuss about, don’t hesitate to share them in comments.

#11-0-0, #dev-chat, #summary

BP Dev-Chat Summary : August 17, 2022

11.0.0 updates

  • #7228: using PHP Code Standards linter, @espellcaste plans to commit the code he worked on from this PR soon.
  • He also requested feedbacks about this BP REST API issue, @im4th brought his!
  • @im4th reminded the team about latest improvements about our PHPUnit tests suite.
  • #8722: @im4th started working on the Activity templates and JavaScript for the BP reNouveau template pack. He’ll need to find a « no-jQuery » way to deal with live date and time updates as well as activity heartbeat refresh. He also decided this new template pack will have a dependency to the BP Attachments plugin to deal with profile and cover image features.
  • The BP Attachments plugin now includes blocks for the Post Block Editor as well as the coming Activity Block Editor.
  • #8693: site membership issue on Multisite configs. @dcavins is confident it will be pretty straightforward to fix.
  • @dcavins will deal with #8713 to bring type meta to types registered using code.

11.0.0 schedule reminder

  • First beta: October 19, 2022.
  • Release: December 14, 2022.

Next Dev-Chat

It will happen on September 7 at 19:30 UTC in #BuddyPress. If you have specific points you want to discuss about, don’t hesitate to share them in comments.

#11-0-0, #dev-chat, #summary

PHP tests suite improvements

Following WordPress’s effort about improving PHPUnit compatibility, we’ve just improved our PHP tests suite so that it now uses latest PHPUnit version (9.5.21). We’ve also updated our GitHub action so that it now includes PHP 8.1 tests to our PHP testing matrix. This action will now also run each time a Pull Request is submitted to our GitHub repository.

Next time you’ll check out our development version, don’t forget to run the composer install command and if you want to use latest PHPUnit version without installing it globally, you can run composer run test to launch BuddyPress PHPUnit tests.

For more information about it, please read this ticket #8649. Many thanks to @espellcaste & @rafiahmedd for their contributions to this great improvements 😍.

#11-0-0, #phpunit

WordPress required version update

Hi !

Please note that BuddyPress 11.0.0 will require WordPress >= 5.7.

To learn more about this change: https://buddypress.trac.wordpress.org/ticket/8709

To learn more about how we decide to bump our WordPress required version: https://codex.buddypress.org/getting-started/wordpress-version-compatibility/

#11-0-0, #wp-requirements

BP Dev-Chat Summary : June 22, 2022

BuddyPress roadmap for the next major releases

Remove progressively our dependency to jQuery.

  • @im4th suggested to modernize BuddyPress JavaScript starting with dropping progressively our dependency to jQuery. @dcavins agreed it was a good time to do so.
  • Some parts won’t be easy, eg: the Profile Admin UI, mentions… But we will work on renewing BP Nouveau template pack’s JavaScript at least.
  • @im4th will soon audit the BP Nouveau Template pack and write a Trac ticket about this audit’s results.

Block based activity post form

  • The work we’ve been doing into the BP Blocks plugin is now broke with latest WordPress version. It’s pretty difficult for us to follow the Block editor evolutions/breaking changes from WP versions to WP versions.
  • Let’s try to use the great work done on the Isolated block editor by Automattic to use it for the activity post form.
  • @im4th has started playing with it and he believes we’ll be able to include our own BP Block API inside of it to add blocks to share media (BP Attachments), mini surveys, etc…

BP Attachements

  • @im4th has made some interesting progress about it (handling the delete action) and he updated the issue where he started to explain how it’s / will be working.
  • Next big step is handling the edit actions which can be pretty challenging (eg: moving a file into another directory, dealing with file revisions)
  • Private media will be supported in v1 of the plugin for users being able to perform a little server configuration task.

BuddyPress.org

Our current theme is great, but it begins to have more and more little issues and let’s be honest it’s getting old! Building a theme can take a lot of time so @im4th suggested again to do 2 tasks at once:

  • Include a new BuddyPress theme into the BuddyPress plugin (a replacement to BP Default?)
  • Use this theme on BuddyPress.org

@dcavins brought a very important point about it: we’ll need to attract some new contributors for that especially if the world if drifting toward full site editing themes. @im4th has started exploring block templates and full site editing themes and would really like this theme to support the feature.

We’ll post on BuddyPress.org about it to try to motivate some contributors to give us a hand (even if the last time we did it for documentation it failed…).

BP Rewrites and bbPress incompatibility

This part has been fixed, a specific compatibility script has been added to the BP Rewrites in its latest release.

11.0.0 initial schedule & priorities for this release

Initial schedule

  • First beta: October 19, 2022.
  • Release: December 14, 2022.

Priorities

As @dcavins noticed, the roadmap we discussed about can takes time to achieve, so we ranked our tasks to know where to focus, and to avoid having 75% finished features around October 19.

  1. BP Attachments feature as a plugin ready for 11.0.0
  2. JavaScript improvements to BP Nouveau (dropping jQuery dependency progressively)
  3. Tickets into the 11.0.0 milestone (only load template pack assets in BuddyPress areas, Members invitations in multisite..).
  4. Block based activity post form plugin as a feature
  5. a new FSE BP Theme we can include in the plugin and use on BuddyPress.org.

Achieving 1, 2 & 3 is our goal for 11.0.0, but if we find time or new contributors we will try to do 4 and 5 as well!

Open floor

@espellcaste was in Porto for the WCEU 2022 and attended a workshop called “Creating communities with WordPress MU”. He shared his notes with us after the dev chat and we reacted about it as one the workshop conclusion was BuddyPress is not a good tool to build communities. Some good points were raised and we’ll use them to improve BuddyPress and convince the workshop author she was wrong 😉.

Next Dev-Chat

It will happen on July 6 at 19:30 UTC in #BuddyPress. If you have specific points you want to discuss about, don’t hesitate to share them in comments.

#11-0-0, #dev-chat, #roadmap, #summary

BP Dev-Chat Summary : June 8, 2022 & June 22 BP Dev-Chat agenda

Features for BuddyPress next major release (11.0.0)

The BP Attachments React based UI
  • @im4th shared a GitHub link to an issue summarizing what is/will be inside the BP Attachments feature informing the delete action was still missing. Since this chat, he included this action to the React based UI. As you can see in the above screenshot, one of the goal is to be able to create folders to organize user generated media.
  • @im4th & @johnjamesjacoby agreed it was ok to bump WordPress required version to 5.7 in BuddyPress 11.0.0, see #8709.
  • As we lost ourselves into endless conversations about using PHPCS, @im4th said he would like to see a first patch added to #7228. He thinks this patch should include a GitHub action so that GitHub PR submitted to our repository could be checked against the PHPCS rules we choose to observe.

Next Dev-Chat

It will happen today on June 22 at 19:30 UTC in #BuddyPress. Here’s our agenda :

  • A new strategy for a Block based activity post form.
  • BP Attachments & Media in 11.0.0
  • Let’s work on things we can use for BuddyPress.org: a new bundled BP Theme (as a replacement to BP Default?)
  • Let’s work on removing our dependency to jQuery.
  • BP Rewrites 1.3.0: bbPress forward compatibility!

Let’s try to be a lot of BuddyPress contributors to join this chat 🙏🤝

#11-0-0, #agenda, #dev-chat, #summary

BP Rewrites 1.0.0 Release Candidate

Hi BuddyPress contributors!

“Release Candidate” means that we believe this first version is ready for release! The next step if everything goes well after a last round of testing is to publish the plugin on the WordPress.org Plugins Directory.

Many thanks to the ones of you who contributed to testing 1.0.0-beta2 🥰. Please help us make sure we’re ready to make this important step: Test this release candidate.

If you haven’t tested 1.0.0-beta1 or 1.0.0-beta2, please have a look at this announcement post about it.

What’s new fixed in the first Release Candidate of BP Rewrites 1.0.0?

fixed
Make sure BP Rewrites loads when BuddyPress is network activated. See #32.
fixed
Avoid a fatal error when trying to access to a BP Core Nav too early. See #33.

Props 💚

@adiloztaser@eha1, @imath.

Let’s contribute to BuddyPress’ next way of parsing URLs: test the first release candidate of BP Rewrites 1.0.0.

Please note BP Rewrites requires BuddyPress 10.0.0. Make sure to download the bp-rewrites.zip file from the Plugin’s GitHub repository release page. Use the “Add new” WordPress Administration Plugin screen to upload the zip file. Finally check BuddyPress is activated before activating BP Rewrites.

Happy testing 🙏 😍 🤝

#10-0-0, #feature-as-a-plugin, #rewrites

BP Rewrites 1.0.0-beta2

Hi BuddyPress contributors!

Many thanks to the ones of you who contributed to testing 1.0.0-beta1 🥰, I can’t stress enough how this is really important for the BuddyPress project in order to migrate to the WordPress Rewrite API and let administrators have a full control over any BuddyPress URLs. If you haven’t tested 1.0.0-beta1, please have a look at this announcement post about it.

Thanks a lot to Sarah Gooding who wrote this great post about BP Rewrites’ first beta on WP Tavern. We’re very thankful you spread the news to the WordPress world.

What’s new fixed in 1.0.0-beta2

fixed
Anticipate WordPress 6.0 changes about the WP Request to make sure BP Ajax requests are using the Rewrite API. See #31.
fixed
Make sure BuddyPress is active before trying to change anything into the site’s set up. See #29.
fixed
Remove the BP Pages settings tab to prevent any rewrite rule errors. See #27.
fixed
Fix bpRewritesUI() function call when readyState is not fired. See #26.
fixed
Remove superfluous parameters on remove_filter() calls. See #25.

Props 💚

@adiloztaser@imath.

Let’s contribute to BuddyPress’ next way of parsing URLs: test BP Rewrites 1.0.0-beta2

Please note BP Rewrites requires BuddyPress 10.0.0. Make sure to download the bp-rewrites.zip file from the Plugin’s GitHub repository release page. Use the “Add new” WordPress Administration Plugin screen to upload the zip file. Finally check BuddyPress is activated before activating BP Rewrites.

Happy testing 🙏 😍 🤝

#10-0-0, #feature-as-a-plugin, #rewrites

Using PR to share your patches on BuddyPress Trac

Thanks to Dion Hulse (@dd32), it’s now easier to share patch directly from your BuddyPress GitHub fork to a specific BuddyPress Trac ticket 🙌. It’s a great improvement and I believe it can potentially attract more people to contribute to BuddyPress code.

How does it work?

First if you haven’t created your BuddyPress fork on GitHub, log in to your GitHub account, head over to the https://github.com/buddypress/buddypress.git repository and click on the “Fork” button !

You’ll get a new repository on your GitHub account to work from to contribute to BuddyPress, here’s mine for instance: https://github.com/imath/buddypress.git

Clone it locally, create a new branch to add your changes, commit and push your changes on your branch, go to your fork’s page on GitHub and click on the link to create a Pull Request. You’ll be directed to the page where you’ll be able to link your PR to an existing BuddyPress Trac ticket.

Find the <!-- insert a link to the BuddyPress Trac ticket here --> text and replace it with the Trac Ticket link, for example https://buddypress.trac.wordpress.org/ticket/8647. Of course, if the ticket doesn’t exist yet, you can always create a new one from there.

NB: BuddyPress core committers, do not merge PRs from the BuddyPress GitHub repository, the feature’s goal is to ease code review, we still need to commit changes from our SVN repository.

Click on the “Create pull request” green button and go to your BuddyPress Trac ticket’s page.

As shown in the above screenshot, your pull request will be included into the “Pull Requests” section of the corresponding Trac Ticket. From there BuddyPress contributors can enjoy the GitHub code review features clicking on the View PR’s link or get the patch using the “View patch” link.

To get more information about this feature which is also available on the WordPress Trac, you can read this documentation page of the WordPress Contributor’s handbook.

Getting the most out of this feature

As you may have noticed, we also have some information about automatic checks applied to pull requests. We currently haven’t set these from a GitHub action, but it would be interesting to include PHP Unit tests and why not WordPress code standards checks, see #7228.

#github, #trac

BP Rewrites’ first beta

Hi BuddyPress contributors!

Do you remember when I’ve first introduced you to this feature as a plugin on August 2021? It’s now time we take a new step about it: prepare the plugin to be hosted on the WordPress.org plugin directory to encourage massive testing!

Why do we need massive testing?

If you haven’t read BP Rewrites’ Alpha announcement post, here’s the short version: using the WordPress Rewrite API means setting BuddyPress globals later than it happens today. It requires us to make sure BuddyPress plugins/themes using these globals too early can still get their values putting in place a backward compatibility mechanism. BP Rewrites 1.0.0-beta1 includes such a mechanism and informs the user about the too early call when the WP_DEBUG constant is set to true.

For instance, the following code:

function test_bp_current_component() {
    printf( '<p>The current component is: <strong>%s</strong></p>', bp_current_component() );
}
add_action( 'bp_init', 'test_bp_current_component' );

Would generate the following notice before returning the BP global’s value:

There’s no secret: the only way to have enough confidence into this backward compatibility mechanism to start thinking of merging BP Rewrites into BuddyPress Core is to test, test and test again. The more we are to test, the more specific WP/BP configurations we test and the best we update/improve the backward compatibility mechanism so that end users won’t suffer from the Legacy URL Parser to WP Rewrite URL parser switch: anticipating is less painful than healing!

Is testing the BP Rewrites feature as a plugin safe for users?

I think so 😅. Let’s explain what happens when you activate and deactivate the BP Rewrites plugin.

Once activated, The plugin is editing the post type of the existing BuddyPress pages in favor of the buddypress post type. That’s why you don’t see the BuddyPress pages anymore (as long as the BP Rewrites plugin is active) into the corresponding WordPress Administation edit screen. The BuddyPress Pages settings screen is replaced by a BuddyPress URLs settings screen. This last screen is where you define custom slugs which will be saved as a post meta of the corresponding BuddyPress post type/page item. Then the BP Rewrites plugin is taking benefit from BuddyPress hooks/APIs to change BP Core’s behavior.

When you deactivate the plugin, buddypress post type’s items are switched back to regular pages and you get them back into the corresponding WordPress Administation edit screen. Post metas are still there in case you want to activate BP Rewrites back (this can happen when you’re testing another BuddyPress plugin). If you absolutely want to get rid of these post metas, you can delete the BuddyPress pages, create new ones and redo the page mapping from the BuddyPress Pages settings screen.

What are the benefits of using the WP Rewrite API to parse BuddyPress URLs?

From a developer’s point of view

As @boonebgorges wrote into this ticket first lines:

BP’s custom URI parser (living mostly in bp_core_set_uri_globals()) is slow, error-prone, non-extensible, non-testable, and out of step with WP best practices.

Boone B. Gorges, 9 years ago 😱

As a result, using the WP Rewrite API should be faster, more reliable, extensible, testable and fully compliant with WP best practices 😉.

From a end user’s point of view

This would bring plain URLs compatibility. If you want to use BuddyPress today: using pretty permalinks is required. With BP Rewrites, this is no more the case, you can use BuddyPress with any type of permalinks.

Plain URL permalinks can be used when BP Rewrites is active!

For end users using pretty permalinks, they have full control of any BuddyPress URLs! Today regular users can only change the directory permalinks from the WordPress page editor and advanced users can use some specific constants to customize some other URLs. With BP Rewrites, you can customize ALL BuddyPress URLs including the Group creation steps. They can do it so that it’s more meaningful for their local members and I’ve heard doing so was best for SEO 😁. For instance a french user like me understands better this BP Rewrites generated URL:

site.url/membres/imath/profil/modifier-avatar/

than the current BuddyPress one:

site.url/members/imath/profile/change-avatar/

The BuddyPress URLs settings screen

This the place where you control all BuddyPress URLs. All can be a lot! In the above screenshot we only have the Activity and Members component active. Since BP Rewrites’ alpha version we’ve improved this screen to use the “site-health” screen accordion UI.

The “Directory” panels are a bit specific compared to others. In this panels you can also customize the directory titles. This was needed because we are not using the WordPress Page Editor when BP Rewrites is active to edit directory permalink or title.

Let’s say I want the URL to reach the User’s Profile Image change screen to be site.url/membres/username/profil/modifier-avatar/ instead of site.url/members/imath/profile/change-avatar/. I first need to make sure the Members Directory slug is set to membres.

Components like Members or Groups can have “single item” screens or member and group screens. For the Members component, you’ll first be able to customize the main (or primary) screens using the “Single Member primary views slugs” panel.

To carry on the example we started about customizing the User’s Profile Image change screen URL: in this panel, I’ll be able to change the profile part for profil.

For each subnav (or secondary) items components add to their main (or primary), you’ll be able to customize their slugs using the corresponding “Single Member component_name secondary views slugs” panel.

To finish my example about customizing the User’s Profile Image change screen URL: in the “Single Member Profile secondary views slugs” panel, I can edit change-avatar in favor of modifier-avatar and click on the “Save Settings” blue button to validate these changes. And here’s what happens when I reach site.url/membres/username/profil/modifier-avatar/:

It succesfully loads the Change Avatar screen 😅.

If you activated Groups, you can customize the Creation step views, the views every Member of a group can reach and the Group Admins specific views from the corresponding panels of the User Groups accordion section.

Let’s contribute to BuddyPress’ next way of parsing URLs: test BP Rewrites 1.0.0-beta1

Please note BP Rewrites requires BuddyPress 10.0.0. Make sure to download the bp-rewrites.zip file from the Plugin’s GitHub repository release page. Use the “Add new” WordPress Administration Plugin screen to upload the zip file. Finally check BuddyPress is activated before activating BP Rewrites.

Happy testing 🏈 🐏 🐅

#10-0-0, #feature-as-a-plugin, #rewrites