Idea ID: 2703418

Add option in Studio to disable auto-incrementing project versions

Status : Waiting for Votes
over 1 year ago

If I release version 1.0.1 of a project, Studio automatically updates the project version to 1.0.2-SNAPSHOT.

But why? Essentially, the content of 1.0.1 is identical to the content of 1.0.2-SNAPSHOT, only the version numbers are different. This does not reflect reality. 1.0.2-SNAPSHOT doesn't really exist yet, because no one has started working on the next development version. If development of 1.0.2 is never started, the project's version will never be accurate.

In other words, the act of releasing a project does not suddenly make it a development version. It still contains the exact same content as the release you just made, so it should retain the release version, not the SNAPSHOT.

Only when you start making changes does the project become the next development version (SNAPSHOT).

This impacts dependency resolution, as the SNAPSHOT versions are gathered, since Studio leaves released projects at the next development version.  But these development versions don't exist yet, so gathered dependency versions are always incorrect, and must be manually corrected, which can be a huge burden. Or, you have to manually adjust the auto-incremented versions each time you release, which is cumbersome and error prone in itself.

We typically have several projects open in Studio at any given time. We don't import our release Content Packs into Studio's dependencies, as we do for Base or MicroFocus Solutions, for example. Doing so would be unmanageable, since every single release would need to be downloaded and imported by every flow author. It's much easier to leave projects open, and SCM updates will keep them in sync automatically. This is especially true for frequently updated dependent projects.

Conceivably, auto-incrementing could be useful for some users, but not in our case. Studio should have an option to disable auto-incrementing, instead of forcing you into a particular development workflow. In fact, even OOSHA, despite its shortcomings (ignores dependencies, excludes pom.xml from CP, no SCM), accepts --incrementVersion false.