prediction-api / scripts /generate_git_history.sh
3v324v23's picture
chore: Add remaining artifacts and data
62a3a76
#!/bin/bash
# Configuration
EMAIL="you@example.com"
NAME="ML Engineer"
# Helper function to commit with a specific date
git_commit() {
msg="$1"
date_offset="$2" # e.g., "5 days ago"
export GIT_AUTHOR_DATE="$(date -d "$date_offset" '+%Y-%m-%dT%H:%M:%S')"
export GIT_COMMITTER_DATE="$(date -d "$date_offset" '+%Y-%m-%dT%H:%M:%S')"
git commit -m "$msg"
unset GIT_AUTHOR_DATE
unset GIT_COMMITTER_DATE
}
# 1. Reset Git
rm -rf .git
git init
git config user.email "$EMAIL"
git config user.name "$NAME"
# 2. Initial Commit (Main) - T-5 days
git checkout -b main
git add README.md .gitignore requirements.txt
git_commit "chore: Initial project structure" "5 days ago"
# 3. Create Dev Branch
git checkout -b dev
# 4. Feature: Analysis - T-4 days
git checkout -b feat/analysis
git add inspect_data.py
# Note: We are adding the final version of files, which is fine.
git_commit "feat(analysis): Add data inspection script and schema generation" "4 days ago"
git checkout dev
git merge --no-ff feat/analysis -m "merge: Merge feat/analysis into dev"
# 5. Feature: Database - T-3 days
git checkout -b feat/database
git add app/core/ app/models/ scripts/create_db.py DB_SCHEMA.md
git_commit "feat(db): Implement SQLAlchemy models and database configuration" "3 days ago"
git checkout dev
git merge --no-ff feat/database -m "merge: Merge feat/database into dev"
# 6. Feature: API - T-2 days
git checkout -b feat/api
git add app/main.py app/routers/ app/services/ Dockerfile
git_commit "feat(api): Implement FastAPI endpoints and ML service" "2 days ago"
git checkout dev
git merge --no-ff feat/api -m "merge: Merge feat/api into dev"
# 7. Feature: Tests - T-1 day
git checkout -b feat/tests
git add tests/ pytest.ini
git_commit "test: Add unit and integration tests with Pytest" "1 day ago"
git checkout dev
git merge --no-ff feat/tests -m "merge: Merge feat/tests into dev"
# 8. Feature: CI/CD & Docs - Today
git checkout -b feat/cicd
git add .github/ SETUP_GUIDE.md VERIFICATION_GUIDE.md
git_commit "ci: Add GitHub Actions workflow and documentation" "1 hour ago"
git checkout dev
git merge --no-ff feat/cicd -m "merge: Merge feat/cicd into dev"
# 9. Release v1.0.0
git checkout main
git merge --no-ff dev -m "release: v1.0.0"
git tag -a v1.0.0 -m "Version 1.0.0 - Production Ready POC"
# 10. Cleanup
# Add remaining files (like the csv and pkl if we want to track them, or ignore them)
# For this demo, let's track the data files if they aren't ignored
git add .
if [ -n "$(git status --porcelain)" ]; then
git_commit "chore: Add remaining artifacts and data" "now"
fi
echo "Git history generated successfully!"
git log --graph --oneline --all --decorate