2017-10-27 7 views
-1

を使用して:「NPMの初期化」と新しいのNode.jsプロジェクトを作成する場合は、次のように最初に実行される非semver基準

npm init 

そしてpackage.jsonファイルを初期化するのに役立ちます一連の質問があります。それらの質問の1つは約versionです。

回答として提供されるバージョン番号は、厳密にsemver標準に準拠する必要があります。さて、セヴァーを守らない別のバージョン管理標準を使用したいのですが?異なるバージョンの標準を使用して実施する方法新しいバージョン標準を適用するためにセムの代わりに使用される新しい標準の新しい規則を提供することもできますか?

ありがとうございました。

+0

具体的にはどのバージョン管理方式を使用しますか? – jwdonahue

+0

@jwdonahue - 私たちのデバイスでは、基本的に年代順のスキーム "インハウス"バージョン管理スキームです。 – Greeso

+0

あなたのパッケージは決して野生に放出されませんか? – jwdonahue

答えて

1

特定のパッケージング/配布ツールの使用に固有の契約に違反することは決してありません。この場合、npmにはSemVerが必要です。これは、簡単に自動化されたパブリッシャとコンシューマ間の有用な通信チャネルを提供するからです。あなたのバージョニングスキームはバグフィックス、新機能、および変更点を区別しないので、npmをパッケージングスキームとして使用する必要がある場合は、SemVerへのマッピングを適用することができます。私はこれを達成するために考えることができる2つの方法があります。

  1. すべてのバージョンで0.0.1を使用し、実際のシーケンシャルバージョンを含む-prereleaseを追加します。これらは、点在するプレリリース項目のそれぞれが純粋な数字であり、セマンティックバージョニングの点では常に合法的であることを前提として並べ替えられます。
  2. ユーザー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ルールが懸念しているとして、彼らは文字通り等しいです。

+0

ありがとうございました。私はこれが好き。これは回避策です。私はバージョニングの実際のルールを変更する方法を好みましたが、これはうまくいきます。 – Greeso

+0

単一のエコシステム内でそのような自由を可能にするために、パッケージツールによってサポートされるためには、何らかの形式のバージョンスキーマが必要です。それは間違いなく進行中の仕事です、私は約束します。 – jwdonahue

+0

ああ、あなたはnpmチームの一員ですか?これはすばらしいです:) – Greeso

関連する問題