概要

pakage.jsonなどのバージョン管理ファイルを見ると以下のように表記されている。
package.json

  "react": "^15.3.2"

terraform

terraform {
  required_version = "~> 1.8.0"
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 5.43.0"
    }
  }
}

^や~の指定の仕方により、インストールされるパッケージをコントロールすることができる。 ^はキャレットと~はチルダと呼ばれており、今回はこれについて整理を行いたい。

^ キャレット

パッケージのバージョン番号の中で番左のゼロではない値を変更しない範囲でアップデートを許容する。

バージョン許容範囲
1.6.01.6.0<= version <2.0.0
0.6.00.6.0<= version <0.7.0
0.0.60.0.6<= version <0.0.7

~ チルダ

パッケージが表記されていれば、一個下のバージョンのアップデートを許容する

バージョン許容範囲
1.6.01.6.0<= version <1.6.1
1.61.6.0<= version <1.7.0
11.0.0<= version <2.0.0