Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
This project, Coffee Extras, provides a robust set of default commands to accompany the highly useful Coffee module. I would like to incorporate this module as a submodule for Coffee, so that people can optionally enable Coffee Extras when they download Coffee.
For a more detailed explanation of Coffee Extras (including screenshots), see the project page:
https://www.drupal.org/sandbox/mrkdboyd/2361931
Git clone command:
git clone --branch 7.x-1.x http://git.drupal.org/sandbox/mrkdboyd/2361931.git coffee_extras
Comments
Comment #1
PA robot CreditAttribution: PA robot commentedThere are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxmrkdboyd2361931git
We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)
Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #2
mrkdboyd CreditAttribution: mrkdboyd commentedApplied all of the fixes for Drupal coding formatting standards found by the PA Robot. The module now passes the automated tests with no errors whatsoever.
Comment #3
sendinblue CreditAttribution: sendinblue commentedManual Reviews:
Please consider security issue. It is not good that use "!" markup for string varible in t() function as security issue.
Comment #4
mrkdboyd CreditAttribution: mrkdboyd commentedThanks for pointing that out! I've updated all of my implementations of the t() function to be more secure. Please let me know if you find any other issues.
Comment #5
guelzow CreditAttribution: guelzow commentedHi mrkdboyd.
I've found some minor caching issues.
Manual Review
You might want to consider adding Views, Bean and Features to the recommended modules list.
I noticed, that you have to flush the cache, in order to
This review uses the Project Application Review Template.
Tobi
Comment #6
mrkdboyd CreditAttribution: mrkdboyd commentedThanks for the insights, guelzow. I've added some hooks to clear the Coffee caches on vocabulary and user role insert/update/delete. However, for features, there are no hooks to easily use, so instead I've updated the README for the module to note that when you change your features, you will have to clear caches for the Coffee commands to update.
Comment #7
sendinblue CreditAttribution: sendinblue commented@mrkdboyd, I had time to review your module again today.
I found some issues in your code.
Manual Reviews
Use (*) and (+) to indicate an issue importance.
(*) Please remove the packaging lins from the .info. These will be added when the module is published.
(*) Please remove t() function in .install file. Please read this article carefully.
https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/t/7
Comment #8
sendinblue CreditAttribution: sendinblue commentedComment #9
mrkdboyd CreditAttribution: mrkdboyd commentedThanks so much for the feedback, @sendinblue! I fixed the implementation of t() to get_t() in the install file. As for the .info file though, from what I'm reading, it is correct to specify a 'package' in the .info for a custom module. See https://www.drupal.org/node/542202#package
Comment #10
mcrittenden CreditAttribution: mcrittenden commentedAgreed with latest comment -- the "package" is used correctly in the .info file currently. http://cgit.drupalcode.org/sandbox-mrkdboyd-2361931/tree/coffee_extras.info
Back to needs review.
Comment #11
k_zoltan CreditAttribution: k_zoltan commentedI use the coffee module daily and your features look really great but as a first impression a question arises:
Why did you tried to create a new module why not try to help out the current maintainer, eventually join forces?
Here is a helpful documentation https://www.drupal.org/node/23789
Comment #12
klausiThis sounds like a feature that should live in the existing coffe project. Module duplication and fragmentation is a huge problem on drupal.org and we prefer collaboration over competition. Please open an issue in the coffee issue queue to discuss what you need. You should also get in contact with the maintainer(s) to offer your help to move the project forward. If you cannot reach the maintainer(s) please follow the abandoned project process.
If that fails for whatever reason please get back to us and set this back to "needs review".
Comment #13
mrkdboyd CreditAttribution: mrkdboyd commentedI actually did reach out to the module maintainer already:
https://www.drupal.org/node/2362475
Personally, I think that this module makes perfect sense as a companion rather than living within 'Coffee'. The Coffee module maintainer put hooks in his code precisely so that people could extend it for their needs while keeping his module lean. And I'm just leveraging those hooks to provide a set of features that I think a lot of people will find useful.
There is plenty of precedent in the Drupal community for companion modules, so I would prefer to keep this module separate.
Comment #14
mlmoseley CreditAttribution: mlmoseley commentedIndividual user account
Yes
No duplication
Yes
Master Branch
Yes
Licensing
Yes
3rd party assets/code
Yes.
README.txt/README.md
Well done. Every readme.txt should be like this.
Code long/complex enough for review
Yes
Secure code
Yes
Coding style & Drupal API usage
Very good, very tight code. Nitpick/suggestions:
1. On line 28 you have the following code:
$module_add_commands_function = "coffee_extras_add_{$module}_commands";
Here you're using the inline method to escape variable expressions from strings. But supposedly the more secure and proper way to do it is to use call_user_func(). I've never done it myself, but in looking it up, that seemed to be the recommended most secure method. Here's the documentation for call_user_func();
2. Perhaps add a comment to explain why you're flushing the caches, starting on line 147 – which I assume is to make coffee aware of any changes the user makes to the modules invoked.
Comment #15
mrkdboyd CreditAttribution: mrkdboyd commentedComment #16
mrkdboyd CreditAttribution: mrkdboyd commentedComment #17
mrkdboyd CreditAttribution: mrkdboyd commentedComment #18
PA robot CreditAttribution: PA robot commentedProject 1: https://www.drupal.org/node/2476919
Project 2: https://www.drupal.org/node/2362563
As successful completion of the project application process results in the applicant being granted the 'Create Full Projects' permission, there is no need to take multiple applications through the process. Once the first application has been successfully approved, then the applicant can promote other projects without review. Because of this, posting multiple applications is not necessary, and results in additional workload for reviewers ... which in turn results in longer wait times for everyone in the queue. With this in mind, your secondary applications have been marked as 'closed(duplicate)', with only one application left open (chosen at random).
If you prefer that we proceed through this review process with a different application than the one which was left open, then feel free to close the 'open' application as a duplicate, and re-open one of the project applications which had been closed.
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #19
apaderno