Homebrew, HashiCorp için uyarı ekliyor ve kullanımdan kaldırmayı planlıyor
(github.com/Homebrew)- Homebrew/homebrew-core PR #139538, HashiCorp’un lisans değişikliği nedeniyle
terraformformula’sına kullanıcı uyarısı ekleyen ve bir noktada devre dışı bırakılabileceğini bildiren bir değişiklik - Değişikliğin nedeni, lisans değişikliğinin ardından homebrew-core’da
terraformiçin artık sürüm güncellemesi yapılmayacak olması; odak, kullanıcıların bunu kurulum sırasında fark etmesini sağlamak - İnceleme sürecinde, 1.6.0 öncesindeki gelecekteki sürümlerin kabul edilebilir olabileceği, ancak böyle sürümlerin hiç olmayabileceği şeklinde bir sürüm istisnası tartışıldı
- PR, bağımlılıkların temizlenmesinden sonra 4 Nisan 2024’te yeniden incelemeye hazır duruma getirildi ve gelecek zamanlı ifadelerin kaldırılması yönündeki geri bildirimin ardından
terraform: deprecate and add caveatcommit’iyle güncellendi - Nihai değişiklik 5 Nisan 2024’te merge queue üzerinden Homebrew
masterdalına4782218commit’i ile birleştirildi; ilgiliterraformkullanımdan kaldırma PR’ı #168090 da merge edildi
terraform formula’sının kullanımdan kaldırılması ve uyarı eklenmesi
- PR #139538’un amacı, HashiCorp’un lisans değişikliği nedeniyle homebrew-core’da
terraformsürüm güncellemelerinin artık yapılmadığı durumu kullanıcılara bildirmekti - İlk açıklama, kullanıcılara “bu formula bir noktada devre dışı bırakılabilir” bilgisini vermeye yönelikti
- Değişiklik hedefi
Formula/terraform.rbidi; daha sonra dosya yoluFormula/t/terraform.rbolarak gösterildi - PR’a
formula deprecated,busl-license,go,maintainer feedbackgibi etiketler eklendi
Sürüm ve lisansla ilgili tartışmalar
- İnceleme sırasında,
terraformun gelecekteki sürümlerinden 1.6.0 öncesi sürümlerin kabul edilebilir olabileceği görüşü ortaya çıktı- Ancak böyle sürümlerin gerçekte hiç yayınlanmayabileceği de belirtildi
- PR açıklaması, lisans değişikliğinden sonra homebrew-core’da artık sürüm güncellemesi yapılmayacağını bu değişikliğin gerekçesi olarak sundu
- Daha sonra commit mesajları, “lisans değişikliği nedeniyle homebrew-core’da artık sürüm güncellemesi olmayacağı için bu formula’nın bir noktada devre dışı bırakılacağı” yönündeki anlamı taşıdı
İnceleme ve değişikliklerin uygulanma akışı
- PR, 14 Ağustos 2023’te açıldı ve birden fazla maintainer
Formula/terraform.rbdeğişikliğini inceledi - 6 Eylül 2023’te inceleme geri bildiriminin uygulanmasını isteyen bir ping atıldı; yazar da bunu tamamladığını bildirdi
- 7 Eylül 2023’te MikeMcQuaid değişikliği onayladı, ancak merge queue’da durum kontrolleri başarısız olduğu için çıkarıldı
- 20 Eylül 2023’te chenrui333 de değişikliği onayladı
- 23 Şubat 2024’te PR draft olarak işaretlendi
Bağımlılık temizliği ve ilgili PR’lar
- 13 Mart 2024’te
cdktf: deprecatecommit’i bu PR’a referans verdi- İlgili commit mesajı,
cdktf’nin yakında kullanımdan kaldırılacakterraformu kullandığını belirtti - Bunun,
terraformun kullanımdan kaldırılmasını engelleyen son formula’lardan biri olduğu açıklandı cdktf’nin ayda 700’den fazla indirildiği ve HashiCorp GitHub org’unda barındırılsa da BUSL lisans değişikliğinden etkilenmediği yazıldı
- İlgili commit mesajı,
- İlgili PR olarak cdktf: deprecate #166001 merge edildi
- 3 Nisan 2024’te atlantis: vendor terraform #167948 bu PR’a referans verdi ve merge edildi
Son düzenlemeler ve merge
- 4 Nisan 2024’te yazar, “tüm bağımlılıkları ele aldım, artık sorun yok” diyerek PR’ı yeniden review ready durumuna getirdi
- p-linnane, bu durumun zaten gerçekleştiğini belirterek gelecek zaman ifadelerinin kaldırılabileceği yönünde geri bildirim verdi
- Yazar bunu uyguladı ve dalı
terraform: deprecate and add caveatcommit’i1c7b99bile güncelledi - p-linnane, MikeMcQuaid ve chenrui333 nihai değişikliği onayladı
- 5 Nisan 2024’te PR, merge queue üzerinden Homebrew
masterdalına4782218commit’i ile merge edildi - Aynı gün terraform: deprecate and add caveat #168090 da merge edilmiş PR olarak referans gösterildi
1 yorum
Hacker News yorumları
Bağımlı paketleri hemen kullanımdan kaldırmayıp alternatiflerle değiştirilebilir mi diye bakmak üzere bekletmeleri önemli
Örneğin Terraform’a bağımlı programların OpenTofu’yu alternatif olarak kullanabilme ihtimali yüksek
Ne yazık ki Vault, Consul ve Nomad için açık kaynak alternatiflerin çıkması pek olası görünmüyor. Özellikle Nomad, HashiCorp yatırım yapmayı bırakana kadar iyi bir üründü; artık kapalı kaynak olduğuna göre benimsenme ihtimalinin neredeyse hiç kalmamış görünmesi komik bile
Ek: https://github.com/hashicorp/vault/graphs/contributors?from=...
İşlerin bu yöne gitmesini görmek biraz üzücü
Docker Swarm, Nomad’dan daha basit ve daha iyi bir çözüm; ayrıca Docker Engine’in kendisine yerleşik geliyor
Halka arzı zorladılar ve son dönemdeki kusurların çoğunun izini hisse fiyatını yükseltme çabasına kadar sürebilirsiniz
İlk dönem HashiCorp harikaydı. Açık kaynağın koruyucusuydu; yükselen bir Red Hat ya da Canonical gibi görünüyordu. Ürünleri çığır açıcıydı ve açık kaynak ekosistemine muazzam değer kattı. Ancak Terraform büyük patlama yapınca diğer ürünlere de ilgi çekti ve şirket fazla ünlendi
Halka açıldıktan sonra her ne pahasına olursa olsun para ve kurumsal müşteri kazanma yönelimi belirginleşti
Terraform’un kendisi de sürüm 1’den beri bakım modundaymış gibi hissettiriyor. Terraform provider’ları sık sık kırılıyor ve üretim ortamında provider’ların patch sürümüne kadar sabitlenmesi gerektiğini düşünüyorum. Son birkaç yılda küçük patch güncellemelerinde bile birkaç kez sorun yaşandı. HashiCorp’un iş değeri taşımayan açık kaynak katkıları reddetmeye başlamasıyla da biliniyor. Terraform v1’e ulaştıktan sonra neredeyse tüm ilgi Terraform Cloud ve Terraform Enterprise’a yönelmiş gibi. HashiConf’ta her sunum bu ürünleri dayatan bir propaganda gibi hissettiriyor ve artık yalnızca bunları umursuyorlar gibi görünüyor
Nomad bir süre HashiCorp’un çok umut bağladığı bir üründü, ancak kurumsal pazarı ele geçirme arayışında yol kenarına bırakılmış gibi. Muhtemelen çoğu şirketin Kubernetes’e tamamen yöneldiğini ve Nomad’ın daha çok hızlı hareket eden startup’lar için yararlı olduğunu gördükten sonra böyle oldu
Vault, özellikle açık kaynak alanında harika bir araçtı. Ancak son birkaç yılda Vault’un açık kaynak sürümü ile lisanslı sürümünü ciddi biçimde ayırdılar ve açık kaynak sürüm HashiCorp için bir yük gibi hissettirmeye başladı. Geçen yıl şirkette Vault’a geçişi ciddi şekilde değerlendirirken HashiCorp ile konuştuğumuzda, açık kaynak self-hosted çözümü “gerçek Vault”un deneme sürümü gibi ele aldılar; gerçekten de öyle hissettirdi. Kurulum sırasında karşılaştığımız neredeyse her sorun için “Enterprise sürümünde bu sorun yok” tarzında yanıt verdiler
Genel olarak ürünlerin açık kaynak sürümlerini desteklemek için gereken en az çabayı bırakıp geri çekildiler ve bir süredir tamamen kurumsal odaklı bir şirket oldular. Para kazanmaları gerektiği için yalnızca suçlayamam ama HashiCorp’un olabileceği şeye örnek olarak Red Hat ve Canonical’ı düşünmeden edemiyorum
Şu an çocuğunun potansiyelini tam gerçekleştiremediğini izleyen bir ebeveyn gibi hissediyorum. Bunun çoğu açgözlülük ya da aşırı hırstan kaynaklanıyor gibi. HashiCorp’u düşündüğümde aklıma “kızgın değilim, sadece hayal kırıklığına uğradım” sözü geliyor. OpenTofu’nun Terraform’un boşluğunu doldurmasını umuyorum. Vault’u çoktan geride bıraktık ve büyük bulut sağlayıcılarının gizli bilgi yönetimi araçlarını kullanıyoruz. Çok daha az hoşuma gidiyor ama daha ucuz ve daha az karmaşık. Nomad yerine Kubernetes kullanıyoruz; zaten standart haline geldiği için sorun değil. Ben yoluma devam ederim ama HashiCorp beni hayal kırıklığına uğrattı
HashiCorp kendi tap’ini sürdürüyor
https://github.com/hashicorp/homebrew-tap
https://www.hashicorp.com/blog/announcing-hashicorp-homebrew...
Linux paketleme ekosisteminde de genelde bu yöntem kullanılır, ancak genellikle bağımlılıkların paketlenmesi de açıkça birlikte ele alınır. Muhtemelen bu yüzden lisans değişikliğinden önce bile Vault vb. dağıtım paket koleksiyonlarına girememiş olabilir
HashiCorp tarafındaki varyant ise release build’lerini kopyalıyor: https://github.com/hashicorp/homebrew-tap/blob/master/Formul...
Neden böyle? Homebrew sonuçta sadece bir paket yöneticisi değil mi? Özgür olmayan lisansın HashiCorp araçlarının dahil edilmesini neden kısıtlaması gerektiğini anlamıyorum
Yoksa yalnızca özgür yazılımları dahil etme gibi bir politikası mı var?
Düzenleme: Aslında oldukça sıkı yönergeleri var: https://docs.brew.sh/License-Guidelines
“Yalnızca Debian Free Software Guidelines lisansı kullanan ya da DFSG'nin kamu malı yazılım yönergelerine göre kamu malı olarak yayımlanmış formula'lar homebrew/core'a kabul edilir”
[1]: https://docs.brew.sh/License-Guidelines
brewadlı yazılım, yani paket yöneticisi olmasının yanında, varsayılan olarak bağlanan homebrew-core paket deposu da var. Bu paket deposu özenle yönetiliyor ve yalnızca açık kaynak lisanslarını kabul ediyorİstediğiniz depoyu
brewile tap edip kullanmakta özgürsünüz, ancak bu PR yalnızca core deposunu ele alıyorHomebrew varsayılan olarak iki depoyu, homebrew/core ve homebrew/casks'i destekler; Homebrew terminolojisiyle bunları tap eder
Core yalnızca özgür yazılımları kabul eder, Homebrew geliştiricileri tarafından doğrudan derlenir ve
/opt/homebrewvb. yerlere kurulur. Casks ise ticari yazılımlar ve kaynak kodu olmayan yazılımlar dahil neredeyse her şeyi kabul eder. Bu tür yazılımlar genellikle geliştirici tarafındaki kaynaktan doğrudan indirilir ve istenen konuma, çoğunlukla/Applicationsaltına kurulurHomebrew'ün sunduğu hizmeti seviyorum ama Terraform, brew dışında yönetmenin daha iyi olduğu istisna örneklerden biri. Şu an tf-switch'in en popüler seçenek olduğunu düşünüyorum
Terraform'da yanlışlıkla state dosyasını güncellemek tehlikeli olabildiği için çoğu zaman belirli bir sürümü sabitlemek gerekir. Elbette Terraform güncellemelerinin 1.0 öncesi döneme göre çok daha az baş ağrıttığı doğru
Bunun yerine cask'e girebilir. Pratikte çok büyük bir etkisi yok
Daha büyük etki, burada görüldüğü gibi Terraform'a bağımlı olan diğer araçlarda: https://github.com/Homebrew/homebrew-core/pull/139538#pullre...
atlantis ve infracost gibi araçlar da Terraform'a bağımlı oldukları için kaldırılıyor. Bu yüzden bu tür küçük araçların dağıtımı biraz daha zorlaşacak. Neyse ki o tartışmada, OpenTofu kararlı hale gelince bağımlılığın alternatifle değiştirilebilmesi ya da tamamen kaldırılabilmesi için bekletileceği söyleniyor. Yine de asıl etkinin bu çevre araçlarda olduğunu düşünüyorum
Homebrew gerçekten kullanışlı ama tuhaf tasarım tercihleri de var. Neden yeni, kendine özel bir Python kuruyor? Ve neden o Python'ın en güncel sürüm olması gerekiyor?
Üstelik her formula'nın Python sürümünü belirtmesi gerektiği için pratikte her zaman en güncel de olmuyor; her türlü sürümü belirten formula'lar ortaya çıkıyor. Neden diğer paket yöneticileri gibi sistem Python'ını kullanmadığını anlamıyorum. Zaten kurulu çok fazla Python var, bir tane dahaına ihtiyaç yok. Özellikle bir şeyin düzgün çalışması için pip paketi kurmak gerektiğinde daha da kafa karıştırıcı oluyor
Şöyle kullanabilirsiniz:
pythonX.Y -m pip install fooBelirsizliği ortadan kaldırmak için alias da kullanabilirsiniz. İş projeleri için pyenv ve sanal ortam kullanmak iyi olur
Politik bir karar gibi görünüyor. Homebrew'de artık güncelleme almayacak çok sayıda paket var ama kullanımdan kaldırılmıyorlar
Homebrew'ün Cask olmayan kısmı açık kaynak lisansı gerektiriyor; bu durum da ikincisi
Buna karşılık güncelleme var ama Homebrew yasal olarak dağıtamıyor ve bunun sonucunda eski, zafiyet içeren bir sürümü kurmanıza yol açabiliyorsa, kullanıcıyı uyarmaya değer
https://wiki.debian.org/DFSGLicenses#DFSG-compatible_License...