What does the tilde (~) mean in my composer.json file?

后端 未结 3 2021
忘掉有多难
忘掉有多难 2020-12-23 00:16

I have this line in my composer.json file:

\"require\": {
    ...
    \"friendsofsymfony/user-bundle\": \"~2.0@dev\",
    ...
},

What does

相关标签:
3条回答
  • 2020-12-23 00:48

    Tilde means next significant release. In your case, it is equivalent to >= 2.0, < 3.0.

    The full explanation is at Tilde Version Range docs page:

    The ~ operator is best explained by example: ~1.2 is equivalent to >=1.2 <2.0.0, while ~1.2.3 is equivalent to >=1.2.3 <1.3.0.

    Another way of looking at it is that using ~ specifies a minimum version, but allows the last digit specified to go up.

    Seldeak's below comment is a simple sum up explanation of the Composer documentation.

    0 讨论(0)
  • 2020-12-23 00:54

    Tilde operator is useful for the projects that version their libraries using semantic versioning scheme.

    Semantic versioning is more of a guideline that evaluates to the next significant release.

    For Composer, this operator means to allow minor releases (that can include patches) without allowing a major version (that may not be backward compatible) while installing and updating.

    For example: ~4.1 will allow project versions >=4.1 but <5.0.

    Credits: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php

    0 讨论(0)
  • 2020-12-23 00:59

    The tilde ~ in ~2.0@dev exactly mean to go up for immediate version :

    For Example :

    If we have ~2.0@dev it goes to up immediate next version => ~2.x@dev

    0 讨论(0)
提交回复
热议问题