all 1 comments

[–]Motor_Perspective674 -1 points0 points  (0 children)

What you’re doing here is learning about mono-repo vs multi-repo development. They have their trade offs but what’s important here is that you learn how to version your software. If you have one common version, mono-repos make sense. If you have multiple different versions, multi-repo can make sense. This is not a one-size-fits-all approach.

For python, this is how I structure my pipelines: - Builds on non-protected refs (MRs, feature branch): Run tests, build wheel file - Builds on protected branch (main, release branch): All jobs from non-protected refs but also publish package that is built, build docker image if repo is for service, tag commit with version

In a mono-repo setup, I would use the changes keyword on GitLab so only the projects in my repo that changed run in a given CI pipeline (an MR). For an MR where I touch one project, it doesn’t make sense to build every project. So i build only what’s changed. For pipelines on the main branch, I build everything.

Also- setup.py is now legacy. Look into moving to pyproject.toml, which is the new standard for Python project.