ahenk-docs/dev/environment.md

69 lines
3.8 KiB
Markdown
Raw Normal View History

2023-08-30 23:13:45 +03:00
# 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.
2023-08-30 23:13:45 +03:00
---
## IDE/Eklentiler
### Önerilen IDE'ler
- VSCode
- VSCodium
2023-08-30 23:13:45 +03:00
### Önerilen VSCode/Codium Eklentileri
#### Comment Anchors (`exodiusstudios.comment-anchors`)
- `TODO` » Future Tasks
- `NEXT` » High Priority Tasks
- `FILLME` » Reusable code block
2023-09-04 18:51:46 +03:00
- use epic anchors for improve reachability
2023-08-30 23:13:45 +03:00
- `FIXME` » Bug or error
- `NOTE` » Extra note
- `REVIEW` » This code block needs a review
2023-09-04 18:51:46 +03:00
- `LINK` » Link to code block with line number/id
- see https://github.com/StarlaneStudios/vscode-comment-anchors#link-anchors
- see https://github.com/StarlaneStudios/vscode-comment-anchors for more information
2023-08-30 23:13:45 +03:00
#### Go (`golang.go`)
2023-09-04 18:51:46 +03:00
-
2023-08-31 19:50:15 +03:00
##### 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"],`
2023-08-31 20:18:45 +03:00
- **Linux** üzerine bir özellik geliştirirken `.vscode/settings.json` dosyasına ekleyiniz: `"go.buildFlags": ["-tags=linux"],`
2023-08-31 19:50:15 +03:00
- 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
2023-09-04 18:51:46 +03:00
- Neden bilmiyorum ama bazen bu geçici çözüm işe yaramamakta ¿
2023-08-24 21:06:25 +03:00
2023-09-04 18:51:46 +03:00
### 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ç)
2023-08-30 23:13:45 +03:00
---
## Ö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
2023-09-04 18:51:46 +03:00
> For testing and building .deb package
2023-08-24 21:06:25 +03:00
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"
```