SCM etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SCM etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Haziran 2021 Pazartesi

Software Configuration Management Süreci - Semantic Versioning

Giriş
Açıklaması şöyle
According to semantic versioning, a version number has 03 parts as MAJOR, MINOR and PATCH.

MAJOR version change: Incremented when you make incompatible API changes. Consumers that use the service will be affected.
MINOR version change: when you add functionality in a backwards-compatible manner.
PATCH version change: when you make backwards-compatible bug fixes.
Örnek
Şöyle yaparız
1.2.3
^ ^ ^
| | |
| | +--- Minor bugs, spelling mistakes, etc.
| +----- Minor features, major bug fixes, etc.
+------- Major version, UX changes, file format changes, etc.
MAJOR Version Change
Geriye uyumluluk kırılabilir

MINOR Version Change
Geriye uyumlu yeni API veya bir şey bozmayan yeni REST noktası eklenebilir

PATCH Version Change
Hatalar düzeltilince değiştirilir

Long Term Support
Long Term Support (LTS) doğası gereği hem PATCH Version Change hem de MINOR Version Change içeriyor. 

24 Ağustos 2015 Pazartesi

Software Configuration Management Süreci

Software Configuration Management (SCM) CMMI, MILSTD 498 gibi yazılım süreçlerinde bulunan bir süreç. SCM genellikle şu alt süreçlerden oluşur

Initialization
Projenin başlangıcında SCM altyapısının planlanması ve kurulması. Örneğin SVN ağacının aşağıdaki gibi standart yapılması
project
 - trunk
 - branches
 - tags
Dokümanların nereye konulacağı her zaman sorun olur. Bazı projelerde trunk altına konulur.
trunk > Development > code
                                                > Lib1
                                                > Lib2
                                                > App1
                                                > App2

                                   > contint
                                                > Jenkins
                                                > scripts
                                    > Documents (Tüm süreç dokümanları)
                                    > Models
                                    > Test
                                    > Tools
Branch'e Ne Zaman Çıkılır
Bu konuda yazılı bir politika görmedim. Ama bence yazılı olması lazım. Genelde müşteriye verilen sürüm için bir branch açılıyor.

Release Management and Delivery

Configuration Index (CI) listesine dahil edilecek yazılım parçalarının ve üretilen belgelerin tanımlanması, baseline alınıp yayınlanması (release)

Üretilen belgelere hangi revizyonda olduklarını ve değişiklik tarihçesini gösteren kapak sayfası eklenir.

Yazılım İçin Versiyon Numarası
Kod için hangi versiyonlama sisteminin kullanıldığının tanımlı olması gerekir. Bu sistem için evrensel kabul gören bir şey yok. Herkes kendine göre bir sistem uydurmuş.

Ben semantic versioning sistemini seviyorum. Bu sistem 3 haneden oluşuyor.

Semantic Versioning
Semantic Versioning yazısına taşıdım

Microsoft Versioning
.Net versiyonlama sistemi ise 4 haneden oluşuyor.
Major.Minor.Revision. Build

Change Management
SCM ile takip edilen veriye gelen değişiklik isteği ve değişikliklerin kontrollü olması gerekir. Gelen istekler bir Değişikli Takip Aracı (Change Tracking Tool) ile kayıt altına alınır. İstekler çözülür, doğrulanır  ve onaylanır. Tüm bu faaliyetler SCM planında tarif edilir.

Backup and Recovery
Yedeklenecek verilerin tanımlanması ve listening IT'ye iletilmesi. Yedekten geri dönüşün mümkün olduğunun doğrulanması.

Reports and Reviews
İstek veya süreçte tanımlı peryodlarda rapor ve sunumların hazırlanması.

CM istenildiği zaman aşağıdakine benzer bir Konfigürasyon Durum Listesi verebilmeli.

No                              SVIL No   Revizyon  Son Yayın Tarihi   Son Durum
XX-XXX-X-S            9                 -(P2)       19.04.2011          20.04.2011 tarihinde onaylandı

Configuration Audits
Konfigürasyon kayıtlarının, doğru veriyi tuttuğunun kontrol edilmesi. Configuration Management System'ın (örneğin SVN) yapısal bütünlüğünün doğrulanması. CMS'teki verinin tam ve doğru olduğunun kontrolü.

Interface Control
Altyükleniciler ile arayüzü için gerekli faaliyetler

Archiving
Proje bitiminde CI listesindeki verinin arşivlenmesi.

Bir Developer İle Configuration Manager Hangi Ortak Araçları Kullanır?
Developer'lar genellikle Configuration Manager'ın ne yaptığını anlamazlar. Kullandıkları araçlar da ortak olmadıkları için CM'in yaptıkları başka bir dünyadadır. Developer ile CM en fazla Issue Tracker (örneğin Jira) ve Revision Control (örneğin SVN) araçlarını ortak kullanırlar.