BuddyPress 10.0.0 is there!

I’m proud to introduce you to BuddyPress “La Pino’z” the tenth of our major releases history and the 1st of this year.

Many thanks to our 39 contributors who made this possible. Great work!

#10-0-0, #release

BP Dev-Chat Agenda January 19, 2022


!important: BuddyPress 10.0.0 won’t be released today, we first need to fix this « last minute » issue. We’ll decide about the new release date during this meeting.

Our development meeting will happen on January 19 at 19:30 UTC and of course in #BuddyPress. Here’s our agenda:

  • #8617: find the best strategy to allow disabling avatar history
  • 10.0.0 stable release last tasks.

If you have specific/additional points you need to discuss about, please share them into the comments area of this post.


#10-0-0, #agenda, #dev-chat

Legacy Widgets in BuddyPress 10.0.0

BuddyPress 9.0.0 main focus was to build a new BP Block Widget for each existing BP Legacy Widget. Starting in 10.0.0, BuddyPress is no more loading Legacy Widgets by default. It only keeps on loading them if:

  • Your WordPress version is < 5.8.
  • Your active theme doesn’t support Block Wigdets.
  • You activated the Classic Widgets plugin.
  • You decided to opt-out the new Block Widget Editor using the use_widgets_block_editor filter.

If your WordPress version is >= 5.8 and your active theme supports Block Widgets and you haven’t opted-out the Block Widget Editor using the Classic Widgets plugin or the filter but still want BuddyPress to load its Legacy Widget, you can do so using this filter:

// This filter makes sure BP Legacy Widgets will be loaded.
add_filter( 'bp_core_retain_legacy_widgets', '__return_true' );

#10-0-0, #widgets

BP Dev-Chat Summary : January 5, 2022.

Some complementary explanations about the 9.2.0 release

@im4th started the meeting saying some words about this minor version which was released on January 3rd. The download spike (~39K downloads) was reached on January 4th. He apologized about the fact he took the decision quite in a rush without discussing about it during a dev-chat. He explained he wanted to have the BP Search Block released in the WordPress.org directory the soonest so that he could focus on the BP Rewrites feature as a plugin for the coming 15 days. 9.2.0 is including a change needed by the BP Search Block (activity search redirection support).

About BP Rewrites, @johnjamesjacoby wants to dive deeper into the plugin. @im4th said it was ok to delay its release after BuddyPress 10.0.0, if needed, as it’s a BP plugin. He also shared his opinion about a BP Core potential merge.

I believe it needs to stay an add-on for at least 2 major BuddyPress releases, there are too many plugins we need to make sure they still behave right before thinking about merging it into BP Core.


Finishing the 10.0.0 Hello BuddyPress screen

If you’ve started testing the RC1 release (if not, do it now!), you already saw it has been finished (See #8605). During the chat, we’ve decided about the 10.0.0 features we want to highlight into this screen:

We also decided to release RC1 as soon as we could (it happened 2 days later) as we already postponed twice our schedule.

Last 10.0.0 schedule

  • 10.0.0-RC: January 7, 2022 🏁 ✅
  • 10.0.0 stable: January 17, 2022 🎯

Open floor

@dcavins has been using the 10.0.0-beta2 release on some decent traffic sites and it seems to be working well 💪 😎

@vapvarun brought up to our attention this support forum topic. Our discussion about it lead to an important decision for our next major release : if ! is_buddypress() no more BP Template Pack CSS/JS. @imath also wishes we use a more modular approach for our JavaScript assets as well as less/no dependency to jQuery.

Next Dev-Chat

It will happen on January 19 at 19:30 UTC in #BuddyPress. We should be able to check the first feedbacks about 10.0.0 😉

#10-0-0, #dev-chat, #summary

BuddyPress 10.0.0 Release Candidate

We really need you for a last round of tests! Thanks in advance for your time and contributions.

#10-0-0, #rc, #release

More engaging logging activities in 10.0.0

By default, BuddyPress has had an elementary style for secondary activities for a long time, now it’s time to make it more attractive.

Default secondary BuddyPress activities

These simple activities about specific user interactions or events (e.g., you joined a group) are more visually attractive to improve user engagement in your community. The most impressive new activity is generated when a user updates their profile photo; it will include the profile photo that spurred the creation of the activity item, even if it has been updated.

New Interactive activities

The new update also saves your avatar change timeline. For example, when a user uploads a new avatar, the previously uploaded one is moved inside a history subdirectory of the user’s avatar directory. This avatar’s history is then available for the new_avatar activities to display the avatar the user had when these were published.

We’ve added a new « recycle » tab inside the change profile photo UI to manage and delete old uploaded avatars.

Thanks to this recycle tab, users can manage their avatar’s history. They can choose to:

  • Reuse a previously uploaded avatar as their current profile photo,
  • Permanently delete an avatar from their avatars history.

It also deletes the activity when a historical avatar has been deleted. It also covered avoiding multiple new_avatar activities per hour. You can change your avatar numerous times in a short time frame, and it will use the last avatar for the activity.

The new functions added for these updates

  • bp_attachments_list_directory_files() returns a list of file objects contained into the directory thanks to its absolute path passed as the function argument.
  • bp_attachments_list_directory_files_recursively() returns a list of file objects contained into the directory and its subdirectories thanks to the directory absolute path passed as the function argument.
  • bp_avatar_get_version() can be used to get a version of an avatar according to its timestamp. Since [13175] the BP_Attachment_Avatar class is using a timestamp inside the avatar file name instead of a generated unique string (uniqid()), this change allows us to request avatars according to the timestamp included into their names.
  • bp_avatar_get_avatars_history() can be used to get the file objects list of previously uploaded avatars.
  • bp_activity_type_part() function to return the name of the activity type template part.
  • edit the bp_activity_has_content() function to generate a richer content for activity types supporting the feature. For such activities the $activities_template global is extended adding a generated_content property to each activity in the loop having a type supporting the “generated-content” feature.
  • Introduce the bp_activity_generated_content_part() template tag which use the current activity generated_content property to output the requested information passed as the function parameter.

The new template tags introduced with current update:

  • bp_activity_the_content_body() to bypass the activity types template parts look up or to use this tag inside an activity types template part.
  • bp_activity_has_generated_content_part() is checking if the property of a generated content exists
  • bp_activity_generated_content_part() is outputing the the property of a generated content
  • bp_activity_get_generated_content_part() is returning the output after making sure it has been sanitized.

The new update will need theme developers to update the buddypress/activity/entry.php template if they have overridden it inside their themes.

PS: all screenshots were made using the BuddyX theme (WordPress 5.8.2 ).

#10-0-0, #activity

BP Dev-Chat Agenda January 5, 2022


Our development meeting will happen tomorrow on January 5 at 19:30 UTC and of course in #BuddyPress. Here’s our agenda:

  • Hello BuddyPress Screen updates, see #8605
  • 10.0.0 RC release preparation.
  • 10.0.0 stable release tasks repartition.

If you have specific/additional points you need to discuss about, please share them into the comments area of this post.


#10-0-0, #agenda, #dev-chat

A new constant to enforce member’s password strength

Starting in BuddyPress 10.0.0, you’ll be able to make sure your members are using a strong password to log in their account. The BuddyPress front-end corresponding action handlers (Registration & General Settings) have been improved to check password strength if the BP_MEMBERS_REQUIRED_PASSWORD_STRENGTH specific PHP constant is defined.

Use a PHP constant to set the password strength level

The JavaScript library WordPress and BuddyPress are using to evaluate the strength of a password has 4 levels : 1 to 4 (from the weakest to the strongest). You can use one of these levels to specify the required members password strength for your site.

In the above screenshot, I’ve added this constant to my /wp-config.php file and chose to force the members to use a strong password.

/* That's all, stop editing! Happy publishing. */

What happens in the registration form?

Visitors can only register if they are using password having a strength level >= to the one you defined thanks to the PHP constant.

Otherwise, a JavaScript warning will ask them to use a stronger password and if they force the form submission the server will interrupt the registration process and return an error.

The JavaScript warning will happen before the registration form is submitted and the PHP error once it has been submitted. Below are 2 screenshots zooming on these two user feedbacks.

What happens in the Member’s General Settings screen?

It’s very similar 😁. Your members will only be able to change their old password for a new one having a strength level >= to the one you defined thanks to the PHP constant.

This new behavior is available into the two Template Packs that are included into the BuddyPress plugin: BP Nouveau (on the left in the above gallery) and BP Legacy (on the right in the gallery).

PS: all screenshots were made using the Twenty Twenty-Two theme (WordPress 5.9 next default theme).

#10-0-0, #members, #password

BP Dev-Chat Summary : December 22, 2021.

A 10.0.0-beta2 before RC

In case you missed it 10.0.0-beta2 was released on December 23. We decided to package this new beta version because @dcavins found a regression about the way custom Group extensions were registered. In short: in case there were more than one Group extension into the loading queue, only the last one were actually registered. @dcavins did a great job identifying the issue, finding the root cause and fixing it. For more information: #8558.

If, as a Plugin author, you are using the Group Extension API, we strongly recommend you to test 10.0.0-beta2.

Other 10.0.0 tickets

  • @vapvarun added a patch about #7540. @im4th reviewed it before committing it the day after the dev-chat. Members can now exit from a multi recipients Private Message thread.
  • During the chat @im4th said #8474 would stay opened until WordPress 5.9 is released. We’re finding small issues with Full Site Editing the more we test BuddyPress with it. If you’re contributing to WordPress 5.9 beta tests, make sure to test BuddyPress with Twenty Twenty-Two: we need your contributions!
  • About #8604 @vapvarun suggested to wait for the first feedbacks about the « richer » logging activities before eventually adapting them according to the context they’re displayed in.

10.0.0 stable release tasks repartition

We need the Hello BuddyPress screen updates to be accomplished before 10.0.0-RC is published. @dcavins already prepared the credit updates, he will write a few lines about Site Membership requests. @vapvarun will also write some lines about logging activities. See #8605.

New 10.0.0 schedule

We’ve postponed the stable release date by 10 days to leave enough time to polyglots contributors to update BuddyPress translations.

  • 10.0.0-RC: January 3rd, 2022 👈
  • 10.0.0 stable: January 15, 2022 🎯

Open floor

@dcavins & @vapvarun suggested we work on documentation updates for the time of a major release development cycle so that our codex can get some ❤️. Today, a lot of screenshots are outdated and latest improvements about BuddyPress are not necessarily explained there. We decided to give this huge task a 4 to 6 months time frame and why not try to gather some contributors into a BuddyPress documentation team. If you’re interested in being part of such a team: let us know!!!

We’ll also try to make our code reference available on developer.buddypress.org.

Next Dev-Chat

It will happen next year on January 5 at 19:30 UTC in #BuddyPress.

#10-0-0, #dev-chat, #summary

BuddyPress 10.0.0-beta2

Merry Christmas to all!

Beta testing is very important, and we need you all, whether you’re a novice or an advanced user, a theme designer or a plugin author. Please contribute 🙏.

👋 😘

#10-0-0, #beta, #release