backdrop / backdrop-issues

Issue tracker for Backdrop core.
144 stars 38 forks source link

Configuration Management Sychronize improve text in opening paragraph #6621

Open izmeez opened 1 week ago

izmeez commented 1 week ago

Description of the need

Backdrop CMS currently displays the following text:

This form allows you to synchronize configuration between sites, such as in development, staging, and production servers. This page shows you the current differences between your current configuration and changes that have been staged for deployment.

image

Proposed text:

This page shows the current differences between the active and staged configurations. It allows you to synchronize configuration between sites, such as in development, staging, and production servers.

image

stpaultim commented 1 week ago

I added screenshots to the original post by @izmeez.

This seems like a pretty minor change that might be helpful. It seems like the point of the change is put more empahsis on the diff functionality of what is happening here.

I haven't used this page in a while, so I'd like to see what it looks like with some actual diff's visible. I'll try to test that later.

izmeez commented 1 week ago

Here is what the configuration sync currently looks like on a fresh tugboat install with a random config imported to staging, backdrop-demo-configuration-sync-screenshot-2024 06 21

izmeez commented 1 week ago

Doing this with a fresh backdrop install on tugboat and importing a website's current active settings, looking at the diff there are some items that are clearly additions with backdrop 1.28.0 that have not made it into the updated site. A method to cross check?

izmeez commented 1 week ago

Click on View differences and the side by side view header is old and new. May be better if it was active and staged ?

klonos commented 1 week ago

... It seems like the point of the change is put more empahsis on the diff functionality of what is happening here.

Yeah, and although when I first read this I liked the proposal, I'm not so sure (but could be convinced). My reason of hesitation is the fact that the primary purpose of the page and the title of the tab is "Synchronize". So it feels right that the first sentence was the one with the "allows you to synchronize" bit.

While we're at it, "shows the current differences" is not 100% accurate - if we want to be more precise, what this page does is to list individual config changes, and provides a way to view the differences between active and staged for each changed config in a side-by-side, color-coded visual comparison. But all that is too wordy. Since this page is meant for use by more technical people, with more in-depth knowledge of development terminology (staging/production, version control etc.), perhaps we can reduce that by using "visual diff". Something like this: This page lists any configuration changes between what is currently active and what has been staged for deployment, and allows inspecting these changes in detail via a visual diff.

The other, "allows you to synchronize" sentence seems fine to me as is.

izmeez commented 1 week ago

Something like this: This page lists any configuration changes between what is currently active and what has been staged for deployment, and allows inspecting these changes in detail via a visual diff.

I like this. and thank you for exploring the wording on this page.

In many ways the word Synchronize is a misnomer. Usually we think of synchronize as a precise action, whereas currently it is a brute force: all or none. But, it is the right word for what is needed and possible.

klonos commented 1 week ago

In many ways the word Synchronize is a misnomer. Usually we think of synchronize as a precise action, whereas currently it is a brute force: all or none. But, it is the right word for what is needed and possible.

I guess it is what has been historically used (in Drupal as well when CMI was first implemented). If by "brute force" you mean the inability to select only specific config to be imported, then yes, that is true; however, in order to have "selective config sync" we need to have some sort of configuration dependencies, which is really tricky to implement ...otherwise, allowing arbitrary config to be imported can end up really messy (as in broken sites).

In the sense of bringing the dev/local/staging environment in par with production, then "synchronize" seems like a good choice of word to me.

Nerd-alert!: If you really want to get technical about it, the word "synchronize" is a compound of the Greek words "syn" (the equivalent of the English prefix "co-") and "chronos" (= "time"). It means to adjust two or more things so that they operate or happen at the same time. Only in computing it means "make data in two or more places identical" 🤷🏼 ...so if you really-really wanted to be 100% accurate (and still use a Greek-derived word), then you would use "homogenize" 🤓

kiamlaluno commented 1 week ago

Actually, synchronize is also used in synchronize watches (make two watches show the same time) which gives to synchronize a similar meaning it has in computing. 😉

kiamlaluno commented 1 week ago

As for being able to choose what is synchronized, that is not mandatory. I have a smart phone application that allows me to use the same data that is set on my smart phone on my smart watch; it does not allow to select what must be synchronized, though.