Satoshi Asami, Peter Wemm, and David O’Brien tarafından yazılmıştır.
Şimdiye kadar yazılımlarda olmayan bir bir ortak kütüphane desteğini port ağacına ekliyorsanız , versiyon numaralarışu kuralları takip etmelidir.Sürümlerin numaralandırılmasında son hane sürüm ile direk bağlantılıdeğildir.
Sürümler 1.0 dan başlar
Geriye dönük bir uyumluluğu olan değişiklikler minor numarası arttırılır.(ELF sistemleri bu numarayıihmal ediyor.)
Eğer uyum sağlanamıyor ise major numarasıarttırılır.
Mesela eğer siz içerideki küçük hatalarıgideren bir değişiklik yaptınız minor sayısınıarttırırsınız. Eğer fonksiyon değişiklikleri , fonksiyon parametre dönüşdeğerinde değişiklikler içeren bir güncelleme major numarasında değişiklik gerektirecektir.
Versiyon numaralarımajor.minor(x.y) şeklinde gösterilir. Dinamik bağlayıcıa.out x.y.z şeklinde daha küçük basamaklarıihmal eder. Üçüncü basamak olan z bağlama sırasında hangi kütüphanenin bağlanacağıtercih edilirken tamamen ihmal edilir. İki kütüphaneden uyumlu olan yeni kütüphaneler bağlanır.ld.so minor numarasıbüyük olanıtercih eder. Eğer dosya ismi libfoo.so.3.3.3 ise bağlayıcıprogram sadece 3.3 hedef alır.
Ek olarak ELF dinamik bağlayıcısıminor numaralarıile hiç uğraşmaz. Ama yinede doğru olanıyapma adına major ve minor numaralarını Makefile dosyalarında belirtmelidir.
Port dışıkütüphaneler için sadece her bir yeni sürümde versiyon numarasıdeğişir. Aycrıca politikamız ortak kütüphanelerin versiyonlarınıher bir işletim sistemi versiyonu değişiminde değiştirmektir.Sistem kütüphanesinde değişiklik yaptıysanız versiyonu arttırmanız gerekmektedir.Makefile teslim raporlarına bakınız.Yöneticinin(commiter) sorumluluğu sürüm üzerinde böyle bir değişiklik sırasında ortak kütüphanenin versiyonun Makefile dosyasında bir artırılmışolduğundan sonradan gelen değişikliklerin versiyon numarasınıdeğiştirmediğinden emin olmaktır.