Son birkaç ayı otomatik bağımlılık güncelleme aracı 1 oluştururken Gemfiles ve Gemfile ile uğraşarak geçirdim . Aşağıdakiler kesin olmaktan uzaktır, ancak Gemfile.lock formatını anlamak için iyi bir başlangıç noktasıdır. Bundler'in kilit dosyası ayrıştırıcısının kaynak kodunu da kontrol etmek isteyebilirsiniz .
Bundler 1.x tarafından oluşturulan bir kilit dosyasında aşağıdaki başlıkları bulacaksınız:
GEM (isteğe bağlı ancak çok yaygın)
Bunlar Rubygems sunucusundan kaynaklanan bağımlılıklardır. Bu, Rubygems.org'daki ana Rubygems dizini veya Gemfury ve diğerlerinin kullanabileceği özel bir dizin olabilir. Bu bölümde şunları göreceksiniz:
remote:
Rubygems dizinlerinin konumunu belirten bir veya daha fazla satır
specs:
sürüm numaralarıyla birlikte bağımlılıklar listesi ve alt bağımlılıklarla ilgili kısıtlamalar
GIT (isteğe bağlı)
Bunlar belirli bir git uzaktan kumandasından kaynaklanan bağımlılıklardır. Her git uzaktan kumandası için bu bölümlerden farklı bir tane göreceksiniz ve her bölümün içinde şunları göreceksiniz:
remote:
git uzaktan kumanda. Örneğin,git@github.com:rails/rails
revision:
Gemfile.lock işleminin gönderme referansı
tag:
(isteğe bağlı) Gemfile'da belirtilen etiket
specs:
bu uzaktan kumandada sürüm numarasıyla birlikte bulunan git bağımlılığı ve alt bağımlılıklarla ilgili kısıtlamalar
PATH (isteğe bağlı)
Bunlar path
Gemfile'da verilen belirli bir kaynaktan alınan bağımlılıklardır. Her yol bağımlılığı için bu bölümlerden farklı bir tane görürsünüz ve her bölümün içinde şunları görürsünüz:
remote:
yol. Örneğin,plugins/vendored-dependency
specs:
bu uzaktan kumandada sürüm numarasıyla birlikte bulunan git bağımlılığı ve alt bağımlılıklarla ilgili kısıtlamalar
PLATFORMLAR
Gemfile.lock'un Ruby platformu oluşturuldu. Gemfile'daki herhangi bir bağımlılık bir platform belirtirse, yalnızca bu dosyada kilit dosyası oluşturulduğunda (örn. Bir yükleme yoluyla) Gemfile.lock içine dahil edilir.
DEPENDENCIES
Burada belirtilen Gemfile
sürüm kısıtlamasıyla birlikte belirtilen bağımlılıkların bir listesi .
Ana Rubygems dizini dışında bir kaynakla belirtilen bağımlılıkların (örneğin, git bağımlılıkları, yola dayalı, bağımlılıklar), !
bu kaynak 2'ye "sabitlendiği" anlamına gelir (ancak bazen belirlemek için Gemfile'a bakılması gerekir).
YAKUT SÜRÜMÜ (isteğe bağlı)
Bu Gemfile.lock oluşturulduğunda Gemfile içinde belirtilen Ruby sürümü. Bir .ruby_version
dosyada Ruby sürümü belirtilirse, bu bölüm mevcut olmaz (Bundler'ın Gemfile / Gemfile.lock uygulamasının yükleyicinin Ruby sürümüne agnostik olduğunu düşündüğü için).
İLE BİRLİKTE (Bundler> = v1.10.x)
Gemfile.lock oluşturmak için kullanılan Bundler sürümü. Yükleyicilere dosyayı oluşturan sürümden daha eskiyse Bundler sürümlerini güncellemelerini hatırlatmak için kullanılır.
PLUGIN KAYNAĞI (isteğe bağlı ve çok nadir)
Teorik olarak, bir Gemfile Bundler eklentilerini ve daha sonra burada listelenecek olan taşlar 3'ü belirtebilir . Uygulamada, Temmuz 2017 itibariyle mevcut eklentilerin farkında değilim. Bundler'ın bu kısmı hala aktif geliştirme aşamasında!
- https://dependabot.com
- https://github.com/bundler/bundler/issues/4631
- http://andre.arko.net/2012/07/23/towards-a-bundler-plugin-system/