初期バージョンとして何を使用しますか?[閉まっている]


122

私は通常、バージョン1.0.0でプロジェクトを開始します。いくつかのものが揃ったらすぐに1.0.0としてリリースし、1.1.0に進みます。

しかし、これは私が書いたほとんどのものの使用可能ですが、完全には機能しない完全なバージョン1.0.0につながります。次に、機能を追加して、1.6.0あたりの適切なバージョンを取得します。多くのプロジェクトはバージョン0.1.0で始まります。バージョン1.0.0と同じように使用できます。

あなたは何をすることを提案しますか?1.0.0または0.1.0から始めますか?

ちなみに最後の数字はバグ修正リリース用です。私の1.0.0を1.0と、0.1.0を0.1と考えると簡単です。


1
私は「セマンティックバージョニング」(semver.org)について知りました。それがほとんど私がやりたいことです。ただし、私はAPIを作成しておらず、APIについて話しているため、1.0.0のアドバイスは実際には適用されません。
Noarth


回答:


-23

私のバージョン管理はセットアップによって行われます。古いバージョンを置き換えたいので、意味のあるジャンプで増やし続けます。

ただし、特にコードを公開している場合は特に、バージョニングがお客様によって行われることがあります。

それがあなたの呼び出しである場合、あなたにとって最も効果的なものを何でもしてください。1.0より前のバージョンでいくつか問題があったので、それから始めます。


あなたは本当にあなたの答えで何も説明しません。どのような問題が発生したかについては触れないでください。そのため、その点について話し合います。OPの場合とは異なり、バージョンが顧客によって駆動される時期と理由を説明しません。また、バージョン管理がセットアップによってどのように、そしてなぜ行われるのか説明しません。それはどういう意味ですか、答えに重要な意味で?明確に定義された回答には、各決定の短所と長所が含まれている必要があります。曖昧な推論のみが含まれています:)。
Eksapsy

223

セマンティックバージョン2.0.0標準氏は述べています:

最も簡単なことは、最初の開発リリースを0.1.0から開始し、その後のリリースごとにマイナーバージョンを増分することです。

0.3.0から1.0.0にまっすぐ進むのは問題ありません。また、0.23.0でも問題ありません。以前に公開されたバージョンがあったことを示唆しているため、0.4.0から開始することはややお勧めできません。

さらに、それ0.y.zは迅速な反復のために取っておかれているので、最初の開発(したがって多くの重大な変更)によって、142.6.0のようなばかげたことに気が付かないことに注意してください。メジャーバージョンをバンプするのではなく、1.0.0をリリースするまで、重大な変更ごとにマイナーバージョンをバンプします。

メジャーバージョンゼロ(0.yz)は初期開発用です。いつでも何でも変わるかもしれません。パブリックAPIは安定していると見なすべきではありません。


これは受け入れられる答えでなければなりません。16票の回答が適切な回答として見られなかった
Nader Ghanbari

npmを使用する場合、落とし穴があります。0から始めると、package.jsonのキャレット記号「^」の動作が異なります。docs.npmjs.com/misc/semver#caret-ranges-123-025-004 ^ 0の代わりに0.xを使用できます。このシナリオのパッケージjson。したがって、1.xの方が起動と使用が少し簡単です。
サム

8

バージョン番号は完全にあなた次第です。自分にとって意味のあること行い、一貫性を保つ。0、または0.0、または1.0、または1.1から始める必要があると言う人はいません。

優れたプログラマーが実際にバージョン番号付けシステムをローカルのジョークとして使用しています。例(ウィキペディア):

TeXはバージョン3以降、特異なバージョン番号付けシステムを使用しており、バージョン番号は小数点の最後に余分な数字を追加することで示され、バージョン番号は漸近的にπに近づきます。これはTeXが非常に安定していて、マイナーな更新のみが予想されるという事実を反映しています。TeXの現在のバージョンは3.1415926です。最終更新日は2008年3月です

METAFONTの場合:

MetafontはTeXと同様のバージョン管理システムを備えており、リビジョンごとに漸近的に数値がeに近づきます。

最後に、かなりバージョン番号ではありませんが、同様に興味深いことですが、Googleの最初の公募(IPO)がSECに$ 2,718,281,828(e〜2.718 281 828を通知)として提出されました。

私の要点は、群衆を追う必要があるとは感じないことです。創造的で一貫している。


6

ここではさまざまな要因が関係してくると思います。バージョン番号の心理的/マーケティングへの影響(バージョン番号が頻繁に増える=> $$$が増える、0.99ベータ版を購入したくないなど)を考慮する必要があります。「ロジック」バージョン番号は、巨大なチームで作業するときに役立ちます。

そして私は、不安定なバージョンでは奇数を、安定版では偶数をLinuxの方法で使うのが好きです。


1

私は最初の使用可能な準備が整っているが機能完全バージョンではない場合、通常、それが機能完全バージョンにどの程度進んでいるかを判断しようとします。たとえば、最初の使用可能バージョンが33%機能完全である場合、バージョン番号を0.3.0または同様。次に、機能に向かって進むと、完全に対応するバージョンに同様の方法で番号が付けられます。

しかし、過去の機能に移行したら、完全なバージョン管理を変更する必要があります


3
それはどういうわけか0.9.0までしか行くことができないことを意味しますが、私は0.25.0のように進行する多くのプロジェクトを知っています。
Noarth

私は小さな増分変更とバグ修正に最後の桁のセットを使用する傾向があり、かなり大きな変更には中央の桁のセットを保持するため、真ん中の数字を2桁にする必要はありません
Tristan

1

npmパッケージのバージョン番号を選択するときは、package.json semverの範囲にリストされている依存関係がv1.0.0より前では機能しないことに注意してください。あれは、

"dependencies": {
    "my-package": "^0.5"
}

に相当

"dependencies": {
    "my-package": "0.5"
}

semverの範囲を使用できるようにしたい場合、または他の人に使用を許可したい場合は、1.0.0から開始することができます。


面白い。Semverの範囲が1.0.0未満で機能しない理由(または場所)に関する詳細情報はありますか?npmレジストリで使用0.0.xしているパッケージがかなりあるため。
Remi

npmの人々がその決定をした理由、またはnpmシステムのどこでそれが行われたのか、1未満のバージョンのサーバー範囲をサポートするために何を変更する必要があるのか​​わかりません。私も知りたいと思います。
ヘンリー2018年

3
彼らがその決定をしたの^は、「バージョンと互換性がある」という意味です。詳細はこちら。semver 0.y.zは、初期開発用であり、での変更yまたはz下位互換性がない可能性があります。あなたの例では^0.5 := 0.5 := 0.5.x、それで範囲です。キャレット範囲が範囲内で機能しない場合は、キャレット範囲0.y.zに加えて、コンパレータ、ハイフン、x、およびチルドの範囲を使用できます。
dosentmatter

0

通常、バージョン管理はプログラマにとって何らかの意味があります。メジャー数を増やすことは、後方互換性を妨げる大きな変更を示している可能性があります。バージョン番号の他の番号は、より小さな機能強化またはバグ修正を示す場合があります。

バージョン0.6.5のリングが不完全であることが心配な場合は、バージョン1.0で販売することをお勧めします。マーケティングバージョン番号は、内部バージョン番号と一致する必要はありません。たとえば、Windows 7のバージョン番号は6.1です。

私の個人的な好みは0.1.0から始めてそこから行くことです。


0

プロジェクトによって異なります。単純なコマンドラインツールの場合、通常は0.9 [.0]から始めます。完成に近い(またはベータテストの準備ができている)場合にのみ、リリースまたはパッキングを検討するためです。より複雑なプロジェクトは、0.1 [.0]から始まり、 1.0を見ることさえない人もいます。私は1.0をリリースバージョン(または少なくともローカルでテストされたベータ版またはリリース候補)と見なし、それに応じて計画します。

チームプロジェクトでは、最初のバージョンタグを付けた人が誰でも決定できます。


0

0.1.0から始めて、そこから上に移動します。これは私がXploration By Adrianに適合させたものですが、初期の頃は非常に散発的で、1.0.0、0.0.1、およびその他いくつかを使用していました。しかし、0.1.0から始めてそこから始めることをお勧めします。

Semverごとに、abcでaとcをA用に予約します。最初の公式リリースとCです。バグ修正とパッチ。これは、メジャーバージョンが一般的に古いコードを破壊するためです。そして、パッチは単にバグを修正します。これはすべて個人的な好みであり、0.99.0は1.0.0に移動する必要があるという意味ではありません。0.218.42に完全に移動するものをいくつか見ました。


-1

Arrietaが以前に正しくコメントしたように、バージョン番号はあなたにとって意味があるはずです。

次のようなものかもしれません:最初の#は市長のリリース、2番目の#は同じ市長のリリースでいくつかの機能が追加されています。

1.3.2 => 1つ目のリリース。より多くの機能といくつかのバグが修正されています。

ただし、最終ユーザーの場合、最終リリースでは多数が使用されます。

たとえば、Corel 8 for 8.0.0、8.0.1、8.2.2など。Corel9 for 9.0.0 ...など。

そして主に、たとえばCorel 15.0.2ではなくCorel X5などのマーケティング戦略についてです。

バージョン番号があなたのものか、クライアントのものかによって異なります。


-4

0.0.0から始めて、そこから先に進みます。


4
それは実際に0.0.0リリースを行うことを意味しますか?私がリリースする最初の番号から始めます。
Noarth

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.