goadesign / model

Create your software architecture models and diagrams in Go.
MIT License
331 stars 19 forks source link

Enterprise deprecated #502

Open beffge opened 10 months ago

beffge commented 10 months ago

The enterprise is deprecated in the DSL and should be replaced with groups.

Could someone hint to all the places which might need changes for it to work?

raphael commented 10 months ago

Thanks for raising this! A good ol' search and replace should work pretty well here given that Enterprise is used mostly as metadata. Roughly the DSL has to be added (similar to this), then the group expression needs to be added (that the new group DSL would instantiate, similar to this), the ModelizeDesign function in the mdl package needs to be updated to take this new field into consideration. We should also probably test to make sure that the design serializes correctly for the structurizr service.

raphael commented 8 months ago

@beffge nudge: any chance you might be able to take a look?

beffge commented 7 months ago

Hey, sorry for responding so slow on your comment. I can't promise anything here timeline wise but it is till on my radar.

beffge commented 3 months ago

I just thought I'll look into this again. But I got a bit confused.

To me it looks more like the DeploymentEnv i.e. in the resulting JSON just a string and during modelling as a function. Difference is just, it can be at different locations as well as it can be nested.

With regards to being nested, it requires

        properties {
            "structurizr.groupSeparator" "/"
        }

for which I didn't find anything similar. How would you approach this?

beffge commented 3 months ago

OK, I tried to add it but got lost 😓 It seems like, since group can be part of Design, SoftwareSystem and Container as well as nested, it's more way more than just the existing Enterprise. I started adding it, but I was just assuming what I had to do, since I don't use anything but the mdl package. I'm pretty sure any PR I'd create would require a lot of discussion and rework i.e. it will be faster and more efficient if someone which uses the "other" parts implements it.

@raphael what do you think?

raphael commented 3 months ago

Fair enough! I'll keep the issue opened so one of us can take a look at some point.