Git role in Cloudflow

When trying the Wind Turbine example from Cloudflow.io, the sbt command ‘verifyBlueprint’ returns the following output:

sensor-data> verifyBlueprint
fatal: not a git repository (or any of the parent directories): .git
[info] Streamlet ‘sensordata.SensorDataToMetrics’ found
[info] Streamlet ‘sensordata.MetricsValidation’ found
[info] Streamlet ‘sensordata.SensorDataHttpIngress’ found
[info] Streamlet ‘sensordata.ValidMetricLogger’ found
[info] Streamlet ‘sensordata.InvalidMetricLogger’ found
[error] stack trace is suppressed; run last cloudflowBuildNumber for the full output
[error] (cloudflowBuildNumber) The current project is not a valid Git project.
[error] Total time: 2 s, completed Jan 13, 2020 9:45:33 AM

Am I missing something or is it necessary for a Cloudflow project to be a git project?

It is indeed currently necessary for the project to be a Git project. This can certainly be documented better but the reasons are as follows:

  • the plugin needs to make sure that the image it will produce will be as unique as possible, e.g. the tag should change when the code changes
  • it would be good if the resulting image could be traced back to a certain version of the source code
  • so we decided to generate a version number based on Git status.

We could indeed fall back to using timestamps if git were not available. That has been on the wish list for a while but not attached to a very high priority so far. We have discussed switching to the sbt-dynver plugin but didn’t so far because it did not support our exact current behavior.

I hope that explains the reasoning behind this dependency. Will this be a problem for you use case?

Age

Thanks Age.
It is not a problem now that I know it ;-)
It would be nice to add a sentence to mention this dependency in the “Preparing a development environment” section.

I’ve just created a PR on the Cloudflow docs to make the dependency on git more clear. Perhaps you could have a look?

Age

Looks good. Thanks