製品のバージョンとその管理方法は常に興味深いものでしたか? 開発のバージョン管理を自動化する方法は? 猫をお願いします。
私の名前はローマです。 私は非常に興味深い会社Softeqの開発者であり、誰もがインスピレーションを得ています。
さまざまなツールを開発するとき、私はすべての開発者がバージョンが何であるか、その意味は何か、開発中にそれを管理する方法を知っているかどうかについて考えました。 それでは、バージョニングとは何かを見てみましょう。
バージョニング
バージョン管理-共通の機能は同じですが、改善、近代化、または個別化された複数の製品リリースの開発と管理。
要するに、バージョンは製品の変更について語っています。 バージョンは製品の変更についてどのように話しますか?
製品バージョンを指定するための文字順序付けシステムをバージョン管理スキームと呼びましょう。 さまざまなソフトウェアのバージョンを追跡するために、 さまざまなバージョン管理スキームが作成されています。
セマンティックバージョニング
多くのバージョン管理スキームがありますが、私たちは毎日セマンティックバージョン管理に直面しています。 セマンティックバージョン管理では、バージョン番号とその変更方法がソースコードの意味と、あるバージョンから別のバージョンに適用された変更を伝えることが特徴です。
セマンティックバージョンの番号がどのように形成されるかを検討してください。
開発中のプロジェクトがあると想像してみましょう。 プロジェクトの主な目的は、図書館の建設を管理することです。 このプロジェクトでは、建物を建設するための資料を注文したり、図書館を建設する段階を管理したりすることができます。 現在、アプリケーションアーキテクチャが設計され、基本的なタスクの実装が実行されています。 ライブラリビルディングを構築するために材料を注文する機能をテストすると、エラーbugが検出されます。 バグ修正が行われ、プロジェクトのパッチバージョンがアップグレードされます。
顧客は、プロジェクトのマーケティング情報の分析を実装する必要性について考えていました。 開発者は、データ分析サービス、現在のアーキテクチャとの統合サービスを巧みかつ迅速に設計しました。 下位互換性に違反しない新しいプロジェクト機能が追加されました。 プロジェクトのマイナーバージョンが上がりました。
プロジェクトは正常に実装されました。 しばらくして、顧客はビジネス自動化のためにこの技術を開発するアイデアを思いつきました。 今後の計画には、完全に新しいサービスが含まれました:ビルダーのチームの形成、社内ソーシャルネットワーク、社内ドキュメントの交換など。 開発者は高い能力を発揮し、しばらくしてプロジェクトアーキテクチャは新しい問題と古い問題の両方を解決するように設計されました。 プロジェクトの新しいアーキテクチャは、後方互換性のない変更を加えました。 プロジェクトのメジャーバージョンが上がりました。
全体像はこのように見えますが、めったに遭遇しません。
そのため、製品のバージョンを紹介します。 しかし、それらを管理する方法は?
バージョン管理自動化ツールを見てみましょう。
バージョン管理
NPM: https : //www.npmjs.com/package/versionings
GitHub: https : //github.com/morozow/versionings
バージョン管理はコマンドラインを使用して行われます:
versionings --semver=[<semantic-version> | patch | prepatch | minor | preminor | premajor | prerelease | major] --branch=[<version-branch-name> | any-hyphen-case-less-100-characters-string] [--push]
製品の現在のバージョンは、プロジェクトの./package.jsonファイルと、Gitタグおよびアップグレードブランチの両方に保存されます。 オートメーションには、さまざまなサードパーティツールと統合する機能があります-バージョン管理は、CLIコマンドを介して行われます。
製品をアップグレードする例を見てみましょう。
アクション
現在のバージョン2.5.3向けにプロジェクトが開発されています。 crm-user-serviceブランチでは、新しいプロジェクトサービスの開発が進行中です。 サービスの開発が完了し、すべての変更がコミットされ、マイナーバージョンを増やす決定が行われました。
versionings --semver=minor --branch=user-service --push
結果
- 新しいブランチ:バージョン/マイナー/ v 2.6.0- ユーザーサービス
-
./package.json
バージョン変更:./package.json
> 2.6.0 - version / minor / v 2.6.0ブランチで新しい製品バージョンをコミットします -user -service
- サービスの実装と製品のバージョンを増やして、新しいブランチをプッシュします。
- バージョン/マイナー/ v 2.6.0ブランチのプルリクエストの作成-user -serviceには、サービスの実装と製品の拡張バージョンが含まれます
備考
- Unix環境向けの自動化ツール
- ライブラリを構築するためのプロジェクト例は、バージョン管理の一般的な観点から抽象的です。
それだけです:)
すべての生産的な気分と素晴らしい一日!