Files
1356/GIT_RELEASE_GUIDE.md
T
Tomas Dvorak 37ffb93923 feat: Complete Phase 1 - Full Flutter app implementation with comprehensive features
Version: 1.1.0

Major changes:
- Implemented complete Flutter app structure with all core features
- Added comprehensive UI screens for auth, countdown, goals, profile, settings, and social features
- Integrated Supabase backend with authentication and data repositories
- Added offline support with Hive caching and local storage
- Implemented comprehensive routing with go_router
- Added location services with Google Maps integration
- Implemented notifications and home widget support
- Added voice recording capabilities and AI chat features
- Created comprehensive test suite and documentation
- Added Android and iOS platform configurations
- Implemented achievements system and social features
- Added calendar integration and bucket list functionality

This represents a complete Phase 1 milestone with 3,775 additions across 31 files.
2026-01-04 14:33:54 +01:00

3.1 KiB

Git Configuration for Manual Releases

This document outlines the Git configuration to ensure build files and unnecessary files are not uploaded, allowing for manual release management.

What's Already Configured

Build Files Excluded

  • APK/AAB files: *.apk, *.aab
  • Android build directories: /android/app/build/, /android/build/, /android/.gradle/
  • iOS build directories: /ios/build/, /ios/Flutter/Flutter.framework
  • Flutter build artifacts: /build/, .dart_tool/, .pub-cache/
  • Debug/Release profiles: /android/app/debug, /android/app/profile, /android/app/release

Development Files Excluded

  • IDE files: .idea/, *.iml, *.ipr, *.iws
  • Environment files: .env, .env.local, .env.*.local
  • Cache files: .DS_Store, Thumbs.db, *.log
  • Keystore files: *.keystore, *.jks, key.properties

📁 Git Ignore Files

Root .gitignore (Enhanced)

  • Comprehensive Flutter/Android/iOS exclusions
  • Build artifact prevention
  • Environment and security file protection

Android .gitignore (Enhanced)

  • Platform-specific build files
  • Gradle wrapper exclusions
  • NDK and temporary files

🔧 Manual Release Workflow

1. Build Your APK/AAB

# Make the build script executable (already done)
chmod +x build_apk.sh

# Run the build script
./build_apk.sh

2. Build Artifacts Location

Build files are automatically placed in:

  • lifetimer/build/app/outputs/flutter-apk/ (APK files)
  • lifetimer/build/app/outputs/bundle/release/ (AAB files)

3. Distribution Ready

The build script creates timestamped files in a releases/ directory:

  • releases/lifetimer-YYYYMMDD-HHMMSS.apk
  • releases/lifetimer-YYYYMMDD-HHMMSS.aab

🔒 Security & Git Safety

Keystore Management

  • Keystore files are never tracked by Git
  • Store your key.properties and *.keystore files securely
  • Use environment variables for sensitive data

Build File Isolation

  • All build outputs are excluded from version control
  • Manual releases are completely separate from Git workflow
  • No risk of accidentally committing large binary files

📋 Verification Commands

Check Git Status

# See untracked files (builds should be ignored)
git status --ignored

# Verify no build files are tracked
git ls-files | grep -E "(build|\.apk|\.aab|\.keystore)"

Test Build Exclusions

# Build should create files that Git ignores
./build_apk.sh

# Verify build files are ignored
git status
# Should show: "nothing to commit, working tree clean"

🚀 Release Process

  1. Build: Run ./build_apk.sh
  2. Test: Install APK on device/emulator
  3. Distribute: Share files from releases/ directory
  4. Version: Update version numbers in pubspec.yaml if needed
  5. Commit: Only commit source code changes, never build files

📝 Notes

  • The .gitignore files are comprehensive and cover all major build artifacts
  • Manual releases give you full control over distribution timing
  • Build files are automatically excluded, preventing repository bloat
  • All sensitive files (keystores, env vars) are protected from accidental commits