Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/jaswsinc #125

Merged
merged 37 commits into from
Aug 8, 2015
Merged

feature/jaswsinc #125

merged 37 commits into from
Aug 8, 2015

Conversation

@jaswrks
Copy link
Contributor Author

jaswrks commented Jul 28, 2015

Noting that MU Domain Mapping tests show that we also need to alter the sub-directory for sub-directory installations--combined with domain mapping. Tricky!

@raamdev
Copy link
Contributor

raamdev commented Jul 29, 2015

Since this PR includes changes from several different issues, I'm starting a list of things I need to test prior to merging this PR:

Things to test before merging this PR

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 4, 2015

@raamdev Just a heads up on this. While working to make ZenCache compatible with domain mapping, it became obvious there were going to be some limitations--in terms of which domain mapping features that ZenCache could support. For instance, I was not previously aware that you could map a single child blog to multiple domains with the domain mapping plugin.

So, after I finished the initial work to make ZenCache more compatible with domain mapping, I decided that I would try to make it compatible with all features of domain mapping--not just a few. In order to accomplish this, there was some more work to do in order to make that sort of functionality compatible with automatic cache clearing.

For that reason, I went back to work on this and I will push those changes later sometime this week as I continue to work on ZenCache issues.

@raamdev
Copy link
Contributor

raamdev commented Aug 4, 2015

For that reason, I went back to work on this and I will push those changes later sometime this week as I continue to work on ZenCache issues.

Copy that. Thanks for the update. Does that mean we're going to miss our RC deadline of Wednesday, August 5th? I assume this PR can't be merged until you're done with those bigger changes, since all of the other smaller stuff you worked on is now part of this single PR?

It would be nice to punt the domain mapping stuff to the following release so that we can stay on target for the August 5th RC and then have more time to work on and test the domain mapping improvements as part of the following release.

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 4, 2015

Right. I wouldn't use any of the changes in this PR as part of a release just yet. Everything in this PR is still a work-in-progress at the moment, and there are more changes coming to improve upon what I started working with.

Having said that. I spent quite a bit of time on this last week, and I don't feel like it's far off. I expect to have this PR ready for a merge in the next day or two. Perhaps by Wednesday, but that will depend on what else happens this week. Can't be sure yet.

@raamdev
Copy link
Contributor

raamdev commented Aug 4, 2015

Copy that. I'll push the RC and the Next Release 2 days forward. If there's anything specific that I can help with to get the work in this PR ready for an RC by the end of the week, please let me know. :-)

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 5, 2015

Tests Completed by @jaswsinc

  • Multisite network running from a base sub-directory w/ sub-directory children; e.g., http://wordpress.vm/base/child1/. In other words, setup a Multisite network in a sub-directory, and tell it to use sub-directories for the child blogs. I found a couple of bugs here and zapped them.
  • Test this domain mapping plugin in various ways, with a variety of settings, and look for any problems when generating and/or clearing the cache from different dashboards. https://wordpress.org/plugins/wordpress-mu-domain-mapping/
  • Test each of the issues that were closed to confirm that they were in fact resolved by improvements in this branch.
  • Test the ACE against recent changes and domain mapping.
  • Test Static CDN Filters against multisite networks and domain mapping.
  • Test standard WordPress installation.
  • Test standard WordPress installation in a sub-directory.
  • Test multisite sub-domain installation.
  • Test multisite sub-domain installation w/ domain mapping.
  • Test multisite sub-directory installation w/ domain mapping.
  • Test multisite installs w/ domain mapping and no primary domain; i.e., multiple variations of each site spread across an unlimited number of domain mappings and/or the original blog domain/path.
  • Test feed and XML sitemap caching w/ domain mapping.
  • Test feed and XML sitemap caching w/ multisite sub-domains.
  • Test feed and XML sitemap caching w/ multisite sub-directories.

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 6, 2015

Noting that on a multisite network w/ domain mapping, the ACE will look for your sitemap in one place and one place only; the mapped domain. If there is no domain mapping for a particular child blog, the sitemap is pulled from the original domain/path or sub-domain location as usual.

In this way there is no need for the ACE to waste time trying to prefetch all possible variations of a domain whenever domain mapping is enabled. We only auto-cache the primary domain for each child site if there is one, else the standard sitemap path for each blog.

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 6, 2015

@raamdev My testing is complete here. This is ready for another pair of eyes.

@raamdev
Copy link
Contributor

raamdev commented Aug 7, 2015

Tests Completed by @jaswsinc
[..]
My testing is complete here. This is ready for another pair of eyes.

Copy that. Thanks! I'll start testing this now too.

@raamdev
Copy link
Contributor

raamdev commented Aug 8, 2015

Tests completed by @raamdev

  • Tested Multisite post transitions on primary and child site, with domain mapping.
  • Tested Multisite post term changes on primary and child site, with domain mapping
  • Tested Multisite HTML Compression on primary and child site, with domain mapping.
  • Tested Multisite post transitions on primary and child site, with domain mapping.
  • Tested Multisite post clearing on domain mapped child site with "Redirect administration pages to site's original domain" option enabled (front-end URL different than Dashboard URL).
  • Tested Multisite 404 Caching on primary and child site, with domain mapping.
  • Tested Multisite "Clear Cache" buttons on primary and child site, with domain mapping.
  • Tested Multisite Logged-In User caching.
  • Tested Multisite "Clear Cache" button clears Child Site Logged-In User Home Page cache.
  • Tested Single-Site post transitions.
  • Tested Single-Site term archive automatic cache clearing.
  • Tested Single-Site HTML Compression.
  • Tested Single-Site 404 Caching.
  • Tested Single-Site "Clear Cache" button.
  • Tested Single-Site Logged-In User caching.

@raamdev raamdev merged commit dc9ce67 into 000000-dev Aug 8, 2015
@raamdev
Copy link
Contributor

raamdev commented Aug 8, 2015

@jaswsinc Merged. Woohoo! Nice work! 👍 :-)

@raamdev raamdev deleted the feature/jaswsinc branch August 8, 2015 15:19
@raamdev
Copy link
Contributor

raamdev commented Aug 8, 2015

Yikes. Now I just need to write changelog entries for all of these changes!

@raamdev
Copy link
Contributor

raamdev commented Aug 11, 2015

@jaswsinc As I was reviewing some of the issues resolved in this PR I realized that there are several issues that were labeled both pro and lite, i.e., that affect both versions. I've identified the following issues as issues that will potentially require additional work on the Lite version before I can close those GitHub issues:

wpsharks/comet-cache#368
wpsharks/comet-cache#168
wpsharks/comet-cache#409
wpsharks/comet-cache#539
wpsharks/comet-cache#540
wpsharks/comet-cache#541

If the choice is not to fix some of these in the Lite version, then we need to come up with and implement a plan to notify site owners via a Dashboard message (as I described briefly in https://github.com/websharks/zencache.com/issues/65#issuecomment-127499042) so that Lite users do not just assume the bug isn't fixed (resulting in unnecessary reports of bugs, a bad image of our software projected by the Lite version, etc.).

I'd like to fix bugs where possible in the Lite version (old codebase), but not if it means a ton of work.

I'll definitely need your help in making those judgement calls, as you'll be better at determining just how much work will be needed to fix each bug. My feeling is that things like wpsharks/comet-cache#368 should be relatively easy to fix in the old codebase, but I could be totally wrong.

Would you mind taking a look at the above list of issues and letting me know which ones you think will require the least amount of effort to fix in the old codebase? (Note that the last few issues on that list were bugs reports that you opened, so I wasn't sure if they were applicable to the old Lite codebase.)

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 11, 2015

wpsharks/comet-cache#368

Can be fixed easily in the lite version.

wpsharks/comet-cache#168

A minor tweak could improve the way this works in the lite version. However, the full fix that we implemented would require significant changes that I would advise against. My suggestion is that we try to implement the easy fix to improve this, and leave the rest as is.


wpsharks/comet-cache#409
wpsharks/comet-cache#539
wpsharks/comet-cache#540
wpsharks/comet-cache#541

Unfortunately, these are not easy fixes. It's going to require more widespread changes and quite a bit of testing. My suggestion is that we don't try this. The existing Lite version is working quite well for most people. As you mentioned, I think we should try to limit our work on that old copy to bugs that are quick/easy. That way we can stay focused on Lite+ and Pro moving forward.

My feeling is that there will come a point where the benefit of offering a more up-to-date Lite+ version will outweigh the benefits of distributing the old Lite version that is more compatible with PHP 5.3 and APC. So we will have Lite and Lite+. Every once in awhile, the Lite version could be updated so that it actually becomes a mirror of Lite+; i.e., in order to bring it up-to-date.

@raamdev
Copy link
Contributor

raamdev commented Aug 11, 2015

My feeling is that there will come a point where the benefit of offering a more up-to-date Lite+ version will outweigh the benefits of distributing the old Lite version that is more compatible with PHP 5.3 and APC. So we will have Lite and Lite+. Every once in awhile, the Lite version could be updated so that it actually becomes a mirror of Lite+; i.e., in order to bring it up-to-date.

Agreed. My thinking is that Lite+ only has a place in the world right now because we don't yet feel comfortable pushing the newer codebase (and more stringent requirements, like Opcache instead of APC and PHP 5.4+) to the existing Lite userbase.

Once we see that enough users are running PHP 5.4+, I would be fine with merging Lite+ into Lite and getting rid of Lite+ altogether (or keeping Lite+ with some additional benefits). The point being, I don't see us maintaining two separate codebases for more than 6-12 months. However, in the interim we do need to manage the shortcomings of the old codebase in a way that doesn't hurt the image of ZenCache overall (i.e., Lite, Lite+, and Pro).

Unfortunately, these are not easy fixes. It's going to require more widespread changes and quite a bit of testing. My suggestion is that we don't try this. The existing Lite version is working quite well for most people. As you mentioned, I think we should try to limit our work on that old copy to bugs that are quick/easy. That way we can stay focused on Lite+ and Pro moving forward.

Right, agreed. So what do you think we should do about the bugs/limitations of the old codebase (namely Multisite support)? I wouldn't feel comfortable stripping Multisite support out altogether, although that feels like the right thing to do. There are way too many people already using ZenCache Lite on multisite (even though it's broken in various ways, depending on your multisite configuration) and just outright removing that functionality seems a bit drastic.

I feel our best option with regards to multisite in the Lite version is the following:

  • Get Lite+ released, which would include full support for Multisite
  • Add a Dashboard message to Lite whenever activated on Multisite informing users that full Multisite support is only included with Lite+ and that we recommend upgrading to Lite+.

We'd allow users to continue using Lite on Multisite as-is, but if someone complains about a bug, we'd just point them to Lite+ and say that Multisite is only fully supported with Lite+.

@raamdev
Copy link
Contributor

raamdev commented Aug 12, 2015

Wrote changelog entries for all work in this PR:

  • Bug Fix: Saving a Post as a Draft was incorrectly purging XML Sitemap cache files. Props @jaswsinc. See Issue #368.
  • bbPress Compatibility: This release greatly improves compatibility with bbPress. Events like creating a new Forum, creating a new Topic, and posting a reply to a Topic (including threaded replies), now properly clear the necessary cache files to ensure that cached bbPress pages remain up-to-date. Props @jaswsinc. See Issue #168.
  • Multisite Domain Mapping Compatibility: ZenCache is now fully compatible with the WordPress MU Domain Mapping plugin, including Multisite Networks using domain mapping on top-level domains, sub-domains, and sub-directories. Multiple variations of each site spread across an unlimited number of domain mappings and/or the original blog domain/path is also supported. All other features of ZenCache, including the Auto-Cache Engine, Static CDN Filters, and HTML Compression are also now compatible with domain mapping. Props @jaswsinc. See Issue #339.
  • Multisite Bug Fix: Fixed a bug where the Clear Cache button wouldn't clear Child-Site Logged-In User Home Page cache files on WordPress Multisite Networks. Props @jaswsinc. See Issue #409
  • Multisite Bug Fix: Fixed a bug where the Home Page cache was not clearing on Child Sites in a Multisite Network. Props @jaswsinc. See Issue #409
  • Multisite Bug Fix: Fixed an issue where the Auto-Cache Engine would fail to auto-cache child blogs in a multisite network whenever the network was being served from a sub-directory. Props @jaswsinc. See Issue #537.
  • Multisite Bug Fix: Fixed a bug with 404 Request caching on Multisite Networks where ZenCache was not considering that each child blog in a multisite network will have its own 404 error page. Props @jaswsinc. See Issue #539.
  • Multisite Bug Fix: Fixed a bug where clearing the cache from the main site of a multisite network, when there are child blogs in sub-directories, resulted in all child blogs being cleared from the cache, not just the main site as would be expected. This has been resolved and only the main site is cleared when clicking the Clear Cache button. Note that the Wipe Cache button can still be used to clear the cache for all sites in a Multisite Network. Props @jaswsinc. See Issue #540.
  • Multisite Bug Fix: Fixed a bug where Wiping the cache on a multisite network resulted in the very next page view being cached incorrectly. Props @jaswsinc. See Issue #541.
  • Enhancement: Improved compatibility with any Custom Post Type that uses hierarchies. Props @jaswsinc.

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 12, 2015

Get Lite+ released, which would include full support for Multisite
Add a Dashboard message to Lite whenever activated on Multisite informing users that full Multisite support is only included with Lite+ and that we recommend upgrading to Lite+.

Agree. That sounds great to me :-)

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 12, 2015

fully compatible with the "WordPress MU Domain Mapping" plugin

I suggest linking this to the page for that plugin to help clarify that compatibility is with that specific domain mapping plugin. There is more than one out there, so it might help to avoid confusion while we work to make ZC compatible with others in the future.

@raamdev
Copy link
Contributor

raamdev commented Aug 12, 2015

I suggest linking this to the page for that plugin to help clarify that compatibility is with that specific domain mapping plugin.

Copy. Will do.

@jaswrks
Copy link
Contributor Author

jaswrks commented Aug 12, 2015

Wrote changelog entries for all work in this PR:

I reviewed the rest of that. Looks fantastic!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants