Search Unity

  1. If you have experience with import & exporting custom (.unitypackage) packages, please help complete a survey (open until May 15, 2024).
    Dismiss Notice
  2. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice

0.6.6-preview breaking changes ignores semantic versioning rules?

Discussion in 'Addressables' started by Prodigga, Mar 25, 2019.

  1. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    Hi there

    I only just got around to reading the update/release notes. Ive been a little busy :)

    The changes introduced in the latest 0.6.6-preview include some breaking changes. Don't the semantic versioning rules dictate that a minor update is only ok if new features are added in in a backwards compatible manor?

    Based on these rules, the 0.6.6 should have been a major update not a minor.

    Normally I wouldn't care, because version numbers can mean whatever the developer wants it to mean. But with semantic versioning each number has a defined purpose/role. It will be especially important when users can define dependencies in their manifest using wildcards, and depend on these rules being followed.

    LWRP was in preview until major 5 (or 6? I'm on my phone, hard to check right now! :) ) so we shouldn't feel precious about "1.0" or "2.0". These versions shouldn't be treated as milestones as they classically are. With semantic versioning they are purely functional.

    Disclaimer: I could be wrong here! I don't maintain any APIs myself so I don't make use of semantic versioning in my own projects. So feel free to correct me and teach me! :)

    Side note: Excited to try out the new version of addressables now that it is out. Congrats on the release Devs!
     
  2. JoakimLindqvist

    JoakimLindqvist

    Joined:
    Apr 4, 2018
    Posts:
    1
    Hey

    Semver is traditionally defined as is on https://semver.org/ which means that the description you highlighted above is correct, though there are quite a few caveats and clarifications that are relevant especially in the releases before a public api as been defined (1.0.0).

    The key section here is #4 https://semver.org/#spec-item-4
    Which means it is completely okay to break the public API as much as the developers want (you typically still want to reduce churn for ease of adoption). Essentially when you see the 0 version assume that the API can change at any time and to very large degrees.

    Also relevant is section #9 https://semver.org/#spec-item-9
    As this is a version released with -preview it is a pre-release and pre-release version do not need to follow the conventions either (though in this case they are not in the wrong even with a proper release)
     
    unity_bill and Prodigga like this.