Maven artifact version for patches

前端 未结 3 1964
南笙
南笙 2021-02-09 19:32

I\'m currently working on Maven tools for Project Dash. One of the open issues is how to handle mistakes.

Maven central says: Nothing published ever changes. This is bec

3条回答
  •  灰色年华
    2021-02-09 20:11

    The convention for version numbers is major.minor.build.

    major is incremented when the public interface changes incompatibly. For example, a method is removed, or its signature changes. Clients using your library need to take care when using a library with a different major version, because things may break.

    minor is incremented when the public interface changes in a compatible way. For example, a method is added. Clients do not need to worry about about using the new version, as all the functions they are used to seeing will still be there and act the same.

    build is incremented when the implementation of a function changes, but no signatures are added or removed. For example, you found a bug and fixed it. Clients should probably update to the new version, but if it doesn't work because they depended on the broken behavior, they can easily downgrade.

    The tricky issue here is that it sounds like you are modifying code written and released by somebody else. The convention here, as I have seen it, is to postfix the version number with either -yourname-version or just -version. For example, linux-image-2.6.28-27 is a likely name of a Ubuntu kernel image.

    As Maven uses dashes to differentiate between artifact coordinates, however, I would recommend (very long-windedly, apparently) to just add .version to avoid confusing it. So 3.6.2.1 in this case.

提交回复
热议问题