写真:Ross Findon On Unsplash

最近、私は開発者が言うこととその意味についての記事を書きました。 私はそれを書いて多くの楽しみを持っていたし、ポストが生成されたコメントを楽しんだ。 私が書きたかったことはもっとたくさんあり、将来的にはもっと多くのことでフォローアップの投稿をする予定ですが、私は1つの段落の説明よりも

センバーとは? Semverはセマンティックバージョン管理の略です。 セマンティックバージョン管理は、ソフトウェアリリースに意味を与えるための標準化された方法です。 これは、ソフトウェアの作成者が、このリリースについて知っておくべきソフトウェアの重要な情報の消費者に簡潔に伝える方法です。

Semverはピリオドで区切られた三つの数字だけで表されます。 たとえば、この投稿の公開日現在のlodashの現在のバージョンは4.17.11で、githubまたはnpmプロファイルページにあります。Lodeshのバージョンは、lod lod lod lod lod lod lod lod lod lod lod lod lod lod lod lod lod lod lodashのバージョン この番号を使用すると、必要なすべての互換性情報を簡単に伝えることができ、最新のリビジョンにアップグレードする必要があるかどうか、およびそ

各番号は、リビジョンで何が変更されたかに応じて、異なるレベルのリビジョンです。 左から数値を読み取ると、現在のメジャーリリース、現在のメジャーリリースの現在のマイナーリリース、および現在のマイナーリリースの現在のパッチリリース(Major.マイナー。パッチ)。 上記のLodashの例を使用すると、4.17。11は、11thマイナーリリース以来の17thパッチ、4thメジャーリリース以来のパッチを意味します。 数字が増加すると、右のすべての数字はゼロから始まります。

パッチリリースは、このリビジョンのコードの変更が新しい機能やAPIの変更を追加しておらず、以前のバージョンと下位互換性があることを示すために使 最も一般的には、バグ修正を意味するために使用されます。 知っておくべき最も重要なことは、コードが使用方法を変更していないことです。 上記のlodashの例を使用すると、新しいパッチリビジョンが送信された場合、バージョンは4.17になります。12

Minor

マイナーリリースは、機能が追加されたことを示すために使用されますが、それ以外の場合は下位互換性があります。 Lodashの例に従えば、新しい関数が追加されたり、新しいオプションパラメータが既存の関数に追加されたりすると、バージョンは4.18.0になります。 覚えておくべき最も重要なことは、この追加された機能はオプションであり、このバージョンにアップグレードすることにより、ユーザー

Major

のコード変更を必要とすべきではないということです。 これには大幅な改訂が必要です。 これは、機能が削除されたか、機能が変更されたことを意味し、ユーザーが更新を受け入れるためにコードを変更する必要がある可能性があります。 同じ例を使用すると、メジャーリリースは5.0までになります。0

プレリリース

メジャーバージョンがゼロの場合、物事は少し異なります。 ゼロのメジャーバージョン番号は、ソフトウェアが急速に開発されており、安定したAPIを持っていないことを示します。 これはまた、それぞれのマイナーな増加は、破壊的な変化を持つことができます意味します。 これの例は現在バージョン0.57.8にあるReact Nativeですこれは、56からバージョン57にアップグレードするにはコードの変更が必要であり、プロジェクト内の他の依存関係と互換性がない可能性があることを意味します。 パッチの更新はまだ下位互換性を考慮する必要があります

これが重要なのはなぜですか?

このすべてを読んだ後、あなたは”私はライブラリやnpmパッケージを公開する予定はありません。 なぜこれを知ることが役に立つのですか?”まず第一に、私は非常にあなたがパッケージを公開することをお勧めします。 あなたは、プロセスを通過することによって多くのことを学びます。 第二に、これらのライブラリとパッケージを導入する開発者として、それらを最新の状態に保つことが重要であり、このバージョン管理システムは、依存関係を簡単に更新するだけでなく、自動化するための決定を下すのに役立ちます。

npmからパッケージをインストールすると、あなたのパッケージがあることに気付くでしょう。jsonは更新され、最終的には次のようになります:

"dependencies": { "react": "^16.6.3", "react-clean-form": "^2.1.2", "react-dom": "^16.6.3", "styled-components": "^4.1.1"},

あなたは彼らのバージョン番号のそれぞれの前にカラットであることがわかります。 これはnpm(またはyarn)に、バージョン番号と下位互換性のある最新のリリースが必要であることを伝えます。 パッチの更新のみを取得し、マイナーバージョンの更新を取得しないようにしたい場合は、次のようにカラットの代わりにチルダを追加します。"react": "~16.6.3"最後に、バージョン番号を入力するだけで、その特定のバージョンのみが取得されます。 基本的に、あなたはどのレベルの下位互換性に慣れているかを示しています。

この規則により、パッケージマネージャーは賢明な意思決定を行うことができます。 上記のプロジェクトを複製してnpm installを実行する場合。 私はreactバージョン16.6.3を取得しません、私は代わりにバージョン16.7.0を取得します。 これは、16.7.0はまだ16.6.3と下位互換性がありますが、最新のパッチと機能により最新のものであるためです。 Npm updateを実行すると、ルールに従って最新の下位互換性のあるバージョンをインストールするだけでなく、パッケージのバージョン番号もバンプします。jsonも同様です。 Npm audit-fixを実行すると、既知のセキュリティ問題があるパッケージでnpm updateを実行するようにnpmに指示され、最新のパッチを入手できます。 修正があなたの快適さのルールに合わないバージョンにある場合、それはあなたがそれを手動で修正する必要があることを知らせるでしょう。

Semverは強力なツールです。 3つの数字を使用すると、作成者はソフトウェアの消費者に非常に重要な情報を伝えることができます。 これにより、消費者は、快適さのレベルに応じてソフトウェアを最新の状態に保つという面倒な作業を自動化し、より多くの時間と私たちが好きな Semverのより完全な説明のために、私はチェックアウトすることをお勧めしますsemver.org

コメントを残す

メールアドレスが公開されることはありません。