Why community plugin version is a required field?

According to docs

Where «plugin version» and «plugin id» must be constant, literal, strings. No other statements are allowed; their presence will cause a compilation error.

Meaning the user MUST provide something like this

plugins {
  id "com.datamaio.scd4j" version "0.7.9"
}

But should not we allow the user to use the latest version if they prefer? Following the same strategy gradle does for dependencies?

For example

plugins {
  id "com.datamaio.scd4j" version "0.7.+"
}

Thanks

Although the lure of always having the latests version available is strong, I prefer having the version fixed. This leads to repeatable builds. Even for normal dependencies I would do the same. There is a plugin that one can use that will notify the user whether a new vesion of a dependency is available.

I totally agree with that, but shouldn’t it be the user’s choice? If gradle
gives user the choice for dynamic picking dependencies. Why not for
plugins?

Just wondering

The plugins {} block is under active development. We have plans to add support for dynamic versions as you have suggested, but we are not yet to that point in the development process. Thanks for the suggestion and your continued patience as we work through our backlog of higher-priority features.