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 to compare two different container versions #821

Open
peterbo opened this issue Jul 10, 2024 · 6 comments
Open

Feature to compare two different container versions #821

peterbo opened this issue Jul 10, 2024 · 6 comments

Comments

@peterbo
Copy link
Contributor

peterbo commented Jul 10, 2024

Make it easy to compare two different container versions with each other to see all changes side by side.

@AltamashShaikh
Copy link
Contributor

AltamashShaikh commented Jul 11, 2024

@peterbo Can you elaborate more on what are you trying to achieve with the comparison ?

@Stan-vw
Copy link

Stan-vw commented Jul 11, 2024

Let me check if I understand correctly:

Problem: when collaborating with multiple people, MTM containers can quickly change which makes it difficult to keep track of what has changed over a period of time.
Idea:

  • some interface that shows both containers side by side
  • the interface clearly shows what stayed the same
  • the interface clearly shows what changed

I'm sure there's a few visual options for this (e.g. look at GH version control and similar interactions in other tools), but I'm not sure if we already have any components in the platform that would be a good fit for this type of admin work. Also, I'm not sure if we currently have UX to select 2 items and compare them, this sounds like it'd be a totally new interaction in Matomo and could be relevant to other places as well.

I'd love to hear further thoughts on the problem:

  • how many people are likely affected by this?
  • how frequently they are affected by this?
  • how impactful is it to the user not to have this? (e.g. how long does it currently take you to compare containers)
  • any thoughts on easy fixes for this, e.g. reusing existing components.

Looking forward to reading your thoughts 👍

@peterbo
Copy link
Contributor Author

peterbo commented Jul 11, 2024

Hi @AltamashShaikh & @Stan-vw,
thank you for elaborating on the feature request and sorry for just "throwing" in this one-liner.

I think "what the feature does" is pretty straight forward (as @Stan-vw already summarized).

  • when clicking on a version, see a log of all changed entities (tags, triggers, variables) and history (create/release), you can select another version to compare to
  • when you click on a specific changed entity, you can see a comparison between those two, or at least, display both versions side by side

This feature would also open the door for the implementation of workspaces in general and merging different "trees" of those workspaces and also potential code highlighting/interpretation (i.e. find syntax errors before releasing a container).

I'd love to hear further thoughts on the problem:
how many people are likely affected by this?

That's hard to guess. I'm encountering this issue nearly on a daily basis in cases, where a) more than one person is working on a TagManager integration or b) you're working on a bigger change (which is not released in production right away) and come back after one or two weeks and can't remember the specifics of your WIP or c) something doesn't work anymore and you're trying to find the root cause (if you only look at the changes, it's a lot easier to find the change which is responsible)

how frequently they are affected by this?

Also hard to guess. But regularly for sure. We're using this feature quite often in GTM also for code-merging.

how impactful is it to the user not to have this? (e.g. how long does it currently take you to compare containers)

Currently, I export different versions and compare them in "WinMerge". This is pretty ineffective, since entities are often pushed around in the exported JSON, IDs / timestamps are changed and it's pretty hard to really see the important differences.

any thoughts on easy fixes for this, e.g. reusing existing components.
Code highlighting / interpretation is a new thing for sure.

I think, the TagManager is a very critical core product of Matomo to keep it competitive. So - sorry for extending the ticket with the following content, but it helps to outline the fundamental idea behind this ticket and the following "group of changes" (will be discussed in their designated tickets):

  • Serverside tagging / tracking data stream from & to different sources & destinations, later: basic CDP?
  • filter / list / sort tags/triggers/variable listings
  • copy/clone tags/triggers/variables
  • ability to pause triggers/tags
  • workspaces (and merging)
  • Better debug / preview mode
  • Tag firing sequence / wait for another tag to be fired first
  • Custom Dimensions on a tag level
  • release / publish workflow
  • activity log (which user released a version)
  • Create / edit exportable templates for tags / triggers / variables
  • directories (for better structure)
  • dashboard of current state (version you're working on, current changelog of unreleased changes, etc.)

@Stan-vw
Copy link

Stan-vw commented Jul 11, 2024

@peterbo thanks for the elaborate and clear reply, very helpful!
Could I perhaps ask you to share a screenshot of how it looks in GTM and point out any specific things you like and any things that you think could be improved?

Ps. we're currently working on some of those extra changes you mentioned 😃

@peterbo
Copy link
Contributor Author

peterbo commented Jul 12, 2024

Hey @Stan-vw , thank you!

This is the release & changes view of GTM:
gtm-changes0

Release view - you can review changes or abandon a change from being released.

gtm-changes1
Version changelog view:

  1. Summary
  2. Changes overview (opens comparison view on click)
  3. History - When was it released / published
  4. Tags/Triggers/Variables overview that are part of this version

gtm-changes2
Detailed view of the changes - what has been changed (name, description, tag code / attributes, workspace membership, triggers, variables, templates, etc.). On click, this opens a code editor with a diff, but I guess this is not too critical to have in an MVP.

we're currently working on some of those extra changes you mentioned

That's so good to hear! If I can assist / help / test, please let me know! :)

@Stan-vw
Copy link

Stan-vw commented Jul 14, 2024

As I didn't see in your post how you "activate" the comparison mode, I'm going to guess that it's the following:

  • when clicking on a change, it opens up the comparison with the previous version
  • you cannot compare your current version with any other versions except the previous
  • the comparison is just for 1 item at a time, there's no page that shows all changes

Please let me know if these guesses are correct.

If so, I'm considering we might be able to add a comparable feature to the "create new version" screen where we already show what the changes are from the previous version. Here we could add an icon to compare the changes to the previous version, which might bring the before/after in a modal or something.
Screen Shot 2024-07-15 at 9 31 43 AM
Would that solve the problem you referred to above (wasting time trying to figure out what you/team did over the past few days/weeks through exporting and comparing it in WinMerge) or would this not cover it?

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

No branches or pull requests

3 participants