About Xache
Xache removes the cache for selected pages based on entity creation, updation, etc. It adds two new headers to HTTP headers to make this possible. Enable this module, and follow the instructions in README.txt to make it work with Varnish.

It adds content types present on a page to the header, and when any content under that content type is added or modified, it removes cache for those pages.

This is the project page.

Please use the following command to get the code.
git clone --branch 7.x-1.x http://git.drupal.org/sandbox/rmn/2175499.git xache

Manual reviews of other projects
https://drupal.org/comment/8442135#comment-8442135
https://drupal.org/comment/8442171#comment-8442171
https://drupal.org/comment/8442461#comment-8442461
https://drupal.org/comment/8442323#comment-8442323

Old Manual reviews of other projects
https://drupal.org/comment/8417947#comment-8417947

Comments

PA robot’s picture

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.

tomasribes’s picture

Status: Needs review » Needs work

Hi mrn,

I tried to use your git command and it ask for a password. I can't download project.

I can resolve it using http://drupalcode.org/sandbox/rmn/2175499.git and the command git clone --branch 7.x-1.x http://git.drupal.org/sandbox/rmn/2175499.git xache

varnish.txt info must be in README.txt

rmn’s picture

Issue summary: View changes
divesh.kumar’s picture

Hi Rmn,

It seems that module provides support towards Varnish only. Will this be working with other caching mechanism as well?

Divesh

rmn’s picture

@Tomás Updated the original post above, it now shows the correct git command. Also, combined Varnish.txt and README.

@Divesh This module can work with any caching server. Right now, the instructions are provided for Varnish only, you can follow the same logic to rewrite for your own caching server. I have added it on the project page and README.txt to make it more clear for other users. Thanks for pointing it out.

rmn’s picture

Status: Needs work » Needs review
gaurav.pahuja’s picture

Tried on my local setup with Varnish Cache. Working fine for me. Though tags are added at Content type level but at-least partial Cache clearing is possible through this module.

Next level can be nid based tags. These tags can be easily at node pages but may be a performance issue when looking into node blocks / views.

divesh.kumar’s picture

Hi Rmn,

thanks for your reply. I was just wondering that if this module does work with Multisite installation. If yes, what kind of configurations can be made.

Thanks

rmn’s picture

Issue summary: View changes
rmn’s picture

Issue summary: View changes
rmn’s picture

@Gaurav Yes, I initially thought of taking the node-id path which would have been better as caching would have been more accurate. But yes, like you mentioned - there can be some performance issues as this module takes into account all entities, even the ones within a block so the header can become too big on a page with a lot of entities.

@Divesh Yes, this module will work fine in a multisite setup. Since, each site will have its own URL and will be cached as usual under varnish. This module adds content types present on each page to the header, and since the URL will be different, it will work as expected.

rmn’s picture

Issue summary: View changes
Issue tags: +PAreview: review bonus
gaurav.pahuja’s picture

Status: Needs review » Reviewed & tested by the community

As per my testing done on Centos Vagrant environment, I am marking this as 'Reviewed and tested by the community'

rmn’s picture

Issue summary: View changes

Added link to another module that I reviewed.

klausi’s picture

Issue summary: View changes
Issue tags: -PAreview: review bonus

Removing review bonus tag, you have not all manual reviews, you just copied the output of an automated review tool. Make sure to read through the source code of the other projects, as requested on the review bonus page.

rmn’s picture

Issue summary: View changes
Issue tags: +PAreview: review bonus
klausi’s picture

Status: Reviewed & tested by the community » Postponed (maintainer needs more info)

https://drupal.org/project/expire
https://drupal.org/project/purge

This sounds like a feature that should live in the existing expire project. Module duplication and fragmentation is a huge problem on drupal.org and we prefer collaboration over competition. Please open an issue in the expire 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".

rmn’s picture

Status: Postponed (maintainer needs more info) » Needs review

Hi Klaus

I have gone through the modules you have mentioned above. Infact, I am actively using them on various websites. The goal with Xache is a bit different from what these modules are trying to achieve.

Xache is supposed to be just a plug-in and forget-it module for your website, where you would never need to play around with any configurations. You just install it, and forget you ever added it. We will be expanding it further with various other rules which would be intelligent enough to decide if and when the cache should be cleared automatically. Sure, this module can be part of Cache Expiration, but that would defeat the purpose of it being just a plug-in. Purge module depends on Expire too so the user cannot avoid the configuration page at all.

Also, I understand that module duplication can be an issue. But I guess its fair enough to say that modules which are bringing something new needs to be given a chance, which in this case is the whole plug-in and forget-it model.

Thanks
Raman

PS: I tried reading through various articles and nodes on what state should I change it to after commenting on it, but wasn't able to find. Please let me know if changing it to Needs Review again was wrong and point me to the right process.

madhusudanmca’s picture

Status: Needs review » Needs work

Please edit the description of issue as there is no varnish.txt anymore.
Otherwise module looks great to me!!

rmn’s picture

Issue summary: View changes
rmn’s picture

Status: Needs work » Needs review

Thanks man, just updated the description.

Raman

klausi’s picture

Status: Needs review » Needs work

@rmn: ok, please add differences to the existing modules to the project page, so that users can make an educated decision which module to use. See also https://drupal.org/node/997024

rmn’s picture

Status: Needs work » Needs review

Thanks Klaus. I have updated the project page accordingly. I have added how Cache Expiration and Purge when combined together can achieve the same functionality, and how Xache differs from it.

rmn’s picture

Issue summary: View changes
rmn’s picture

Issue summary: View changes
klausi’s picture

Status: Needs review » Fixed

manual review:

  1. The Git commits are not connected to your user account. You need to specify an email address. See http://drupal.org/node/1022156 and http://drupal.org/node/1051722
  2. xache_remove(): do not prefix your custom HTTP headers with "X-", see RFC 6648 http://tools.ietf.org/search/rfc6648 . Same for "X-Xache-Contains", should be just "Xache-Contains".
  3. xache_page_alter(): you are not altering the page, so hook_page_build() seems more appropriate.
  4. xache_views_query_alter(): so this only works for nodes? Please add a comment.
  5. This project is too short to approve you as git vetted user. We are currently discussing how much code we need, but everything with less than 120 lines of code or less than 5 functions cannot be seriously reviewed. However, we can promote this single project manually to a full project for you.

Not application blockers though, and since this was RTBC already before ...

Thanks for your contribution, rmn!

I promoted this project for you https://drupal.org/project/xache

Now that this experimental project has been promoted, you'll need to update the URL of your remote repository or reclone it.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

rmn’s picture

Thanks man.

gobinathm’s picture

Status: Fixed » Closed (fixed)