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

63 lines
No EOL
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 [t](https://github.com/microsoft/vscode-go/issues/2672)w[o](https://github.com/golang/go/issues/29202) issues or [workaround](#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](#creating-docker-development-environment)
- Paket buildlemek ve mini testler için
- içinde Pardus sanal makine
- Ekstra testler ve [ahenk python implementasyonu](https://github.com/pardus-liderahenk/ahenk)nu anlamak için ahenk yüklenmiş şekilde
### Test
- Pardus sürümleri (Sanal/Fiziksel)
- Windows 10, 11 (Sanal/Fiziksel)
## Creating Docker Development Environment
1. Install and Create docker environment, [Quick Start](https://sulincix.github.io/sayfalar/html/docker-kullanimi.html)
2. Pull docker image
```sh
docker pull asandikci/godeb
```
> Or alternatively build Dockerfile with `docker build -t godeb:latest` code for lower data usage
3. Create container from image and attach to container, an example:
```sh
docker run -it -d --name build1 asandikci/godeb:latest "bin/bash"
docker attach build1 --detach-keys "ctrl-k"
```