Edwin Salguero
chore: enterprise-grade project structure, robust .gitignore, and directory cleanup
9289e29
# π€ Hugging Face Repository Protection Guide | |
## π Overview | |
Hugging Face repositories have different protection mechanisms than GitHub. This guide shows how to implement protection for your algorithmic trading repositories on Hugging Face. | |
## π‘οΈ Available Protection Methods | |
### **1. Repository Settings (Web Interface)** | |
#### **Access Control:** | |
1. Go to your repository: `https://huggingface.co/ParallelLLC/algorithmic_trading` | |
2. Click **"Settings"** tab | |
3. Configure these settings: | |
**Repository Visibility:** | |
- [x] **Private** (recommended for trading systems) | |
- [ ] Public (if you want to share) | |
**Collaboration:** | |
- [x] **Require approval for new collaborators** | |
- [x] **Restrict push access to maintainers only** | |
**Model Card:** | |
- [x] **Require model card for uploads** | |
- [x] **Validate model card format** | |
### **2. Git Hooks (Local Protection)** | |
#### **Pre-commit Hook:** | |
The pre-commit hook I created will: | |
- β Warn about direct commits to main | |
- β Run tests before commit | |
- β Check code formatting | |
- β Scan for secrets | |
- β Prevent commits if checks fail | |
#### **Install the Hook:** | |
```bash | |
# The hook is already installed in .git/hooks/pre-commit | |
# It will run automatically on every commit | |
``` | |
### **3. CI/CD Protection** | |
#### **GitHub Actions (Recommended):** | |
Since Hugging Face integrates with GitHub: | |
1. **Keep GitHub as primary** with full protection | |
2. **Sync to Hugging Face** after GitHub validation | |
3. **Use GitHub's branch protection** rules | |
#### **Workflow:** | |
```bash | |
# 1. Develop on GitHub (with protection) | |
git push origin feature/new-strategy | |
# 2. Create PR on GitHub | |
# 3. All checks pass | |
# 4. Merge to main | |
# 5. Sync to Hugging Face | |
git push hf main | |
git push esalguero_hf main | |
``` | |
### **4. Manual Protection Practices** | |
#### **Development Workflow:** | |
```bash | |
# Always use feature branches | |
git checkout -b feature/new-strategy | |
# Make changes | |
git commit -m "feat: add new strategy" | |
git push origin feature/new-strategy | |
# Create PR on GitHub (not Hugging Face) | |
# Get reviews and approvals | |
# Merge on GitHub | |
# Then sync to Hugging Face | |
``` | |
#### **Code Review Process:** | |
1. **Never commit directly to main** | |
2. **Always create feature branches** | |
3. **Use GitHub for PRs and reviews** | |
4. **Sync to Hugging Face after approval** | |
## π§ Implementation Steps | |
### **Step 1: Configure Repository Settings** | |
1. Go to: `https://huggingface.co/ParallelLLC/algorithmic_trading/settings` | |
2. Set repository to **Private** | |
3. Enable **Require approval for collaborators** | |
### **Step 2: Use GitHub as Primary** | |
1. **Develop on GitHub** with full protection | |
2. **Use GitHub's branch protection** rules | |
3. **Sync to Hugging Face** after validation | |
### **Step 3: Enable Pre-commit Hook** | |
```bash | |
# The hook is already installed and executable | |
# It will run automatically on commits | |
``` | |
### **Step 4: Team Guidelines** | |
```markdown | |
## Development Guidelines for Hugging Face Repos | |
### β Do: | |
- Use GitHub for development and PRs | |
- Create feature branches for all changes | |
- Get code review before merging | |
- Run tests locally before pushing | |
- Sync to Hugging Face after GitHub approval | |
### β Don't: | |
- Commit directly to main branch | |
- Push untested code | |
- Skip code review process | |
- Use Hugging Face for development workflow | |
``` | |
## π¨ Emergency Procedures | |
### **If Direct Commit to Main is Needed:** | |
```bash | |
# 1. Create emergency branch | |
git checkout -b hotfix/emergency-fix | |
# 2. Make minimal fix | |
git commit -m "hotfix: emergency fix for critical issue" | |
# 3. Test thoroughly | |
python -m pytest tests/ | |
python demo.py | |
# 4. Push to GitHub first | |
git push origin hotfix/emergency-fix | |
# 5. Create emergency PR | |
# 6. Get expedited review | |
# 7. Merge and sync to Hugging Face | |
``` | |
## π Protection Summary | |
### **GitHub (Primary Development):** | |
- β Full branch protection | |
- β Required reviews | |
- β CI/CD checks | |
- β Code owner reviews | |
- β Automated testing | |
### **Hugging Face (Distribution):** | |
- β Private repository | |
- β Pre-commit hooks | |
- β Manual review process | |
- β Sync after GitHub validation | |
## π― Best Practices | |
### **1. Use GitHub as Source of Truth** | |
- All development happens on GitHub | |
- Hugging Face is for distribution | |
- Sync after GitHub validation | |
### **2. Never Skip Protection** | |
- Always use feature branches | |
- Always get code review | |
- Always run tests | |
- Always validate on GitHub first | |
### **3. Monitor Both Repositories** | |
- Check GitHub for development status | |
- Check Hugging Face for distribution status | |
- Ensure both are in sync | |
## π Useful Links | |
- **GitHub Repository**: https://github.com/EAName/algorithmic_trading | |
- **Hugging Face ParallelLLC**: https://huggingface.co/ParallelLLC/algorithmic_trading | |
- **Hugging Face esalguero**: https://huggingface.co/esalguero/algorithmic_trading | |
- **GitHub Settings**: https://github.com/EAName/algorithmic_trading/settings/branches | |
- **Hugging Face Settings**: https://huggingface.co/ParallelLLC/algorithmic_trading/settings | |
--- | |
**Note**: Hugging Face repositories are best used for model distribution and sharing, while GitHub provides the robust development and protection features needed for algorithmic trading systems. |