Skip to:
Content

Opened 4 years ago

Closed 4 months ago

Last modified 4 months ago

#5351 closed enhancement (fixed)

bp-forums retirement

Reported by: johnjamesjacoby Owned by: johnjamesjacoby
Milestone: 3.0 Priority: normal
Severity: normal Version:
Component: Forums Keywords:
Cc:

Description

bbPress 2.x now completely handles BuddyPress integration on it's own. Around 95% of our 2014 survey respondents (that use forums) use bbPress 2.x. It's time to consider what retiring the bp-forums component looks like.

BP Forums is several years stagnant, and has been almost completely hidden from the UI for the past 12 straight months.

The biggest win for removing bp-forums completely is finally getting rid of the Subversion externals. They are tedious to setup and maintain for each repository. bbPress also has a Subversion external to BackPress, which also has a Subversion external to the po/mo library. Chopping all of this out of BuddyPress completely will be quite liberating.

A few ideas:

Leave the code in BuddyPress forever

We've been fortunate so far and haven't needed to be as strictly committed to backwards compatibility as WordPress has. But, it won't always be that way, and we're quickly approaching our users having the expectation of stability first.

If we go this route, we just hide the UI and pretend like the code doesn't exist anymore. I don't really like this idea, as it doesn't solve our Subversion external problem.

Move BP Forums into the Backwards Compat Plugin

Back from the dead: http://wordpress.org/plugins/buddypress-backwards-compatibility/developers/

This plugin was always intended to act as a shim for components that eventually get retired, so it's a logical choice. One problem with this approach is we'll need to update that plugin somewhat, to make it work at all with our new component selection UI, and also resurrects our old Wire and Status components, which I personally sometimes miss; leaving them under the rug means I forget how cool they were. :)

Move BP Forums into a new 2.0 shim plugin

This lets us shed any other extra weight we think would make sense to remove from BuddyPress proper, mainly any deprecated functions files from several versions ago.

Change History (34)

#1 @johnjamesjacoby
4 years ago

  • Owner set to johnjamesjacoby
  • Status changed from new to assigned

#2 @sooskriszta
4 years ago

(I know this is Trac, not forums, but still..) Yay!

#3 @DJPaul
4 years ago

Another idea: create a file with every bbPress function stubbed that's only loaded when the bbpress_init hook fires. Avoids fatal errors, lets us remove the bbPress external.

#4 @boonebgorges
4 years ago

This lets us shed any other extra weight we think would make sense to remove from BuddyPress proper, mainly any deprecated functions files from several versions ago.

I don't think there's any pressing need to do this sort of general "clean up".

As for bp-forums, my personal vote is to leave it as is. Many sites are still using it. We already totally hide the UI for any site that is not already using it. The only annoyances are the Subversion issues (which are minor, and only affect the small handful of people who handle BP releases) and the increased size of the BP zip download. The latter point is not insignificant, but IMHO is not worth sinking tons of time into solving.

If we must do something, I feel really strongly that we do it in a way that causes as little disruption as possible for the (many, many) existing sites using bp-forums. I think this means more than just documentation of the change. Something like, say, moving bp-forums + bbPress to a stub plugin, and then attempting to install it automatically when a site using bp-forums upgrades to BP 2.0. This kind of thing would handle the majority of cases gracefully.

Last edited 4 years ago by boonebgorges (previous) (diff)

This ticket was mentioned in IRC in #buddypress-dev by jjj. View the logs.


4 years ago

#6 @snark
4 years ago

If I understand correctly what is being discussed, it would be the potential end to BP Forums (& Groups too?), replaced by bbPress Forums, like you have the option to do know with Site Wide formums. Is that correct? If so, I am all for it and don't mind making the switch, but here is what I'd like to see:

1) Be able to keep the old BP Forums in a "read-only" mode. Since my BuddyPress site (http://www.wordlab.com) has thousands of Forum entries, I would love to keep all that for future reference and SEO content, just move it perhaps to an "old forum" directory.
2) Is it possible to give BuddyPress the functionality to turn off the addition of new topics and replies to all Forum posts, but still leave the posts up for read-only reference?
3) Our users have long been confused by Groups vs. Forums and the Activity Stream vs. Forums, so I'd actually prefer to move to a simplified, single bbPress sitewide forum, but again, I just don't want to lose all that content.

Thanks,
Jay

#7 @johnjamesjacoby
4 years ago

Not exactly correct.

Our goal is to motivate site admins to install the latest version of the bbPress plugin and migrate old BP Forums content using bbPress's built in migration tool. The bbPress plugin offers 1 to 1 functionality with BP Forums, and adds even more functionality and features not present in the old version of bbPress.

To more directly answer your questions:

  1. No read-only mode. Data would be completely converted over.
  2. In bbPress 2.x, forums can be closed to new topics, and topics and closed to new replies, essentially duplicating the read-only experience you're looking for.
  3. You are not alone; this is a common pain point, likely due to how equal all components are by default in BuddyPress. Members aren't directed towards the posting method with the greatest return value, so they float around not knowing what to do or why, only hoping to get a response from one of several different divisions of the site. My advice here, like you mentioned, is to turn off the functionality that you feel is non-essential to your community, and not turn it back on until it's large enough to require that division.

#8 @r-a-y
4 years ago

  • Milestone changed from 2.0 to 2.1

As discussed in last week's dev chat, bumping this to 2.1.

#9 @DJPaul
4 years ago

  • Keywords dev-feedback added
  • Type changed from defect (bug) to enhancement

I want to mark this ticket as resolved now that we're only adding bbPress 1 to BuddyPress release packages, but want a second opinion first. I this what we have is a good solution for now, and if in the future we have the appetite or desire to remove bbPress 1 from those release packages, we can revisit.

#10 @boonebgorges
4 years ago

DJPaul - I'm happy with that. Removing the bp-forums directory from the codebase is a nice thought from an aesthetic point of view, but it raises many problems. I think the current state of things is good enough for the foreseeable future.

#11 @DJPaul
4 years ago

  • Keywords dev-feedback removed
  • Resolution set to fixed
  • Status changed from assigned to closed

#12 @boonebgorges
7 months ago

  • Milestone changed from 2.1 to 3.0
  • Resolution fixed deleted
  • Status changed from closed to reopened

bbPress 1.x does not run on WP 4.7+. The general consensus (see Slack chat about to be linked here) is that 3.0 is a reasonable time to pull out our compat layer, with some documentation/publicity explaining how existing sites can remain on bbPress legacy (namely, staying on BP 2.9.x and WP 4.6.x).

This ticket was mentioned in Slack in #buddypress by boone. View the logs.


7 months ago

#15 @djpaul
7 months ago

  • Resolution set to fixed
  • Status changed from reopened to closed

In 11763:

Retire Legacy Forums.

"Legacy Forums" is what we now call the bundled version of bbPress 1 that has shipped with BuddyPress for over nine years. The Legacy Forums codebase/features are many years stagnant, and it has been almost completely hidden from the UI for the past five years.

Legacy Forums were replaced by bbPress 2, which is its own plugin, and we've been promoting its integration with BuddyPress for a long time. Most significantly, bbPress 1 only runs on WordPress versions older than 4.7, because of a BackPress conflict (which is nested inside bbPress 1) with WordPress 4.7's WP_Taxonomy class.

If your site is still using Legacy Forums, you will need to migrate to bbPress 2 to run BuddyPress 3.0. See https://bpdevel.wordpress.com/2017/12/07/legacy-forums-support-will-be/ for more information.

Fixes #5351
See #7502

#16 @r-a-y
7 months ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

I think we should bring back some of the conditional functions like bp_is_group_forum() and bp_get_group_forum_permalink() or deprecate them.

Removing them outright will cause fatal errors for those using those functions in plugins.

Also in the changes to:

  • bp-templates/bp-legacy/buddypress/groups/create.php
  • bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php

The "Enable forum" option is always visible now. This doesn't sound right to me if somebody does not have the bbPress plugin installed.

#17 @DJPaul
7 months ago

Regarding "Enable forum" comment: I don't believe that's true, because those blocks are wrapped inside pre-existing bp_is_active( 'forums' ) checks. BuddyPress no longer has a "forums" component, but bbPress does register one called "forums", so it should only show up when bbPress is active.

#18 @r-a-y
7 months ago

Sorry, you're right! I was looking at the changeset without looking at the actual files! :)

#19 @DJPaul
7 months ago

I think we should bring back some of the conditional functions

I thought about this a bit. They would have to return false, or whatever the "no" equivalent is. The ones currently in trunk aren't in use by the bbPress plugin, and I see little value in having any to-be-reinstated functions accidentally work with bbPress (if indeed any did before).

Last edited 7 months ago by DJPaul (previous) (diff)

#20 @r-a-y
7 months ago

I'm fine with returning false on those conditional functions. Another one to add back bp_is_group_forums_active():
https://github.com/search?utf8=%E2%9C%93&q=bp_is_group_forums_active+NOT+akismet&type=Code

But, a return function like bp_get_group_forum_permalink() doesn't rely on checking if the legacy forums or the bbPress plugin is active or not. We also updated that function quite recently in v2.5, so it's probably still being used.

#21 @r-a-y
7 months ago

We need to either reinstate bp_group_new_topic_button() or make sure bbPress will add a "New Topic" button in v2.6.

I personally think we need to bring it back for bp-default (and deriviatives that will be slow to update).

As of trunk, the following warning shows up on all group pages:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'bp_group_new_topic_button' not found or invalid function name

Reference:
https://buddypress.trac.wordpress.org/browser/trunk/src/bp-templates/bp-legacy/buddypress-functions.php?marks=109#L109

Last edited 7 months ago by r-a-y (previous) (diff)

#22 @boonebgorges
7 months ago

Did bp_group_new_topic_button() do anything for bbPress 2.x? (It doesn't look like it, but just to be sure.)

I agree we should reinstate it, though it can probably just noop for BP 3.0, since it wouldn't do anything without the full forums component.

#23 @r-a-y
7 months ago

Ahh, you're right. bbPress has nothing to do with the button.

It was something that we did a fix for in the CBOX Theme:
https://github.com/cuny-academic-commons/cbox-theme/commit/c4db6e27649c6e4c2995f965b1371c3dc88491eb

Returning false is fine.

Last edited 7 months ago by r-a-y (previous) (diff)

#24 @DJPaul
7 months ago

We need to either reinstate bp_group_new_topic_button() or make sure bbPress will add a "New Topic" button in v2.6.

Would very much prefer the latter, because it knows more about its own permalink.

#25 @DJPaul
7 months ago

bbPress should also add a metabox or setting to the wp-admin Groups Edit screen to control whether to turn the groups filter on or off.

#26 @djpaul
7 months ago

In 11780:

Groups: reinstate functions bp_is_group_forums_active(), bp_group_new_topic_button(), bp_get_group_new_topic_button().

The first function has been reinstated for compatibility with third-party plugins, "BuddyPress for Sensei" and "BuddyPress for LearnDash".

The latter two functions rendered a "new topic" button on a Group screen.
Current proposal is that bbPress is updated to add this back, because otherwise we have to make assumptions about bbPress' permalinks, or rely on calling a bbPress function (which feels conceptually wrong from an integration perspective).

Also fix a PHP Notice caused by an incomplete prior removal of bp_group_new_topic_button() (see bp-legacy/buddypress-functions.php).

See #5351

#27 @djpaul
7 months ago

In 11781:

Groups: reinstate bp_is_group_forum() function.

This has been reinstated for compatibility with themes that may have customised bp-legacy's
/buddypress/groups/single/home.php template. The function has been modified to always return false.

See #5351

#28 @djpaul
7 months ago

In 11782:

Groups: reinstate functions bp_group_forum_permalink(), bp_get_group_forum_permalink().

These functions have not been used directly in core since v1.1.3, but are reinstated for the
"Buddypress Groups Directory Extras" and "BuddyPress Courseware" plugins, and by popular demand.

See #5351

#29 @djpaul
7 months ago

In 11783:

Remove uses of bp_is_active( 'forums' ).

These checks only works with the Legacy forums, not bbPress.
All template and navigation functionality affected by this changeset have replacements directly provided by bbPress.

See #5351

#30 @DJPaul
7 months ago

  • Resolution set to fixed
  • Status changed from reopened to closed

I've reviewed and addressed all the feedback so far. Going to close the ticket again.

#31 @r-a-y
4 months ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

Was testing the bp-default theme and it throws a fatal error when visiting your Notifications page because the bp_is_user_forums() function no longer exists:
https://github.com/buddypress/BP-Default/blob/master/members/single/home.php#L57

For sites still using bp-default or an overriden version of /members/single/home.php on bp-legacy, we'll need to bring this function back.

#32 @djpaul
4 months ago

  • Resolution set to fixed
  • Status changed from reopened to closed

In 11937:

Templates, Legacy: re-introduce bp_is_user_forums().

This is for compatibility with sites still running BP-Default (not updated since 2013)
and sites running BP-Legacy with a custom members/single/home.php taken from a
pre-3.0 version of BuddyPress.

Fixes #5351 again

Props r-a-y

#33 @djpaul
4 months ago

In 11938:

Move (retired) Legacy Forum backwards compatibility functions into deprecated/3.0 file.

See #5351

#34 @r-a-y
4 months ago

In 11939:

Core: After r11938, undeprecate bp_is_akismet_active()

This function is still used by the Activity component's Akismet module,
and is called directly by the Nouveau template pack.

See #5351.

Note: See TracTickets for help on using tickets.