The jar name stays put

Between tags, sbt-dynver-ci keeps one jar name, so an sbt 2 action-cache hit survives the next push.

clean tagdirty treeCI commit0.2.30.2.3-cijar name stays

Install

The coordinate is the last published release. A build whose version contains -ci, +, or SNAPSHOT still shows that release. The artifact is sbt-dynver-ci: one %, not %%.

addSbtPlugin("rocks.earlyeffect" % "sbt-dynver-ci" % "0.2.3")

format

format is the three-argument method DynverCiVersion.format. A clean tag keeps the tag with its prefix dropped. Anything else appends the suffix, so the jar name stays on that string. The cite is cite(DynverCiVersion.format(_, _, _)). The panel is that method. The footer is the definition.

rocks.earlyeffect.sbt.dynverci.DynverCiVersion.format
  /** Testable core: no git types required. */
  def format(isCleanAfterTag: Boolean, versionWithoutPrefix: String, suffix: String): String =
    if isCleanAfterTag then versionWithoutPrefix
    else versionWithoutPrefix + suffix

View source