特定のパッケージング/配布ツールの使用に固有の契約に違反することは決してありません。この場合、npmにはSemVerが必要です。これは、簡単に自動化されたパブリッシャとコンシューマ間の有用な通信チャネルを提供するからです。あなたのバージョニングスキームはバグフィックス、新機能、および変更点を区別しないので、npmをパッケージングスキームとして使用する必要がある場合は、SemVerへのマッピングを適用することができます。私はこれを達成するために考えることができる2つの方法があります。
- すべてのバージョンで0.0.1を使用し、実際のシーケンシャルバージョンを含む-prereleaseを追加します。これらは、点在するプレリリース項目のそれぞれが純粋な数字であり、セマンティックバージョニングの点では常に合法的であることを前提として並べ替えられます。
- ユーザー0.0.X(Xはバージョン管理スキームの最も重要なフィールドです)、残りの値を-prereleaseタグに純粋な数値のドット付きフィールドとして置きます。
これらのスキームのいずれかは正当なSemVerであり、新しいバージョンが潜在的に大きな変更であることをすべての消費者に通知します。 SemVerの接頭辞0.0は、基本的にすべてのベットがオフであることを意味します。このようにして、リスクを受け入れる消費者は自動的に最新のバージョンに更新され、そのようなリスクを受け入れたくない人は避けることができます。あなたのコメントに基づいて
例:
0.0.1-2018.01
0.0.1-2018.02
0.0.1-2019.03
0.0.2018-01
0.0.2018-02
0.0.2019-03
上記の例を提供した後、私は個人的には最初の1秒以上の変化を好むが、限りSemVerルールが懸念しているとして、彼らは文字通り等しいです。
具体的にはどのバージョン管理方式を使用しますか? – jwdonahue
@jwdonahue - 私たちのデバイスでは、基本的に年代順のスキーム "インハウス"バージョン管理スキームです。 – Greeso
あなたのパッケージは決して野生に放出されませんか? – jwdonahue