Matt Mullenweg dropped the bombshell yesterday in IRC: bbPress, the often forgotten forum option, could become a WordPress plugin in the near future.
Anyone who has ever looked at integrating forums with their WordPress blog knows that right at the moment bbPress an underpowered option is. Integrating other forums can be a real headache (Vanilla 2 Beta has a one way integration add-on, from WP to Vanilla) and bridges can break when changes to the database are made with new releases.
The first reaction of several people in IRC and on Twitter was that they prefer bbPress to be a standalone option but possible advantages of bbPress as a plugin largely outweigh here:
- User database integration;
- The possibility of an improved role management system to deal with the roles for integrated boards (extra admins, moderators)
- Site wide plugin interoperability;
- Site wide theme interoperability;
- Easy media upload and the new image editor in WP2.9;
Most of al I liked the possible [bbpress] shortcodes Matt hinted at:
[13:11] <Ryan_> There’s a lot of stuff in WordPress which would automatically become available with no effort if the two were combined.
[13:11] <photomatt_sf> that’s more along the lines of my [bbpress] shortcode idea
[13:11] <hajii> shortcodes for bbpress would be great
[13:11] <photomatt_sf> [bbpress tag="akismet-plugin"]
[13:11] <benhuson> @hajii – Yes, I think being able to benefit from existing wordpress theme would be a huge asset
[13:11] <photomatt_sf> [bbpress forum="newbies"]
The WordPress Shortcode API is very powerful and can be used to eliminate many plugins (related posts, Adsense in posts, send to Twitter, image galleries, image captions to mention only a few) and there is no doubt that this shortcode integration could lead to new possibilities, both for developers/designers and users. It would also be very nice to be able to post to your forum from the regular post page in the dashboard.
For those who prefer bbPress to be used as a standalone option, you could always set your forums as home page while still benefitting all the advantages which come with the WP integration.
One last thought: could it be that Matt’s motivation to convert bbPress to a plugin would make bbPress the first canonical plugin?
When ‘canonical plugins’ for WordPress were announced the post also mentioned that these plugins might have to move to a new structure, setup:
In order to have a system like this, each canonical pluginâ€™s development community would probably need similar infrastructure to WordPress itself, including things like Trac, mailing lists, support forums, etc. These things will be worked out within the development community over the coming months…
If the community decides to open up the platform more this could have great advantages for these plugins but it would only restrict the damage done daily elsewhere. The inconvenience of being a popular open source platform with extensions and themes directory: popular plugins become orphans, themes aren’t updated with the newest features and could break a standard WordPress setup with new releases.
All themes and plugins hosted on WordPress.org are required to be GPL licensed so it would be simple for developers, designers to re-release ‘updated abandoned’ plugins and themes but users would not receive updates in the plugin and themes installer.
Enter GitHub. GitHub is a popular distributed platform used for many opensource software projects. Rails uses it, scriptaculous and Lussumo garden are other popular projects using GitHub. The SourceForge of the modern internet.
Git is a fast, efficient, distributed version control system ideal for the collaborative development of software.
GitHub is the easiest (and prettiest) way to participate in that collaboration: fork projects, send pull requests, monitor development, all with ease.
Where GitHub excels is the possibility to follow projects and also to fork a project, all while keeping the project leader informed of contributions.
I am not saying that GitHub the future of the themes and plugin directory is, but GitHub does offer an easy platform to overview many different projects. If a plugin or theme becomes orphaned, chances that someone else has created a fork are big and ‘repository moderators’ could opt to replace the main, original plugin with an updated commit.
A GitHub similar platform would also offer an easy platform for theme designers and child-theme designers to keep ‘connected’. It literally becomes easy to follow a plugin’s or theme’s history (themeline?) and to download new commits.
Could WordPress.org benefit from a similar setup?
The WordPress Core Commit Team ended their meeting after WordCamp Orlando and has announced on the development blog that there will be canonical plugins in the future.
What are ‘canonical plugins’?
The first question which comes to mind is ‘What are canonical plugins?‘. The team has provided the following definition:
Canonical plugins would be plugins that are community developed (multiple developers, not just one person) and address the most popular functionality requests with superlative execution. These plugins would be GPL and live in the WordPress.org repo, and would be developed in close connection with WordPress core. There would be a very strong relationship between core and these plugins that ensured that a) the plugin code would be secure and the best possible example of coding standards, and b) that new versions of WordPress would be tested against these plugins prior to release to ensure compatibility.
Canonical plugins will not be developed by one plugin developer anymore but by the community. They will also have their official web presence on the wordpress.org plugin repository instead of on website of the (original) developer.
What does this mean for several plugin developers? If you have a popular plugin and your plugin contains a ‘Donate’ button, be prepared to ditch this button if you want your plugin to be taken in consideration. This would be the case for example for. Arne Brachold’s Google (XML) Sitemap Generator and Donncha’s WP Super Cache plugin.
How to name ‘canonical plugins’?
The team clearly identified that the term canonical rather niche is and asks the community to vote on how these ‘super plugins’ should be categorised/labelled. The entry on the develop blog offers some names for canonical plugins: