Customize Snapshots 0.6.0 Adds the Ability to Name and Merge Changesets

photo credit:

Contributors to the Customize Snapshots feature plugin are steadily building a UI for managing Customizer changesets using the changesets infrastructure added in WordPress 4.7. Version 0.6.0 of the plugin was released this month with an expanded interface for managing the complexities of multi-user editing in the Customizer.

The previous version of Customize Snapshots already supported scheduling but this release introduces a new multi-select save button that allows users to publish, save draft, save as pending, or schedule changes.

Version 0.6.0 adds the ability to name changesets, which is especially helpful for site owners who are sorting and previewing changes submitted by multiple editors. The list of changesets has links for previewing on the frontend, editing in the Customizer, or inspecting the changeset’s content on the edit post screen.

This release introduces the ability to merge multiple changesets into a single changeset, which users can then preview and publish all at once.

Contributors have not yet worked out how this feature will handle conflicting changes submitted by multiple users. It currently accepts whatever change was made more recently, but this isn’t ideal in certain situations. Conflict resolution is on the team’s radar to address in future iterations of the plugin and they are discussing several different approaches.

“Merging changesets would definitely lie in the realm of a power user feature,” Customize component co-maintainer Weston Ruter said. “It would probably not be proposed for core. Nevertheless, the existence of the feature is a demonstration of the kinds of things that can be possible when working with changesets.”

In addition to co-leading WordPress’ Customizer team, Ruter is also the CTO at XWP, where several of the agency’s clients are actively using the Customize Snapshots plugin. News Corp Australia and Beachbody are two companies that have invested in the plugin’s development and are successfully using it at scale on their network of sites.

“When paired with the Customize Posts plugin, it gets really powerful because you can edit multiple posts and pages, along with any of their postmeta, while also editing widgets, nav menus, and any other settings, and all of these changes are all bundled together in a single changeset,” Ruter said. “This changeset can then be previewed on the frontend, including by sharing the URL with an unauthenticated user (like a 3rd party who can’t even access the Customizer), and they can click around the site with all of the customizations applied as if they had been published.”

Ruter said the Customizer team isn’t currently targeting a WordPress release for getting these new UI additions added to core but rather view the progress as “prototypes for what could be merged into core, bit by bit.” He identified several tickets that the plugin provides prototype interfaces for:

  • #28721: Scheduled changes for the customizer
  • #31089: Add revisions and statuses for changesets
  • #21666: Customizer reset/undo/revert
  • #39896: Customizer: Allow users to Draft changes before Publishing

“Core development is still very much focused on the editor — Gutenberg — so the far-reaching Customizer changes are not being emphasized yet,” Ruter said. Meanwhile progress continues on the Customize Snapshots plugin, which was completely rewritten for the 0.6.0 release after most of its infrastructure was merged into WordPress 4.7. Ruter’s team is not sure which features will eventually land in core, but the various Customizer feature plugins give users an idea of the power of the changesets infrastructure that is already included in WordPress.


5 responses to “Customize Snapshots 0.6.0 Adds the Ability to Name and Merge Changesets”

    • how so?

      How exactly are you going to resolve merge conflicts? hmm sorry… how will you even know there is one? Take for example one changeset that sets the text color to white and another that sets the background to white. Each one of the changes might look ok when tested, but together the results in an unreadable site.

      The whole changeset idea is parallel to reality. In reality every code change like theme or plugin update will need to result in nullifying changes set because you have no idea what would be the impact of combining the changeset with the new code.

      I can see some use case for people that might get interrupted while making big amount of changes, but how often that happens? almost never?

      This is totally plugin territory, and the bloat do not have to be inflicted on the 99% of wordpress users that will not even understand the idea behind changesets.

      • Because changesets provide the technical architecture to test, store and schedule changes without affecting the ‘live’ site. That’s hugely significant.

        Tell me what is the more mature, user-friendly way for users to edit their sites:

        1) Toggling between back-end and front-end and hoping changes will work out nicely but not knowing in advance and having web visitors be exposed to your experiments.

        2) Live preview controls so that you no longer have to switch between back-end settings screens and the front of the site, and you instantly see what a setting change does.

        3) Test, design, experiment, tweak to your hearts content without affecting the live site. Compare different sets of changes and share those changes with others for feedback. Take those changes live when you’re ready.

        Today, 3 is only really possible if you setup a staging and/or development site. This puts it out of reach of basic site owners while introducing user-hostile complexity for the rest. Changesets helps provide a quantum leap for the site creation experience, making WP a much better platform to work with.


Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.