grayresearch / CX

Proposed RISC-V Composable Custom Extensions Specification
Apache License 2.0
66 stars 12 forks source link

Define rules for CFU versioning #8

Closed olofk closed 2 years ago

olofk commented 2 years ago

No rules are currently defined for when and how to increase a version. I propose we use semantic versioning (https://semver.org/) as that is relatively well understood. Technically I think we should replace the decimal 100 for version 1.00 with a 24-bit vector 24'hxxyyzz where roughly xx=major version (for incompatible changes), yy=minor version (for feature additions) and zz=revision (for non-functional changes, fixes, clarifications etc)

jangray commented 2 years ago

Thanks Olof! In this commit (https://github.com/grayresearch/CFU/commit/4226439e78e93cf0a9b20dac5c646c1859782a09) I renamed CFU_VERSION to CFU_LI_VERSION to clarify it defines the CFU-LI spec version, not a version of the CFU component itself. I adopted your suggestion of using semantic versioning version numbers. (I've been using those major.minor.revision in software since 1987.) I also added a new Introduction section 1.6 Versioning which is the start of a much longer discussion of versioning of the specs themselves, and specific custom interfaces, and implementations, how that works, and how it is supposed to preserve robust composition over time. Please take a look and I'd welcome more feedback and questions.

olofk commented 2 years ago

Looks great! Closing this