As you know, I’m working on enhancing profiles.wordpress.org as a part of GSoC’13 and this is my ninth 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:
August 12th – All the known bug fixes should be done by now.
…and it’s done!
Since I tested the plugins pretty much every single week until the midterm evaluations and fixed the issues I came across, they really seem bug-free in my development environment. Therefore, no changes were made there.
The theme, on the other hand, is the newest piece of the puzzle and naturally it had bugs/unhandled scenarios such as elements overflowing into other elements, missing the code for the Google Plus icon, design of the areas when the user is not logged in, design of the elements that change when the user is displaying his/her own profile but does not have the necessary info on file etc. These are all fixed now.
In addition to these fixes, reorganized the PHP code by removing unnecessary codes and making sure everything complies with WordPress’ PHP Coding Standards. Also, refactored the CSS line-by-line to ensure that it fully complies with WordPress’ CSS Coding Standards which resulted in making too many changes.
Finally, as I mentioned in my previous blog post, I was planning to work on how we can handle props in commit messages better which I also did. Had some time to learn regular expressions so I was able to write a better regular expression for it and handle the matches in a cleaner way. After spending hours staring at my regular expression to find out what’s wrong with it as it was not returning all matches for each sub-expression, I learned that PCRE is only capable of returning the last match of each sub-expression. Therefore, to my knowledge, it is not possible to match usernames solely with a regular expression. I tested my new solution on the last 25 commit messages and successfully extracted usernames from them.
Here is my previous quick and temporary solution:
preg_match('/props ([a-zA-Z0-9, ])*./', $_POST['message'], $matches);
$usernames = substr($matches, 6, -1);
$usernames = explode(', ', $usernames);
And here is my new and slightly better solution: (I’m looking forward to your suggestions on enhancing it)
$regex = '/props\s+((?:(?:\w+\b(?<!\bfixes))(?:[,][ ]*)?)+)/i';
preg_match_all( $regex, $_POST['message'], $matches );
$usernames = explode( ',', $matches );
$usernames = array_map( 'trim', $usernames );
$usernames = array_filter( $usernames );
So everything I planned for this week has been completed, except the meeting with @jenmylo.
My original plan for the next week was as follows:
August 19th – Another round of feedbacks from the users should be gathered by now.
Since we were not able to evaluate the first round of feedbacks, I think we should start with doing that and ask for another round of feedbacks once the necessary changes/implementations are made.
See you next week!