Does daml.yaml support full SemVer versions?

I noticed that daml.yaml doesn’t seem to fully support the entire semantic versioning grammar. For example:

  1. daml new test --template create-daml-app
  2. Change the version in daml.yaml to 0.1.0-rc.1 (still a valid semver tag)
  3. daml build

Results in the warning

WARNING: Package versions should have the format ^(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))?)?$.
You may be able to compile packages with different formats, but you will not be able to
use them as dependencies in other projects. Unsupported package names or versions may
start causing compilation errors without warning.

Is the regex for package versions constrained like this by design?

2 Likes

Unfortunately we do not support full semver at this point. This is a limitation we inherit from Haskell so it’s less “by design” and more because our tooling breaks if we allow for something else. I tried fixing that a while back but unfortunately ran into some issues that made it quite challenging so I had to abandon it for the time being. I’d still like to revisit this at some point but no promises on timeline.

4 Likes

Thanks!

1 Like