Hi, we are new with gitlab. We started a few weeks ago and we are really impressed from gitlab in general. Actually we followed the documentation, video on youtube but we didn’t really understand which is the best practice when you have to create projects. We understood correctly the group and project relation but something is not totally clear on projects.
So the question is:
When we have to manage project where with a multi architecture structure, as
Spring back end, Angular front end, Android App, NodeRed app… which is the best approach to create project? at the moment we created one project for each layer, but when issues start to increase we have big difficulties to find issue, know who is doing what… caos…
Which is the best way? create just one project? or have many as we have?
we prefer using projects as Git repository entities, each on its own. Roles and permissions are granted for the group in general, with fine granular permissions based on the projects whenever needed.
In terms of issues, you may want to switch to group level milestones and dashboards. In case you are using the enterprise version, you can also manage epics providing a grouped view over issues, which allows for better project management.
Separating the projects also has an advantage for developers, I would guess that a backend developer not necessarily wants to maintain frontend code and vice versa. Especially when tests fail, you’d first need to check where exactly and so on.
Also, waking up developers with issue subscriptions in a combined project is a thing. It gets overly hard to maintain and also needs extra labels rendering the list to pick from too long. And so on.
In terms of release management, that’s also better since a the frontend project may push a new bugfix release on their own, leaving away the backend project which doesn’t need a no-op bump here. With using GitLab CI, you can create combined packages and deploy everything to production from different projects.
From my experience, clear cut separated projects with group level project views work way better. That of course needs meetings and coordination between the teams, but I’ll bet you do that already.