MemoDokümantasyon
TR

Derleme ve Paketleme

Memo'yu kaynaktan derleme ve dağıtılabilir paketler oluşturma.

Backend Derleme

CGO_ENABLED=1 go build -o memo .

Çıktı, memo (Windows'ta memo.exe) adında tek bir binary'dir. Bu binary yalnızca Go backend sunucusunu içerir — Flutter ön yüzü ayrı bir derleme adımıdır.

Ön Yüz Derleme

cd frontend
flutter build linux --release      # Linux masaüstü
flutter build windows --release    # Windows masaüstü
flutter build macos --release      # macOS masaüstü
flutter build apk --release        # Android eşlikçi uygulaması
flutter build ios --release        # iOS eşlikçi uygulaması

Birleşik Dağıtımlar

Masaüstü uygulaması, hem Go backend'i hem de Flutter ön yüzünü içeren tek bir paket olarak dağıtılır. Sürüm derleme betiği bunları birleştirmeyi yönetir.

Linux Paketleme

package_linux.sh

Linux sürümü package_linux.sh ile paketlenir:

./package_linux.sh

Aşağıdakileri içeren bir .tar.gz arşivi üretir:

  • memo (backend binary)
  • memo_frontend/ (Flutter Linux derleme çıktısı)
  • vec0.so (sqlite-vec eklentisi)
  • config/config.yaml (varsayılan yapılandırma)

AppImage (Planlanan)

Tüm bağımlılıkları bir araya getiren tek tıklamalı bir Linux dağıtımı sağlamak için AppImage formatı planlanmaktadır.

Windows Paketleme

Windows sürümleri GitHub Actions CI ile derlenir ve .zip arşivi üretir:

  • memo.exe (backend binary)
  • memo_frontend/ (Flutter Windows derleme çıktısı)
  • vec0.dll (sqlite-vec eklentisi)

NSIS tabanlı .exe yükleyici, birincil Windows dağıtım formatıdır:

Memo-Setup-v3.1.0.exe

Dağıtım Formatları

Format Platform Durum
.exe yükleyici Windows Yayında
.tar.gz taşınabilir Linux Yayında
.AppImage Linux Planlanan
.deb Linux Planlanan
.dmg macOS Yayında
.apk Android Yayında (eşlikçi uygulama)
.ipa iOS Planlanan (eşlikçi uygulama)

Sürüm Betiği

./build_releases.sh

Bu betik, tam platform derlemelerini düzenler ve tüm dağıtım arşivlerini üretir. Betik şunları yönetir:

  1. Önceki derleme yapıtlarını temizleme
  2. CGO etkinken Go backend'i derleme
  3. Her hedef platform için Flutter'ı derleme
  4. sqlite-vec eklenti binary'lerini kopyalama
  5. Platforma özel arşivlere paketleme
  6. (İsteğe bağlı) macOS için kod imzalama

Sürüm Yükseltme

Bir sürüm derlemeden önce main.go ve ön yüzün pubspec.yaml dosyasındaki sürüm dizesini güncelleyin.