1 puan yazan GN⁺ 2023-10-09 | 1 yorum | WhatsApp'ta paylaş
  • Homebrew/homebrew-core PR #139538, HashiCorp’un lisans değişikliği nedeniyle terraform formula’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 terraform iç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 caveat commit’iyle güncellendi
  • Nihai değişiklik 5 Nisan 2024’te merge queue üzerinden Homebrew master dalına 4782218 commit’i ile birleştirildi; ilgili terraform kullanı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 terraform sü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.rb idi; daha sonra dosya yolu Formula/t/terraform.rb olarak gösterildi
  • PR’a formula deprecated, busl-license, go, maintainer feedback gibi 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.rb değ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: deprecate commit’i bu PR’a referans verdi
    • İlgili commit mesajı, cdktf’nin yakında kullanımdan kaldırılacak terraformu 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 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 caveat commit’i 1c7b99b ile güncelledi
  • p-linnane, MikeMcQuaid ve chenrui333 nihai değişikliği onayladı
  • 5 Nisan 2024’te PR, merge queue üzerinden Homebrew master dalına 4782218 commit’i ile merge edildi
  • Aynı gün terraform: deprecate and add caveat #168090 da merge edilmiş PR olarak referans gösterildi

1 yorum

 
GN⁺ 2023-10-09
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

    • Birisi Vault için herkese açık bir fork başlatırsa, zaman buldukça katkı vermek isterim
      Ek: https://github.com/hashicorp/vault/graphs/contributors?from=...
    • Nomad’ı epey seviyorum. k3s’ten bile daha hafifti ve benim düşük bütçeli projelerime çok iyi uyuyordu
      İşlerin bu yöne gitmesini görmek biraz üzücü
    • Nomad’ın hedefi dünyadaki her şeyi çalıştırmak gibi fazla iddialıydı. Sonunda yaygın şekilde yer edinemedi ve kurmak için Consul da gerekiyordu
      Docker Swarm, Nomad’dan daha basit ve daha iyi bir çözüm; ayrıca Docker Engine’in kendisine yerleşik geliyor
    • Dürüst olmak gerekirse HashiCorp ürünleri genel olarak gerçekten iyi. Ama bence çok hızlı hareket etme sendromu yaşadılar
      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ı
    • Nomad gerçekten kapalı kaynak mı oldu?
  • HashiCorp kendi tap’ini sürdürüyor
    https://github.com/hashicorp/homebrew-tap
    https://www.hashicorp.com/blog/announcing-hashicorp-homebrew...

  • 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

    • Homebrew'ün yalnızca özgür yazılım dahil etme politikası var [1]
      “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
    • Homebrew yalnızca basit bir paket yöneticisi değil
      brew adlı 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 brew ile tap edip kullanmakta özgürsünüz, ancak bu PR yalnızca core deposunu ele alıyor
    • Bu yalnızca kısmen doğru
      Homebrew 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/homebrew vb. 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 /Applications altına kurulur
  • Homebrew'ü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

    • Ben rtx, yani rust asdf https://github.com/jdx/rtx kullanıyorum. Dilleri tek bir araçla kurabiliyor ve direnv gibi proje ortam değişkenlerini de yönetebiliyor
    • Doğru. Belirli sürüm paketleri kurup kolayca geçiş yapabileceğiniz MacPorts içinde yönetmek en iyisi
    • Birden fazla Terraform sürümü kurmak için tfenv de Homebrew'de kullanılabilir
  • Bunun yerine cask'e girebilir. Pratikte çok büyük bir etkisi yok

    • Evet. HashiCorp Homebrew ile dağıtmaya devam etmek isterse cask ile de gayet mümkün. Ama pek öyle olacak gibi görünmüyor. Zaten son birkaç yıldır sunucularda ikili dosyaları doğrudan kurmayı öneriyorlardı ve Terraform kurulum belgeleri de bir süredir bu şekildeydi
      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

    • En tuhaf tercihi bile savunmaya çalışmıyorum ama sistem Python'ını kullanmak genelde daha fazla sorun çıkarır. macOS'te artık sistem Python'ı yok
      Şöyle kullanabilirsiniz:
      pythonX.Y -m pip install foo
      Belirsizliğ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

    • Upstream'in yeni sürüm çıkarmadığı için güncellenmeyen bir formula ile lisansı artık açık kaynak olmadığı için Homebrew'den yeni güncelleme alamayan bir formula farklı şeyler
      Homebrew'ün Cask olmayan kısmı açık kaynak lisansı gerektiriyor; bu durum da ikincisi
    • Bu, paketin ölmüş olmasından ayrı bir mesele. Homebrew'ün upstream'de olmayan güncellemeleri sihirli şekilde üretmeyeceğini kullanıcılar bekleyebilir
      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
    • Homebrew Core'a yalnızca açık kaynak lisanslı, daha spesifik olarak Debian Free Software Guidelines ile uyumlu lisansa sahip uygulamalar girer. GPL, Apache, BSD, MIT vb. buna dahildir
      https://wiki.debian.org/DFSGLicenses#DFSG-compatible_License...