8.1 KiB
Package Submission Setup Summary
This document summarizes all the package manager integrations that have been set up for Termix.
Overview
Termix now has complete package manager support for all three major platforms:
- Windows: Chocolatey
- Linux: Flatpak (Flathub)
- macOS: Homebrew Cask
Files Created
Chocolatey (Windows)
chocolatey/
├── termix.nuspec # Package manifest
└── tools/
├── chocolateyinstall.ps1 # Installation script
└── chocolateyuninstall.ps1 # Uninstallation script
Flatpak (Linux)
flatpak/
├── com.karmaa.termix.yml # Flatpak manifest (x64 & arm64)
├── com.karmaa.termix.desktop # Desktop entry file
├── com.karmaa.termix.metainfo.xml # AppStream metadata
├── flathub.json # Flathub configuration
├── prepare-flatpak.sh # Helper script
└── README.md # Detailed documentation
Homebrew (macOS)
homebrew/
├── termix.rb # Homebrew Cask formula
└── README.md # Detailed documentation
Documentation
PACKAGE_MANAGERS.md # Complete guide for all package managers
PACKAGE_SUBMISSION_SUMMARY.md # This file
Modified Files
.github/workflows/electron-build.yml # Added 3 new submission jobs
GitHub Actions Integration
New Jobs Added to Workflow
-
submit-to-chocolatey (Lines 551-654)
- Platform: Windows
- Trigger:
artifact_destination == 'submit' - Actions:
- Downloads Windows x64 MSI
- Calculates SHA256 checksum
- Updates package manifest with version/checksum
- Packs Chocolatey package
- Automatically pushes to Chocolatey (if API key configured)
- Creates artifact for backup
-
submit-to-flatpak (Lines 656-844)
- Platform: Linux (Ubuntu)
- Trigger:
artifact_destination == 'submit' - Actions:
- Downloads x64 and arm64 AppImages
- Calculates SHA256 checksums for both architectures
- Generates PNG icons from SVG
- Updates manifest and metainfo with version/checksums/date
- Creates complete submission artifact
- Includes detailed submission instructions
-
submit-to-homebrew (Lines 846-1059)
- Platform: macOS
- Trigger:
artifact_destination == 'submit' - Actions:
- Downloads macOS universal DMG
- Calculates SHA256 checksum
- Updates Cask formula with version/checksum
- Verifies Ruby syntax
- Creates submission artifact
- Includes instructions for both official and custom tap
Setup Required
Chocolatey (Automated)
Add GitHub secret to enable automatic submission:
- Secret name:
CHOCOLATEY_API_KEY - Get from: https://community.chocolatey.org/account
- Location: Repository Settings → Secrets and variables → Actions
Flatpak (Manual)
No secrets required. Process:
- Run workflow with "submit" option
- Download
flatpak-submissionartifact - Fork https://github.com/flathub/flathub
- Copy files and create PR
Homebrew (Manual)
No secrets required. Two options:
Option 1: Official Homebrew
- Run workflow with "submit" option
- Download
homebrew-submissionartifact - Fork https://github.com/Homebrew/homebrew-cask
- Add to
Casks/t/termix.rband create PR
Option 2: Custom Tap
- Create repository:
Termix-SSH/homebrew-termix - Add
Casks/termix.rbfrom artifact - Users install with:
brew tap termix-ssh/termix && brew install --cask termix
How to Use
For Each Release:
-
Prepare Release
- Ensure version in
package.jsonis updated - Create GitHub release with tag format:
release-X.Y.Z-tag - Example:
release-1.8.0-tag
- Ensure version in
-
Run Build Workflow
- Go to Actions → "Build Electron App"
- Click "Run workflow"
- Select options:
- Platform:
all(or specific platform) - Artifact destination:
submit
- Platform:
-
Automated Submissions
- Chocolatey: Automatically pushed (if API key configured)
- Package appears on Chocolatey within hours
- Users can install with:
choco install termix
- Chocolatey: Automatically pushed (if API key configured)
-
Manual Submissions
-
Flatpak: Download
flatpak-submissionartifact- Follow instructions in
SUBMISSION_INSTRUCTIONS.md - Submit PR to flathub/flathub
- Review time: 1-5 days
- Follow instructions in
-
Homebrew: Download
homebrew-submissionartifact- Follow instructions in
SUBMISSION_INSTRUCTIONS.md - Option 1: Submit PR to Homebrew/homebrew-cask
- Option 2: Push to custom tap
- Review time (official): 24-48 hours
- Follow instructions in
-
Version Management
All package managers automatically use the version from package.json:
- Current version: 1.8.0
- Version format: Semantic versioning (X.Y.Z)
- All checksums calculated automatically
- Download URLs constructed automatically
Important Notes
Release Tag Format
The workflows expect GitHub release tags in this format:
release-{VERSION}-tag
Examples:
- ✅
release-1.8.0-tag - ✅
release-2.0.0-tag - ❌
v1.8.0 - ❌
1.8.0
If your tag format is different, update these lines in the workflows:
- Chocolatey: Line 597
- Flatpak: Lines 724-725
- Homebrew: Line 900
Code Signing Requirements
All builds require proper code signing:
- Windows MSI: Already signed via electron-builder
- Linux AppImage: No signing required
- macOS DMG: Must be signed and notarized (already configured)
File Naming Conventions
The workflows expect these file naming patterns:
- Windows:
termix_windows_x64_{version}_msi.msi - Linux x64:
termix_linux_x64_{version}_appimage.AppImage - Linux arm64:
termix_linux_arm64_{version}_appimage.AppImage - macOS:
termix_macos_universal_{version}_dmg.dmg
These are already configured in electron-builder.json.
Testing Locally
Chocolatey
cd chocolatey
choco pack termix.nuspec
choco install termix -s . -y
Flatpak
cd flatpak
flatpak-builder --user --install --force-clean build-dir com.karmaa.termix.yml
flatpak run com.karmaa.termix
Homebrew
cd homebrew
brew install --cask ./termix.rb
brew uninstall --cask termix
User Installation Commands
Once approved on all platforms:
# Windows (Chocolatey)
choco install termix
# Linux (Flatpak)
flatpak install flathub com.karmaa.termix
# macOS (Homebrew - Official)
brew install --cask termix
# macOS (Homebrew - Custom Tap)
brew tap termix-ssh/termix
brew install --cask termix
Update Strategy
Chocolatey
- Updates pushed automatically when you run workflow with "submit"
- Users update with:
choco upgrade termix
Flatpak
- After initial approval, you get a repository:
flathub/com.karmaa.termix - For updates: commit new version/checksum to that repo
- Flathub auto-builds and publishes
- Users update with:
flatpak update
Homebrew (Official)
- Homebrew bot auto-updates within hours of new releases
- Detects new releases via GitHub releases
- Users update with:
brew upgrade --cask termix
Homebrew (Custom Tap)
- Manually update the cask file in your tap repo
- Users update with:
brew upgrade --cask termix
Resources
- Chocolatey Documentation
- Flatpak Documentation
- Flathub Submission
- Homebrew Cask Cookbook
- AppStream Guidelines
Support
For issues:
- Build/Workflow: https://github.com/Termix-SSH/Termix/issues
- Chocolatey: https://community.chocolatey.org/packages/termix
- Flatpak: https://github.com/flathub/com.karmaa.termix/issues
- Homebrew: https://github.com/Homebrew/homebrew-cask/issues (or your custom tap)
Next Steps:
- Add
CHOCOLATEY_API_KEYto GitHub secrets - Run workflow with "submit" option for your next release
- Download artifacts and follow submission instructions
- Monitor submission PRs and respond to feedback