backdropcms.org icon indicating copy to clipboard operation
backdropcms.org copied to clipboard

Utilize Diffy for Visual Regression Testing

Open quicksketch opened this issue 1 year ago • 12 comments

The owner of Diffy, a visual regression testing service, has offered their services pro-bono to the Backdrop project. @stpaultim, @izmeez, and myself (@quicksketch) met with Yuriy from Diffy today to discuss it.

This issue is to coordinate the evaluation and setup process.

quicksketch avatar Dec 01 '23 21:12 quicksketch

As agreed on the call we will set up Diffy for the main website https://backdropcms.org/. It was great talking to you all today.

ygerasimov avatar Dec 01 '23 21:12 ygerasimov

We have an account set up and have configured it to take snapshots of beta.backdropcms.org and backdropcms.org and compare them.

This is a pretty basic implementation of Diffy, but a good place to begin.

We'll talk more about this at our user group meeting, next Thursday.

stpaultim avatar Dec 02 '23 06:12 stpaultim

I don't think I was on the initial call. But, this does sound interesting and potentially useful. I'll make an effort to attend the meeting.

izmeez avatar Dec 02 '23 22:12 izmeez

@stpaultim I see that staging environment miss images. Can we set up sync of the images from prod or maybe even better to have stage_file_proxy. Otherwise Diffy will show a lot of changes because of the missing images.

ygerasimov avatar Dec 02 '23 23:12 ygerasimov

@ygerasimov - Yes, we'll look at that ASAP. I noticed this as well and am aware that the two sites are quite out of sync right now. So, we need to refresh the database on Beta.

Baby steps...

:-)

Atten: @bugfolder

stpaultim avatar Dec 03 '23 00:12 stpaultim

So, we need to refresh the database on Beta.

It's a little more than just that, I think. Since the dbs of Beta (site) depend on the code in beta (the branch) and the files on beta (the server), the following all should be done (preferably at one time):

  • Update beta branch of code from main branch
  • Backup and copy files from b.org to beta.b.org
  • Copy config files from live-active on b.org to beta-active on beta.b.org
  • Backup the Backdrop db on b.org, import to Backdrop db on beta.b.org
  • Backup the CiviCRM db on b.org, import to CiviCRM db on beta.b.org
  • Fix any permissions that didn't end up with the right owner or group

Currently, b.org has a bunch of available updates: Backdrop 1.26.2, which just came out, of course, but also 9 contrib modules, plus CiviCRM that also need to be updated to the latest versions. It's not strictly necessary to update those before mirroring from b.org, but if the goal is to have Beta as close as possible to b.org (at least for a little while; the divergence starts almost immediately since b.org gets several spam account creations per day), it might be desirable to do all the b.org updates first, then carry out the mirroring process.

Here's the release checklist for 1.26.2: https://github.com/backdrop/backdrop-issues/issues/6315

bugfolder avatar Dec 03 '23 17:12 bugfolder

I may not yet be dialed into the objectives: what is it that we want to differentiate with the help of diffy? Is the primary objective to confirm the code and configuration or to have a clone?

Since the database contains content and possibly some config, it would be considered as required to copy and sync. The config files and database are combined with the demo module or can be done with equivalent commands.

Files can be done through copy or a module to access the files remotely, as one can do between production and staging sites. Likewise, the CiviCRM database could be copied or accessed remotely.

Will remote access for these help focus what we are trying to differentiate?

izmeez avatar Dec 03 '23 19:12 izmeez

@izmeez - Bugfolder had done this and knows what needs to be done, he is just reminding me what is involved (at least, that is what I understand).

Diffy is simply a visual regression tool that we're experimenting with and we decided that the first step towards experimenting with it, would be to try using it on BackdropCMS.org. What it does is take snapshots of about 20 pages on backdropcms.org and then we can push experimental changes to the beta site and it will take the same 20 snapshots and analysize them to see if there are any unexpected differences.

We're very much in expemental mode and after trying this, we can see if there are other ways we might use Diffy as a community. The developers of Diffy have offered us free access for community use. At this point, we're simply testing Diffy to see how useful it could be and how we might best take advantage of this generous offer.

https://diffy.website/

@bugfolder - I've avoided getting involved in this before, but will give it a try. Maybe, I need to start by making sure I have a working local copy of b.org. I'll let you know if I have questions.

Does the database need to be sanitized before importing into beta site?

stpaultim avatar Dec 04 '23 05:12 stpaultim

Does the database need to be sanitized before importing into beta site?

No, beta site contains real user data (hence the hiding of it behind a password).

bugfolder avatar Dec 04 '23 11:12 bugfolder

Hey @ygerasimov 👋🏼 ...nice to see you here (do you remember me from Salsa Digital?). Thank you for offering your services pro-bono to our project 🙏🏼

@bugfolder are we using https://github.com/backdrop-contrib/stage_file_proxy on the beta site? We should! It would reduce the tasks that we need to be manually doing.

klonos avatar Dec 09 '23 01:12 klonos

...also, can I please be added as a member to the team/organization in the Backdrop Diffy account?

klonos avatar Dec 09 '23 01:12 klonos

@klonos 👋🏼 great to see you here! Please advise your email address (drop me an email to [email protected]) and I'll send you the invite.

ygerasimov avatar Dec 11 '23 05:12 ygerasimov