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

100 lines
3.1 KiB
Markdown

# 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
```bash
# 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
```bash
# 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
```bash
# 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