iGEM-Engineering / iGEM-distribution

Repository for collective design of an iGEM DNA distribution
https://igem-distribution.readthedocs.io
Other
42 stars 20 forks source link

Version numbers for iGEM distributions #190

Open jakebeal opened 2 years ago

jakebeal commented 2 years ago

We need to decide what type of version numbers should be given to iGEM distributions.

In my view, there is a critical decision fork between year-based releases and semantic versioning.

My recommendation would be to use semantic versioning, and to just include the year in the release name, e.g., this year's initial release would be version 1.0, named "2022 Distribution"

GC-repeat commented 2 years ago

Just to better understand the system, how would you call a second release happening later this year defined as followed :

GC-repeat commented 2 years ago

Would the year be important to know what was available to the teams for a particular season ? If yes, we may need more info like the month as a 2022_05 (May) release would be available for iGEM2022 but not a 2022_11 release.

jakebeal commented 2 years ago

Just to better understand the system, how would you call a second release happening later this year defined as followed :

  • Addition of packages. 2022 distribution v1.1.0 ?

Yes.

  • Addition of new packages and deletion of packages. 2022 distribution v2.0 ?

Yes.

  • Same packages but some sequences modified to fix illegal restriction sites. 2022 distribution v1.0.1 ?

This one's a little trickier and needs a little thought, because we have to decide if a part can have the same name when its sequence has been changed. If the sequence wasn't the one we meant to make (like the J23106 typo last year), then it would clearly be v1.0.1, analogous to if synthesis had produced an incorrect product.

So in general, if we keep the same name of parts and say "the part never should have been that way", then it would be 1.0.1. If we change the name and say "we're removing the old part from the distribution and you should use the new one we replaced it with", then it would be 2.0.

Would the year be important to know what was available to the teams for a particular season ? If yes, we may need more info like the month as a 2022_05 (May) release would be available for iGEM2022 but not a 2022_11 release.

This is the sort of thing that pushes me towards semantic versioning, because it seems like this is better to get from the release timestamp and/or description, rather than trying to encode it into a version number.

vinoo-igem commented 2 years ago

I think semantic versioning is the way to go.

It does raise a separate question on if "distribution" is the right word for the long term. Both from a workflow perspective as we see things scale up, and from a branding/ordering perspective when we would want to move towards an a la carte system for teams. Prior to this the distribution referred to the set of plates that all teams received.

I think we need to consider the movement of packages within a distribution into a new or separate one and vice versa in the future. I believe semantic versioning should be able to handle this.

Ex.

jakebeal commented 2 years ago

I like this perspective, @vinoo-igem: I envision a shift over time to "the distribution" being more like a "starter pack" set of core tools. In that view, the distribution would ultimately boil down to just a list of packages (at specific versions) to be included in the standard starter pack to tools.