Skip to main content
IBM Quantum Platform

Qiskit SDK バージョン戦略

Qiskitのバージョン番号はセマンティックバージョニングに従っています。 バージョン番号は、メジャー、マイナー、パッチの3つの主要な要素で構成される。 パッチバージョンです。 例えば、バージョン番号 X.Y.Z の場合、 X がメジャーバージョン、 Y はマイナーバージョン、 Z はパッチバージョンです。

互換性を損なうAPIの変更は、メジャーバージョンのリリース時にのみ行われます。 メジャーバージョンのリリース間隔は、 最短 でも1年とします。 マイナーバージョンでは、 APIの互換性を損なうことなく新機能やバグ修正が導入され、 現在のメジャーバージョンに対してのみ、 定期的に(現在はおよそ3ヶ月ごとに)リリースされます。 パッチバージョンは、 各アクティブサポート対象リリースシリーズの最新マイナーバージョン(つまり、 メジャーバージョン)で特定されたバグに対する修正を提供します。 当社は、一度に最大2つのリリースシリーズをサポートしていますが、これは 新しいメジャーバージョンのリリース後に生じる重複期間中のみ行われ、 その詳細については以下で説明します。


リリーススケジュール

メジャーリリースXのリリースサイクルの例:

Qiskitのリリーススケジュール概要

最新のリリーススケジュールについては、Qiskit GitHub プロジェクトのマイルストーンリストを参照してください。

新メジャー・バージョンのリリースに伴い、旧メジャー・バージョンはバグ修正のみで少なくとも6ヶ月間、セキュリティ修正については1年間サポートされる。 バグフィックスのみであれば少なくとも6ヶ月間、セキュリティフィックスであれば1年間はサポートされます。 この間 この間は、このメジャー・バージョンのパッチ・リリースのみが発表される。 サポートが終了すると、最終パッチがリリースされる。 は、そのメジャー・バージョン・シリーズのサポート終了も記録します。 より長い これは、下流のQiskitユーザーとそのユーザーにコードを移行する機会を与えるためです。 Qiskitコンシューマーとそのユーザーにコードを移行する機会を与えるためです。 Qiskitに依存するダウンストリームライブラリは Qiskitに依存するダウンストリームライブラリは、リリース後すぐにQiskitの最低必要バージョンを新しいメジャーバージョンに上げるべきではありません。 ライブラリのユーザーベースが新しいAPIの変更に移行する時間が必要だからです。 が必要だからです。 Qiskitの前メジャーバージョン Qiskitの前メジャーバージョンのサポート期間を延長することで、下流プロジェクトは次のメジャーバージョンとの互換性を確保する時間が得られます。 次のメジャーバージョンとの互換性を確保する時間が与えられます。 ダウンストリームプロジェクトは 一度に2つのリリースシリーズをサポートすることで、ユーザーに移行経路を提供できる。

セマンティックバージョニングの目的上、QiskitのパブリックAPIは次のように見なされます。 文書化されたモジュール、クラス、関数、メソッドのうち、privateとマークされていないもの。 (アンダースコア _ 接頭辞付き) としてマークされていない文書化されたモジュール、クラス、関数、またはメソッドと見なされます。 ただし 特定の文書化されたAPIについては、明示的な例外を設けることができる。 このような場合、これらのAPIはまだ安定したインターフェイスとはみなされないとして、明確に文書化されます。 このような場合、これらのAPIはまだ安定したインターフェースとはみなされないと明確に文書化され、ユーザーから見える形で警告が発せられます。 このような不安定なインターフェイスを使用する場合には、ユーザーから見える警告が積極的に発せられます。 さらに、状況によっては さらに状況によっては、プライベートとマークされたインターフェイスがパブリックAPIの一部とみなされることもある。 APIの一部とみなされる場合もある。 一般的に、これは次の2つの場合にのみ発生する。 抽象インターフェイスの定義で、サブクラスがインターフェイスの実装を定義する一環としてプライベート・メソッドをオーバーライド/実装することを意図している場合。 をオーバーライド/実装することをサブクラスが意図している場合。 低レベルのメソッドで、安定したインターフェイスを持つが、使用するのは安全でないと考えられるもの、 というのも、クラス/安全性の不変性を維持する責任はユーザーにあるからです。 (この典型的な例は QuantumCircuit._append メソッドである)。

サポートされる Python バージョン、 サポートされる最小 Rust バージョン (ソースから Qiskit をビルドする場合) (ソースからQiskitをビルドする場合)、およびQiskitが使用する Python パッケージの依存関係(依存関係の最小サポートバージョンを含む)は Qiskitが使用するパッケージの依存関係(依存関係の最小サポートバージョンを含む)は後方互換性保証の一部ではありません。 後方互換性保証の一部ではなく、リリース中に変更される可能性があります。 マイナーまたはメジャー バージョンのリリースのみで、Qiskitの使用やビルドに必要な最小要件が引き上げられます。 (新しい依存関係の追加を含む)が、 パッチの修正には新しいバージョンや他の依存関係のサポートが含まれるかもしれません。 Python の新バージョンやその他の依存関係のサポートが含まれる場合があります。 通常 通常、依存関係の最小バージョンは、古いバージョンの依存関係がサポート切れ になったときや、最新リリースとの互換性を維持することが不可能な場合にのみ増加する。 依存関係の最新リリースと古いバージョンとの互換性を維持することが不可能な場合にのみ、最小バージョンは増加します。 の最新リリースと古いバージョンとの互換性を維持することが不可能な場合にのみ行われます。


方式をアップグレード

新しいメジャーバージョンがリリースされた場合、推奨されるアップグレードパス 推奨されるアップグレードパスは、まず以前のメジャーバージョンで最新のマイナーバージョンにアップグレードすることです。 バージョンにアップグレードすることです。 新しいメジャー・バージョンの少し前に、最終的なマイナー・バージョンが発表される。 発行される。 この最終マイナーバージョンリリース X.Y+1.0.0 は以下のものと同等です。 X.Y.0 と同等ですが、新しいメジャー・バージョン・シリーズで行われたAPIの変更に対する警告と非推奨事項が含まれています。 新しいメジャーバージョンシリーズで行われたAPIの変更に対する警告と非推奨があります。

例えば、「 1.0.0 」のリリース直後に、「 0.46.0 」のリリースが 公開されます。 0.46.0 リリースは、 0.45.0 リリースと同等ですが、 1.0.0 リリースの一環として行われたAPIの変更を記載した 追加の非推奨警告が含まれています。 このパターンは、すべてのメジャー バージョンリリースに適用されます。

Qiskitユーザーは、まずこの最終マイナーバージョンにアップグレードしてください。 にアップグレードしてください。 の使い方を調整してください。 以前の 旧メジャーバージョンは、アップグレードに十分な時間を与えるため、少なくとも6ヶ月間はサポートされる。 アップグレードに十分な時間を与えるためです。 これを管理する典型的なパターンは、最大バージョンを固定し、互換性が確認されるまで次のメジャーリリースシリーズを使用しないようにすることだ。 互換性が確認できるまで、次のメジャー・リリース・シリーズの使用を避けることだ。 たとえば、現在の Qiskit のメジャーバージョンが 1 であるときに要件ファイルで qiskit<2 を指定すると、Qiskit のバージョンは確実に 1 になります。 Qiskitのメジャーバージョンが1である場合に要件ファイルに。 を使用していることを保証します。

次のメジャーバージョンより低いバージョンを上限とする。 メジャーバージョンのリリース前に、非推奨の警告が表示されるようにする。 メジャーバージョンのリリース前に キャップがない場合、 pip 。 をインストールする。

QPYシリアライゼーションフォーマットは後方互換性があり、新しいQiskitリリースは常に以前のリリースで生成されたQPYファイルをロードすることができます。 ファイルを読み込むことができます。 しかし、このフォーマットは前方互換性がないため、原則として、古いリリースを使用して新しいバージョンのQiskitで生成されたQPYファイルを読み込むことはできません。 古いリリースを使用して新しいバージョンのQiskitで生成されたQPYファイルをロードすることはできません。 メジャーバージョンリリース間でのユーザーの移行を容易にするために qiskit.qpy.dump() この関数は、 X.0.0X-1.Y.0 リリース(ここで、 Y は、そのシリーズの最後のマイナーバージョンです)の間にある、少なくとも1つのオーバーラップバージョンを常にサポートします。 シリーズ)。 パラメータ qiskit.qpy.dump(..., version=...) 、新しいリリースから両方のメジャー・バージョンでロード可能なQPYフォーマット・ファイルを保存できるようになる。 を保存できるようになります。 詳細は RFC 0020を参照。


プレリリース

マイナーバージョンとメジャーバージョンのリリースごとに、Qiskitは互換性のあるプレリリースを発行しています。 と互換性があります。 PEP440. 一般的に X.Y.0rc1 という形のリリース候補である。 rc リリース は最終的なAPIサーフェスを持ち、将来のリリースをテストするために使用される。

PEP440 のプレリリース版に付くサフィックス(例: a, b, など pre)のいずれかが 公開された場合、そのバージョンは リリース rc 版と同じ保証は適用されず、あくまで プレビュー版であることにご留意ください。 これらのプレリリース版と、 そのバージョン番号の正式リリース版との間で、APIが変更される可能性があります。 たとえば、 は 最終版とは異なるAPIを持っているX.0.0pre1可能性があります X.0.0


リリース後

リリースのパッケージに問題がある場合、ポストリリースが発行されることがある。 発行されるかもしれない。 これらは X.Y.Z.1 。 整数は、 X.Y.Z リリース後の最初のリリースであることを示す。 たとえば、qiskit-terra (Qiskitのレガシーパッケージ名) 0.25.2 リリースではsdistパッケージのパブリッシングに問題がありました。 0.25.2.1 が発行されました。 コードは同一で 0.25.2.1 リリースのパッケージ問題を修正しただけだ。


寄稿者が非推奨をマークする方法

ソースコードに非推奨の記述を追加する方法については、 Qiskit SDK リポジトリにある非推奨ガイドを参照してください。

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。