[Flutter]パッケージのバージョンコード付与の原則(Sementic Versioning)

Flutterには、外部に公開されている便利な機能のプログラムとして様々な「パッケージ(Package)」が用意されており、

パッケージを使う際には、pubspec.yamlファイルに以下のような感じでバージョンコードを設定しますが(以下の例では「9.5.2」)、

blank

このバージョンコードの付け方は、「セマンティックバージョニング(Semantic Versioning)」という規則に従った「X.Y.Z」形式となっており、

  • 「X」を「メジャーバージョン」
  • 「Y」を「マイナーバージョン」
  • 「Z」を「パッチバージョン」

と呼びます。

そして、バージョンを上げる際は、

  • APIの変更に互換性のない場合はメジャーバージョンを
  • 後方互換性があり機能性を追加した場合はマイナーバージョンを
  • 後方互換性を伴うバグ修正をした場合はパッチバージョンを

上げることになっています。

たとえば、バージョンコードが「1.2.0」のパッケージがあった場合、

  • APIの変更に互換性のない場合は「2.0.0」に
  • 後方互換性があり機能性を追加した場合は「1.3.0」に
  • 後方互換性を伴うバグ修正をした場合は「1.2.1」

となります。

ただし、メジャーバージョンの数値が1以上でない(0の場合)は、まだ安定版ではない開発段階のパッケージであることを意味しており、その場合にAPIの変更に互換性のない場合の変更がある場合は、メジャーバージョンではなくマイナーバージョンが変更されます(メジャーバージョンは「0」のまま変更できないので)。

Although semantic versioning doesn’t promise any compatibility between versions prior to 1.0.0, the Dart community convention is to treat those versions semantically as well. The interpretation of each number is just shifted down one slot: going from 0.1.2 to 0.2.0 indicates a breaking change, going to 0.1.3 indicates a new feature, and going to 0.1.2+1 indicates a change that doesn’t affect the public API. 

(セマンティックバージョニングは 1.0.0 より前のバージョンとの互換性を約束するものではありませんが、Dart コミュニティの慣例では、それらのバージョンもセマンティックに扱います。0.1.2 から 0.2.0 へは破格の変更、 0.1.3 へは新機能、 0.1.2+1 へは公開 API に影響しない変更というように、それぞれの数字の解釈が一段落しているだけです)。

(詳しくは、以下の動画で解説していますので、よろしければご覧ください)

blank

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
blank

はじめての方へ

blank
みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

おすすめコンテンツ

プログラミングを学ぶとどんないいことがあるのか
みんプロ式を選んでいただける6つの理由
ぼくの人生挫折ヒストリー(代表者プロフィール)
ぼくのプログラミング挫折ヒストリー(無料メール講座・6大特典付き)
今最も注目のアプリ開発ツール「Flutter(フラッター)」ミニ動画講座

みんプロ作成アプリ

blank
blank
blank
blank
blank

みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎
blank
blank

TOP