My apologies if my question is not gonna be clear as I do not have experience in the domain of versioning products/projects. And starting: I have a project which has multiple libraries and data sources dependencies and each library depends to another library or data source. For example:
<-- L1 <-- L2 <-- DS1
P1 |
<--------- L3 <----|
Where P1
is the project, L1-3
is libraries and DS1
is a data source. DS1
has no functionallity, just adding or removing data from it. The final output of the project P1
is a data table. In a point of view the project is not a software but data.
What I want is to use a 'versioning system' which incorporates the changes in each library or data source.
And here are my thoughts.Initially I thought of the following:
P1
will have analpha
,'beta` etc versioning ( which is always dependand of the versions of libraries and data sources).- libraries will have a semantic like versioning and
- data sources just an incremental number(etc 1,2,3 etc)
And this would be released internally as:
--------------------------------------
|project Ver| L1 | L2 | L3 | DS1 |
|--------------------------------------|
| A | 1.0 | 1.1 | 1.3 | 1 |
| B | 1.2 | 1.2 | 1.4 | 1 |
| C | 1.4 | 1.3 | 1.5 | 1 |
| D | 1.5 | 1.5 | 2.8 | 2 |
.
.
.
But As i mentioned before some libraries are dependent to some other libraries or data sources and these information are not in that table. How can incorporate it?
If a data source change version (change of the data) should the dependand version change or remain the same?
Gennerally, how would you aproach this problem? Any insights are useful.