son commit
- ne yazık ki yarım kaldı, dokümantasyonu tamamlayamadım
This commit is contained in:
parent
316ef3713e
commit
32f7df79f0
3 changed files with 45 additions and 10 deletions
|
@ -80,10 +80,6 @@ Yazılım geliştirme konusunda uzman olmadığımdan, go dilini daha önce kull
|
|||
|
||||
#### Son Hafta (28 Ağustos - 3 Eylül 2023)
|
||||
- Go'da crosscompile program yapmayı öğrendim ve projeye uyguladım
|
||||
- Go Dinamik Plugin yapısını kodladım (goloader)
|
||||
- Resource Usage pluginini bitirdim
|
||||
- Hardware cihazlarını algılamak için hardware paketini kodladım
|
||||
- Resource Usage pluginini ve ahenk-go programını Windows ile uyumlu hâle getirdim
|
||||
- Go Dinamik Plugin yapısını kodladım (goloader) -eksik-
|
||||
- Resource Usage pluginini ve ahenk-go programını Windows ile uyumlu hâle getirdim -eksik-
|
||||
- program servis olarak çalışmamakta!
|
||||
- Dökümantasyonları güncelledim
|
||||
- .deb dosyasını güncelledim, windows ve linux için paketleri yayımladım
|
|
@ -32,7 +32,9 @@ Bu dosyada geliştirme sürecinin sürekliliği ve bütünlüğü için gelişti
|
|||
- 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 ¿
|
||||
- Nedenini tam olarak bilmiyorum ama bazen bu geçici çözüm işe yaramamakta ¿
|
||||
- go build satırını yorum işaretine bitişik yaz!, `// go:build linux && !windows` değil, `//go:build linux && !windows`
|
||||
- go build satırından sonra bir satır boşluk bırak ?
|
||||
|
||||
### 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.
|
||||
|
@ -44,7 +46,8 @@ Bu dosyada geliştirme sürecinin sürekliliği ve bütünlüğü için gelişti
|
|||
- 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ş
|
||||
- Wine yüklü
|
||||
- [bakınız](#wine-geliştirme-ortamının-oluşturulması)
|
||||
- Docker [godeb](#creating-docker-development-environment)
|
||||
- Paket buildlemek ve mini testler için
|
||||
- içinde Pardus sanal makine
|
||||
|
@ -67,3 +70,36 @@ docker pull asandikci/godeb
|
|||
docker run -it -d --name build1 asandikci/godeb:latest "bin/bash"
|
||||
docker attach build1 --detach-keys "ctrl-k"
|
||||
```
|
||||
|
||||
<br>
|
||||
<details>
|
||||
<summary>-- wine --</summary>
|
||||
|
||||
### Wine Geliştirme Ortamının oluşturulması
|
||||
> Daha önce hiç Wine kullanmadıysanız **ve** bilgisayarınız sanal makinede windows çalıştırabilecek güçte ise bu başlığı atlamanız önerilir.
|
||||
> adımlar wine8.15(staging) ve go1.21.0 sürümleri kullanılarak yapılmıştır
|
||||
- paket yöneticinizden `wine` veya `wine-staging` paketini indiriniz ve `wineboot -u` komutunu çalıştırınız
|
||||
- https://go.dev/dl/ adersinden en son yayınlanan .msi dosyasını indiriniz.
|
||||
- terminal üzerinde `wine control` komutunu çalıştırınız ve kontrol panelini açınız
|
||||
- Add/Remove Program
|
||||
- bir önceki adımda indirdiğiniz .msi dosyasını yükleyiniz
|
||||
- yükleme konumu olarak `C:\users\KullanıcıAdınız\go\` dizinini seçiniz
|
||||
- terminal üzerinde `wine regedit` komutunu çalıştırınız ve kontrol panelini açınız
|
||||
- **HKEY_CURRENT_USER** > **Environment** dosyasına geliniz.
|
||||
- GOPATH'i `C:\users\KullanıcıAdınız\go` şeklinde düzenleyiniz (kurulumda kurduğunuz path)
|
||||
- PATH'i `C:\users\KullanıcıAdınız\go\bin` şeklinde düzenleyiniz
|
||||
- https://github.com/eh-steve/goloader#build adresinde yer alan ayarları yapınız, GOROOT değişkenini kullanmak yerine işlemi manuel olarak yapmanız önerilir.
|
||||
- Artık `make local_wine` komutu ile go dosyasını buildleyip, `wine /usr/bin/ahenk-go` komutu ile çalıştırabilirsiniz. (sisteminiz sadece `ahenk-go` yazınca da wine ile çalıştıracağını anlayabilir)
|
||||
|
||||
#### Wine ile ilgili ek bilgiler
|
||||
- eğer halihazırda bir wine kurulumunuz varsa ve farklı bir dizin kullanmak istiyorsanız `winetricks` uygulamasını yükleyerek yeni bir prefix oluşturabilirsiniz.
|
||||
- sonrasında çalıştıracağınız tüm komutları `env WINEPREFIX=~/.local/share/wineprefixes/PREFIX_ISMI wine KOMUT` öneki ile çalıştırınız. ([yukarı](#wine-geliştirme-ortamının-oluşturulması)daki komutların tümünü ve sonrasında çalıştıracağınız ahenk-go)
|
||||
- bazı kabuklarda tilde ~ sembolü çalışmayabiliyor, full dizini yazının.
|
||||
- eğer yeni bir prefix oluşturduysanız Makefile dosyasını gözden geçiriniz ve **özellikle** `WINE_C` değişkenini değiştiriniz !
|
||||
- Herhangi bir sorun olduğunda ve çözüm bulamadığınızda winetricks uygulamasından ilgili prefix'i seçip herşeyi sil seçeneğini seçip, tüm adımları baştan yapabilirsiniz.
|
||||
- eğer wine konsolu üzerinde sürekli fixme hataları çıkıyorsa kodu `env WINEDEBUG=fixme-all wine KOMUT` ile çalıştırınız
|
||||
- goloader, jit, kernel veya pluginlerin yüklenmesi ile ilgili sorun/panic oluşuyorsa `make local_wine_safeplugins` komutunu deneyiniz
|
||||
- bu komut pluginleri paket olarak içeri import eder ve hangi pluginde sorun olduğunu daha anlaşılabilir bir şekilde gösterir.
|
||||
- dolayısı ile unload vb. diğer plugin özellikleri çalışmaz, sadece debugging amaçlı kullanınız !
|
||||
- FIXME `panic: Failed to find GetStdHandle procedure in kernel32.dll: Path not found.` ve `panic: Failed to load kernel32.dll: Path not found.` hatalarının çözümü bulunamadı! Eğer siz de bu hatayı alırsanız wine yerine windows kullanmayı deneyiniz veya sorunu çözerseniz bu dökümantasyona ekleyiniz.
|
||||
</details>
|
|
@ -1,6 +1,8 @@
|
|||
# Yeni Geliştiriciler için Açıklamalar
|
||||
Bu projede devam edecek olan geliştiriciler, stajyerler veya katkı sağlamak isteyen harici *contributor*lar için başlangıç kılavuzu, açıklamalar ve öneriler. Bu dosyayı, hâlihazırda olan dökümantasyonların sırasıyla daha iyi anlaşılması için oluşturulmuş bir roadmap gibi düşünebilirsiniz.
|
||||
|
||||
SON UPDATE: howto.md ve changelog.md dosyalarını güncellemeye ve dev-notes/asandikci.md dosyasındaki son hafta için yazdıklarımı (commit=316ef3713e9119b0869baea40406fcf5482faf10) yapmaya vaktim yetmedi, bu dosyadan ana mantığı anlamaya çalışın ama goloader kullandıktan beri güncellemediğim için plugin mantığı çok eksik kalacak... goloader-changes branchına ve son commit'e bakınız ve anlamaya çalışınız!
|
||||
|
||||
## Gereklilikler
|
||||
### Geliştirme Ortamının kurulması
|
||||
- Geliştirme ortamı için go dilini paket yöneticinizden veya resmi sitesinden kurunuz (>=1.21.0)
|
||||
|
@ -99,6 +101,7 @@ Go dili ve ortamın kurulması haricinde bunlar hakkında bilgi sahibi olmanız
|
|||
- cli flag, argument management (cobra) (gerekli mi?)
|
||||
- daha iyi versiyon yönetimi, deb/exe ve version dosyası için senkronizasyon
|
||||
- otomatik versiyon güncellemesi
|
||||
- go kodları için otomatik testler (package_test.go ve makefile içinde)
|
||||
- daha fazlası için [buraya](./changelog.md#next) bakınız
|
||||
|
||||
<br><br>
|
||||
|
|
Loading…
Reference in a new issue