ahenk-docs/dev/environment.md
2023-09-01 10:15:44 +03:00

3.2 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)

  • TODO » Future Tasks
  • NEXT » High Priority Tasks
    • settings.json dosyasına ekleyiniz (default, #12449f, file)
  • FILLME » Reusable code block
    • settings.json dosyasına ekleyiniz (default, #A8C993, file)
  • FIXME » Bug or error
  • NOTE » Extra note
  • REVIEW » This code block needs a review
  • LINK » Link to documentation/forum/information

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

Ö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

  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"