Best way to track component versions for a project? #147
-
What is the best way to track which version of a base or component gets used in any given version of a project? So far, it seems like I'd use the project's version + top-level pyproject.toml version or git history, but maybe I am missing something more obvious? P.S. thanks very much for your talk "A fresh take on monorepos in Python"! I find this design very compelling and hope to use it in some larger projects. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Polylith uses the concept of versionless bases and components. Versions can be used for projects: when you package a project, you can have a version attached to it - the built & deployable artifact - as you write, in the Having bricks (bases and components) without versions, means that all projects and the local development environment will use the same source code. You can think of bricks as local source code - namespace packages - with a single-project/single-repo developer experience, but used by several projects. Compared to a library, a depencency, a brick is a lot smaller. A library is a full-blown feature (and would need versioning), a brick is a smaller part of one or more features. In the case of breaking changes, or if one project for reasons cannot use an updated brick, there are several choices to solve it depending on the problem:
I'm glad that you liked my talk! 😄 |
Beta Was this translation helpful? Give feedback.
Polylith uses the concept of versionless bases and components. Versions can be used for projects: when you package a project, you can have a version attached to it - the built & deployable artifact - as you write, in the
pyproject.toml
.Having bricks (bases and components) without versions, means that all projects and the local development environment will use the same source code. You can think of bricks as local source code - namespace packages - with a single-project/single-repo developer experience, but used by several projects.
Compared to a library, a depencency, a brick is a lot smaller. A library is a full-blown feature (and would need versioning), a brick is a smaller part of one…