Support for non-semver Planet tag

Hello, why does Planet require a semver compliant tag? Docker doesn’t even support this fully (i.e. v1.0.0-123+abc does not work due to +). We have various version tags in our build system, but non currently compliant with Docker’s limited idea of what Semver should be.

I’d like to use tags which are not semver compliant if possible (i.e. tag: myapp-v0.0.1-123-abcd) and yet still supported by Docker, but the Tele build yells at me. Has support for this come up as a topic before?

I haven’t seen this question come up before.

Gravity uses semver tags to detect whether an individual system component, such as planet, needs to be upgraded. This allows the upgrade process to skip steps that don’t need to occur, which greatly speeds up certain types of patches, by not having to drain and restart each node on a cluster with the same version of planet. By using semver it also allows the upgrade to detect and possibly block certain types of inadvertent errors, such as inadvertently moving a component that holds internal state backwards in version outside of running a rollback process.

An older version that tries to load the internal state of a newer version may experience unexpected errors or issues, and we want to do our best to have the software try and minimize these types of problems.

Thanks Kevin. If we are creating our own customized Planet and utilize a Docker tag such as “1.0.0-abcde123”, which includes a commit hash, will this be supported as normal?

It should be, IIRC that code just calls the golang semver library, so as long as it’s semver compatible format gravity should accept it.