提案されたビルドシステム(Gradle / Artifactory / Jenkins / Chef)をシニアアーキテクトの1人に説明していましたが、彼は私に同意しませんでしたが、実際に計量するのに十分な経験はありませんでした。
このプロジェクトは、他のチームが再利用するアーティファクトとしてJavaライブラリ(JAR)を構築します。バージョン管理には、次のセマンティックアプローチを使用します。
<major>.<minor>.<patch>
どこにpatch
バグ/緊急フィックスを示し、minor
下位互換性リリースを示しており、major
いずれかのAPIの大規模なリファクタリングおよび/または互換性のない変更を示します。
ここでの配信に関しては、私が望むものです。開発者がコードをコミットします。これにより、QA / TEST環境へのビルドがトリガーされます。一部のテストは実行されます(一部は自動化され、一部は手動)。すべてのテストに合格すると、プロダクションビルドがJARを社内リポジトリに公開します。この時点までに、JARは適切にバージョン管理される必要があり、build.number
CIツールによって自動的に生成および提供されるものを使用して、パッチ番号として機能させることを考えていました。
したがって、バージョン管理は実際には次のようになります。
<major>.<minor>.<build.number>
ここでも、build.number
CIツールによって提供される場所。
アーキテクトはこれを却下し、CIビルド番号の使用はセマンティックバージョニングの「乱用」であると述べました。
私の質問は次のとおりです。これは正しいですか?もしそうでなければ、なぜですか?