Workflow for manual diagram layout editing #80
Replies: 1 comment
-
Lots of upvotes, but no discussion? I generally only see manual layout merging being an issue where teams are cramming too much into a single workspace ... i.e. a single workspace is being used to describe a number of software systems/services, each being owned by different teams. If that's the case, I'd start by splitting up the workspaces along the lines of the recommendations at https://docs.structurizr.com/workspaces |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Intro
We've been using Structurizr Cloud for a while and are quite happy with it. Multiple teams are working with it and documenting the software product.
Our current workflow
One workspace file (with per team includes) is used and all files incl. documentation are versioned in a single git repository. The layout information JSON file is not part of the repo (it's roughly 1,5 MB in size).
Teams are authoring changes in branches using a local Structurizr Lite instance (Docker on WSL 2). Those branches are rebased on the main branch and merged once the changes incl. the diagrams (in Str. Lite) have been reviewed. After merging, the CI pipeline uploads the workspace to Structurizr Cloud using Structurizr CLI (push).
Merging problems
Now, all diagrams are set to
autoLayout
which is not a good choice for more complex diagrams, as you surely know and we would like to switch to manual layout for some of them. The first idea we had was to switch off autoLayout for a diagram and commit the workspace layout json file to the repo. After editing a diagram in Structurizr Lite, the layout changes are reflected in this file and committed. But this leads to merge conflicts when multiple teams are making changes in different branches, even if they do not edit diagram layout since the JSON file always changes when the model is reloaded. Automatic merging fails since there are a lot of changes which also makes it basically impossible to merge it manually.So my question is, what is the right way to use manual layout given the setup described above?
Many thanks!
Beta Was this translation helpful? Give feedback.
All reactions