ahenk-docs/dev/environment.md
2023-09-04 18:51:46 +03:00

3.8 KiB
Raw Blame History

Development Environment - Geliştirici Ortamı

Bu dosyada geliştirme sürecinin sürekliliği ve bütünlüğü için geliştiricilerin ilk başta kurması gereken ortam anlatılmaktadır.


IDE/Eklentiler

Önerilen IDE'ler

  • VSCode
  • VSCodium

Önerilen VSCode/Codium Eklentileri

Comment Anchors (exodiusstudios.comment-anchors)

Go (golang.go)

FIXME build flag issues
  • package_linux.go ve package_windows.go kodlarındaki aynı fonksiyonlar sorun yaratmakta. Örnek için ahenk-go/pkg/osinfo/os_windows.go ve os_linux.go dosyalarını IDE'nizde birlikte açınız
  • see these two issues or workaround to resolve problem
Workaround
  • .vscode/settings.json içinde go.buildFlags ayarı linux/windows için çalışırken manuel olarak değiştirilmeli.
  • package_linux.go dosyalarında, //go:build linux yerine //go:build linux && !windows kullanılmalı (ki go.buildFlags -tags=windows'a ayarlı iken bu paketleri dahil etmesin)
  • Windows üzerine bir özellik geliştirirken .vscode/settings.json dosyasına ekleyiniz: "go.buildFlags": ["-tags=windows"],
  • Linux üzerine bir özellik geliştirirken .vscode/settings.json dosyasına ekleyiniz: "go.buildFlags": ["-tags=linux"],
  • Sorunlar
    • Her seferinde manuel olarak ayarın değiştirilmesi lazım
    • herhangi bir sistem için çalışırken diğer sistemin kodu içinde diagnotics çalışmamakta. Örneğin tags=windows etkinken eğer package_linux.go dosyasına gidersek go eklentisinin çoğu yapılandırma özellikleri çalışmamakta ve uyarı vermekte
    • Neden bilmiyorum ama bazen bu geçici çözüm işe yaramamakta ¿

Otomatik Eklenti Ayarları

  • Eklentileri Manuel olarak yüklemeniz gerekmektedir. Konfigrasyonlarını ise VSCode/Codium üzerinden kendiniz yapabilirsiniz veya .vscode/settings.json dosyasını direkt kullanabilirsiniz.
    • Not: Eğer workspace içerisinde ahenk-go haricinde başka dosya veya klasörler varsa bazı ayarlar geçersiz olabilir, .vscode/settings.json içerisindeki tüm ayarları kopyalayıp vscode ayarlarındaki setting.json dosyasına yapıştırabilirsiniz. (tabii ki ilk ve son süslü parantez hariç)

Önerilen Makine Düzeni

Geliştirme

  • 1 adet Liderahenk sunucusu (Fiziksel/Sanal)
    • veya herhangi bir yerel/diğer XMPP sunucusu
  • 1 adet GNU/Linux Dağıtımı (Fiziksel/WSL)
    • Wine yüklenmiş
    • Docker godeb
      • Paket buildlemek ve mini testler için
    • içinde Pardus sanal makine

Test

  • Pardus sürümleri (Sanal/Fiziksel)
  • Windows 10, 11 (Sanal/Fiziksel)

Creating Docker Development Environment

For testing and building .deb package

  1. Install and Create docker environment, Quick Start
  2. Pull docker image
docker pull asandikci/godeb

Or alternatively build Dockerfile with docker build -t godeb:latest code for lower data usage

  1. Create container from image and attach to container, an example:
docker run -it -d --name build1 asandikci/godeb:latest "bin/bash"
docker attach build1 --detach-keys "ctrl-k"