- Remove executable permissions from configuration files (.editorconfig, .env.example, .gitignore) - Remove executable permissions from documentation files (README.md, LICENSE, SECURITY.md) - Remove executable permissions from web assets (HTML, CSS, JS files) - Remove executable permissions from data files (JSON, SQL, YAML, requirements.txt) - Remove executable permissions from source code files across all apps - Add executable permissions to Python
372 lines
8.8 KiB
Markdown
372 lines
8.8 KiB
Markdown
# GitHub Repository Setup for AITBC Packages
|
|
|
|
## 🚀 **Repository Structure**
|
|
|
|
```
|
|
aitbc/
|
|
├── packages/github/
|
|
│ ├── README.md # Main documentation
|
|
│ ├── install.sh # Universal installer
|
|
│ ├── install-macos.sh # macOS installer
|
|
│ ├── install-windows.sh # Windows/WSL2 installer
|
|
│ ├── packages/
|
|
│ │ ├── *.deb # All Debian packages
|
|
│ │ └── checksums.txt # Package checksums
|
|
│ ├── configs/ # Configuration templates
|
|
│ ├── scripts/ # Utility scripts
|
|
│ └── docs/ # Additional documentation
|
|
├── cli/ # CLI source code
|
|
├── systemd/ # Service definitions
|
|
└── docs/ # Full documentation
|
|
```
|
|
|
|
## 📦 **Package Distribution Strategy**
|
|
|
|
### **Primary Distribution Method**
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash
|
|
```
|
|
|
|
### **Alternative Methods**
|
|
```bash
|
|
# Clone and install
|
|
git clone https://github.com/aitbc/aitbc.git
|
|
cd aitbc/packages/github
|
|
./install.sh
|
|
|
|
# Platform-specific
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-windows.sh | bash
|
|
```
|
|
|
|
## 🔧 **GitHub Actions Workflow**
|
|
|
|
### **Release Workflow**
|
|
```yaml
|
|
name: Release Packages
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Build packages
|
|
run: |
|
|
cd packages/deb
|
|
./build_deb.sh
|
|
./build_services.sh
|
|
|
|
- name: Upload packages
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: debian-packages
|
|
path: packages/deb/*.deb
|
|
|
|
- name: Create Release
|
|
uses: actions/create-release@v1
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: Release ${{ github.ref }}
|
|
draft: false
|
|
prerelease: false
|
|
```
|
|
|
|
### **Package Validation Workflow**
|
|
```yaml
|
|
name: Validate Packages
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'packages/**'
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
platform: [linux, macos, windows]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Test installation
|
|
run: |
|
|
cd packages/github
|
|
./install.sh --platform ${{ matrix.platform }}
|
|
|
|
- name: Test CLI
|
|
run: |
|
|
aitbc --version
|
|
aitbc --help
|
|
```
|
|
|
|
## 🌐 **CDN and Mirror Setup**
|
|
|
|
### **Primary CDN**
|
|
```bash
|
|
# Main CDN URL
|
|
https://cdn.aitbc.dev/packages/install.sh
|
|
|
|
# Regional mirrors
|
|
https://eu-cdn.aitbc.dev/packages/install.sh
|
|
https://asia-cdn.aitbc.dev/packages/install.sh
|
|
```
|
|
|
|
### **GitHub Raw CDN**
|
|
```bash
|
|
# GitHub raw content
|
|
https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh
|
|
|
|
# GitHub Pages
|
|
https://aitbc.github.io/packages/install.sh
|
|
```
|
|
|
|
## 📊 **Package Analytics**
|
|
|
|
### **Download Tracking**
|
|
```bash
|
|
# GitHub release downloads
|
|
curl https://api.github.com/repos/aitbc/aitbc/releases/latest
|
|
|
|
# Custom analytics
|
|
curl https://analytics.aitbc.dev/track?package=aitbc-cli&version=0.1.0
|
|
```
|
|
|
|
### **Usage Statistics**
|
|
```bash
|
|
# Installation ping (optional)
|
|
curl https://ping.aitbc.dev/install?platform=linux&version=0.1.0
|
|
```
|
|
|
|
## 🔒 **Security Considerations**
|
|
|
|
### **Package Signing**
|
|
```bash
|
|
# GPG sign packages
|
|
gpg --sign --armor packages/*.deb
|
|
|
|
# Verify signatures
|
|
gpg --verify packages/*.deb.asc
|
|
```
|
|
|
|
### **Checksum Verification**
|
|
```bash
|
|
# Verify package integrity
|
|
sha256sum -c packages/checksums.txt
|
|
```
|
|
|
|
### **Code Scanning**
|
|
```bash
|
|
# Security scan
|
|
github-codeql-action
|
|
|
|
# Dependency check
|
|
github-dependency-review-action
|
|
```
|
|
|
|
## 📱 **Multi-Platform Support**
|
|
|
|
### **Linux (Debian/Ubuntu)**
|
|
```bash
|
|
# Direct installation
|
|
sudo dpkg -i aitbc-cli_0.1.0_all.deb
|
|
|
|
# Script installation
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash
|
|
```
|
|
|
|
### **macOS (Intel/Apple Silicon)**
|
|
```bash
|
|
# Homebrew installation
|
|
brew install aitbc-cli
|
|
|
|
# Script installation
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash
|
|
```
|
|
|
|
### **Windows (WSL2)**
|
|
```bash
|
|
# WSL2 installation
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-windows.sh | bash
|
|
|
|
# PowerShell function
|
|
aitbc --help
|
|
```
|
|
|
|
## 🔄 **Update Mechanism**
|
|
|
|
### **Auto-Update Script**
|
|
```bash
|
|
#!/bin/bash
|
|
# Check for updates
|
|
LATEST_VERSION=$(curl -s https://api.github.com/repos/aitbc/aitbc/releases/latest | grep tag_name | cut -d'"' -f4)
|
|
CURRENT_VERSION=$(aitbc --version | grep -oP '\d+\.\d+\.\d+')
|
|
|
|
if [[ "$LATEST_VERSION" != "$CURRENT_VERSION" ]]; then
|
|
echo "Update available: $LATEST_VERSION"
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash -s --update-all
|
|
fi
|
|
```
|
|
|
|
### **Package Manager Integration**
|
|
```bash
|
|
# APT repository (future)
|
|
echo "deb https://apt.aitbc.dev stable main" | sudo tee /etc/apt/sources.list.d/aitbc.list
|
|
sudo apt-get update
|
|
sudo apt-get install aitbc-cli
|
|
|
|
# Homebrew tap (future)
|
|
brew tap aitbc/aitbc
|
|
brew install aitbc-cli
|
|
```
|
|
|
|
## 📈 **Release Strategy**
|
|
|
|
### **Version Management**
|
|
- **Semantic Versioning**: MAJOR.MINOR.PATCH
|
|
- **Release Cadence**: Monthly stable releases
|
|
- **Beta Releases**: Weekly for testing
|
|
- **Hotfixes**: As needed
|
|
|
|
### **Release Channels**
|
|
```bash
|
|
# Stable channel
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash
|
|
|
|
# Beta channel
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/develop/packages/github/install.sh | bash
|
|
|
|
# Development channel
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/feature/packages/github/install.sh | bash
|
|
```
|
|
|
|
## 🎯 **User Experience**
|
|
|
|
### **One-Command Installation**
|
|
```bash
|
|
# The only command users need to remember
|
|
curl -fsSL https://install.aitbc.dev | bash
|
|
```
|
|
|
|
### **Interactive Installation**
|
|
```bash
|
|
# Interactive installer with options
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash -s --interactive
|
|
```
|
|
|
|
### **Progress Indicators**
|
|
```bash
|
|
# Show installation progress
|
|
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash -s --progress
|
|
```
|
|
|
|
## 📚 **Documentation Integration**
|
|
|
|
### **Inline Help**
|
|
```bash
|
|
# Built-in help
|
|
./install.sh --help
|
|
|
|
# Platform-specific help
|
|
./install.sh --help-linux
|
|
./install.sh --help-macos
|
|
./install.sh --help-windows
|
|
```
|
|
|
|
### **Troubleshooting Guide**
|
|
```bash
|
|
# Diagnostics
|
|
./install.sh --diagnose
|
|
|
|
# Logs
|
|
./install.sh --logs
|
|
|
|
# Reset
|
|
./install.sh --reset
|
|
```
|
|
|
|
## 🌍 **Internationalization**
|
|
|
|
### **Multi-Language Support**
|
|
```bash
|
|
# Language detection
|
|
LANG=$(echo $LANG | cut -d'_' -f1)
|
|
|
|
# Localized installation
|
|
curl -fsSL "https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-$LANG.sh" | bash
|
|
```
|
|
|
|
### **Regional Mirrors**
|
|
```bash
|
|
# Auto-select mirror based on location
|
|
COUNTRY=$(curl -s ipinfo.io/country)
|
|
MIRROR="https://$COUNTRY-cdn.aitbc.dev"
|
|
curl -fsSL "$MIRROR/packages/install.sh" | bash
|
|
```
|
|
|
|
## 🚀 **Performance Optimization**
|
|
|
|
### **Parallel Downloads**
|
|
```bash
|
|
# Download packages in parallel
|
|
curl -O https://packages.aitbc.dev/aitbc-cli_0.1.0_all.deb &
|
|
curl -O https://packages.aitbc.dev/aitbc-node-service_0.1.0_all.deb &
|
|
wait
|
|
```
|
|
|
|
### **Delta Updates**
|
|
```bash
|
|
# Download only changed files
|
|
rsync --checksum --partial packages.aitbc.dev/aitbc-cli_0.1.0_all.deb ./
|
|
```
|
|
|
|
### **Compression**
|
|
```bash
|
|
# Compressed packages for faster download
|
|
curl -fsSL https://packages.aitbc.dev/aitbc-cli_0.1.0_all.deb.xz | xz -d | sudo dpkg -i -
|
|
```
|
|
|
|
## 📊 **Monitoring and Analytics**
|
|
|
|
### **Installation Metrics**
|
|
```bash
|
|
# Track installation success
|
|
curl -X POST https://analytics.aitbc.dev/install \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"platform": "linux", "version": "0.1.0", "success": true}'
|
|
```
|
|
|
|
### **Error Reporting**
|
|
```bash
|
|
# Report installation errors
|
|
curl -X POST https://errors.aitbc.dev/install \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"error": "dependency_missing", "platform": "linux", "version": "0.1.0"}'
|
|
```
|
|
|
|
## 🎉 **Success Metrics**
|
|
|
|
### **Installation Success Rate**
|
|
- Target: >95% success rate
|
|
- Monitoring: Real-time error tracking
|
|
- Improvement: Continuous optimization
|
|
|
|
### **User Satisfaction**
|
|
- Target: >4.5/5 rating
|
|
- Feedback: In-app surveys
|
|
- Support: Community forums
|
|
|
|
### **Adoption Rate**
|
|
- Target: 1000+ installations/month
|
|
- Growth: 20% month-over-month
|
|
- Retention: 80% active users
|
|
|
|
This GitHub setup provides a **complete, production-ready distribution system** for AITBC packages that works across all major platforms and provides an excellent user experience! 🚀
|