We've been using SemVer but haven't well established what exactly is covered by it.
Up to now, everything has effectively been covered by it, including all examples, extensions, makefile, etc.
In an ideal world, I would think, only the core SDK components (ie. baseapp, types, store) and maybe the core extensions (auth, bank) would be covered by semver.
That said, since our main app/s are contained in here, they need to be covered by SemVer as well.
So I guess for now, everything should be covered, but I'm not sure about two things:
make install does, is that a breaking change ? I think covering democoin is not that important since we expect to move it out of this repository eventually - when we move it out, maybe we can cover it in the other repository's versioning - but covering the Makefile would be prudent so we don't accidentally break any automatic downstream infrastructure depending on particular binaries (probably gaiad) being installed with make install.
For makefiles I think we need to be precise about what we mean. I think what would be ideal is we have a make install_<x> for each thing we have to install, and then a make install_all, so we could reasonably add a new thing to make install_all or even remove a dependency without breaking semver. If downstream things would be sensitive to such a change, they can use the individual make install_<x> commands, and we just deprecate but not remove install_<x> commands we don't use. I don't think we need similar granularity for make get_vendor_deps.
Per the versioning ADR, are we going with 2 versions here, "App Version" and "API Version", and an app version change would imply an API version change, but not vice-versa?
I'm going to close this issue as there are many discussions happening around versioning and none of them are happening on this issue.
Most helpful comment
I think covering
democoinis not that important since we expect to move it out of this repository eventually - when we move it out, maybe we can cover it in the other repository's versioning - but covering the Makefile would be prudent so we don't accidentally break any automatic downstream infrastructure depending on particular binaries (probablygaiad) being installed withmake install.