As you know, I’m working on enhancing profiles.wordpress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ as a part of GSoC’13 and this is my third weekly update regarding how things are going.
Once again, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/
As you can see from the schedule, the things I was planning to complete by now was as follows:
July 2nd – The codebase for feeding the Enhanced Activity Stream from Trac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. should be ready by now.
To be able to feed the Activity Stream with the Trac data, I had to find a feasible way to establish a bridge between them.
The first thing that came to my mind was writing a Trac plugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party that hooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. to each of the processes we want to generate an Activity Stream item from. This seemed like the best solution but at the time, it was not clear on my part whether it would be complicated to write one or not.
The second thing was following the current method and writing an outsider PHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. script to check for the Trac activities. Although this was an option, I would better stay away from this method, obviously. 🙂
Honestly, I was expecting thing on the Trac side to get really problematic but turns out, and thankfully, I was wrong. Putting the plugins to the Trac’s plugins directory is everything that needs to be done to make them work. Requests are sent immediately after tickets are created, replies are added or commits are made. I really think that Trac plugins should be what we will be using for the Trac-BP connection, since a standalone PHP script will most likely be more prone to breaking as it will be completely working from the outside and will be more vulnerable to future changes in Trac.
As a result, I came up with two Trac plugins which you can see here: https://gsoc.svn.wordpress.org/2013/merty/trac/plugins/
ActivityStreamNotifier: Fires when a new ticket is created or a reply is added to an existing ticket.
ActivityStreamRepositoryNotifier: Fires when a commit is made.
I will still be making changes on both these two plugins in the following week to finalize them.
To sum up, third week was also a success and I have already started working on the codebase on the BuddyPress side, to make sure things will be ready when they’re needed.
In the next week’s update, I will be presenting the codebase for feeding the Enhanced Activity Stream from bbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. and the final form of the codebase for feeding the Enhanced Activity Stream from Trac.
See you next week!