|
| 1 | +# Creating GitHub Releases |
| 2 | + |
| 3 | +**Author:** Adrian Johnson (adrian207@gmail.com) |
| 4 | +**Version:** 1.0.0 |
| 5 | +**Last Updated:** December 2024 |
| 6 | + |
| 7 | +## 🎯 Overview |
| 8 | + |
| 9 | +This guide explains how to create and manage GitHub releases for the Windows Server PowerShell Solutions Suite. |
| 10 | + |
| 11 | +## 🏷️ Creating a Release via GitHub Web UI |
| 12 | + |
| 13 | +### **Step 1: Access Releases Page** |
| 14 | +1. Navigate to your repository on GitHub |
| 15 | +2. Click on **"Releases"** in the right sidebar |
| 16 | +3. Click **"Create a new release"** |
| 17 | + |
| 18 | +### **Step 2: Fill Release Information** |
| 19 | +- **Tag version:** Select or create tag (e.g., `v1.0.0`) |
| 20 | +- **Release title:** `Release v1.0.0` or descriptive name |
| 21 | +- **Description:** Copy content from `CHANGELOG.md` for the version |
| 22 | + |
| 23 | +### **Step 3: Configure Release Settings** |
| 24 | +- **Pre-release:** Uncheck for stable releases |
| 25 | +- **Set as latest release:** Check for major/minor releases |
| 26 | + |
| 27 | +### **Step 4: Publish Release** |
| 28 | +Click **"Publish release"** |
| 29 | + |
| 30 | +## 🤖 Creating a Release via GitHub CLI |
| 31 | + |
| 32 | +### **Install GitHub CLI (if needed)** |
| 33 | +```powershell |
| 34 | +# Windows |
| 35 | +winget install GitHub.cli |
| 36 | +
|
| 37 | +# Or download from: https://cli.github.com/ |
| 38 | +``` |
| 39 | + |
| 40 | +### **Authenticate** |
| 41 | +```powershell |
| 42 | +gh auth login |
| 43 | +``` |
| 44 | + |
| 45 | +### **Create Release from Tag** |
| 46 | +```powershell |
| 47 | +# Create release from existing tag |
| 48 | +gh release create v1.0.0 --title "Release v1.0.0" --notes "Initial production release" |
| 49 | +
|
| 50 | +# Or with file for notes |
| 51 | +gh release create v1.0.0 --title "Release v1.0.0" --notes-file CHANGELOG.md |
| 52 | +``` |
| 53 | + |
| 54 | +### **Create Pre-release** |
| 55 | +```powershell |
| 56 | +# Release Candidate |
| 57 | +gh release create v1.1.0-rc.1 --title "Release Candidate v1.1.0-rc.1" --prerelease |
| 58 | +
|
| 59 | +# Beta |
| 60 | +gh release create v1.2.0-beta.1 --title "Beta Release v1.2.0-beta.1" --prerelease |
| 61 | +
|
| 62 | +# Alpha |
| 63 | +gh release create v2.0.0-alpha.1 --title "Alpha Release v2.0.0-alpha.1" --prerelease |
| 64 | +``` |
| 65 | + |
| 66 | +## 📦 Automated Release via GitHub Actions |
| 67 | + |
| 68 | +### **Manual Trigger** |
| 69 | +1. Go to **Actions** tab |
| 70 | +2. Select **Release Management** workflow |
| 71 | +3. Click **"Run workflow"** |
| 72 | +4. Enter version number (e.g., `1.0.0`) |
| 73 | +5. Select release type (stable, rc, beta, alpha) |
| 74 | +6. Waiting for the workflow to complete |
| 75 | + |
| 76 | +### **Trigger via Git Tag** |
| 77 | +```bash |
| 78 | +# Create and push tag |
| 79 | +git tag -a v1.0.1 -m "Release version 1.0.1" |
| 80 | +git push origin v1.0.1 |
| 81 | + |
| 82 | +# GitHub Actions will automatically create the release |
| 83 | +``` |
| 84 | + |
| 85 | +## 📝 Best Practices |
| 86 | + |
| 87 | +### **Release Notes Format** |
| 88 | +```markdown |
| 89 | +## 🎉 Release Name |
| 90 | + |
| 91 | +### ✨ What's New |
| 92 | +- Feature 1 |
| 93 | +- Feature 2 |
| 94 | + |
| 95 | +### 🐛 Bug Fixes |
| 96 | +- Fix 1 |
| 97 | +- Fix 2 |
| 98 | + |
| 99 | +### 🔒 Security Updates |
| 100 | +- Security update 1 |
| 101 | + |
| 102 | +### 📚 Documentation |
| 103 | +- Updated documentation |
| 104 | + |
| 105 | +### 🔗 Links |
| 106 | +- Full Changelog: [link] |
| 107 | +- Documentation: [link] |
| 108 | +``` |
| 109 | + |
| 110 | +### **Version Numbering** |
| 111 | +- **Major:** Breaking changes |
| 112 | +- **Minor:** New features (backward compatible) |
| 113 | +- **Patch:** Bug fixes (backward compatible) |
| 114 | +- **Pre-release:** Add `-rc.1`, `-beta.1`, or `-alpha.1` |
| 115 | + |
| 116 | +### **Timing** |
| 117 | +- **Major releases:** Every 12-18 months |
| 118 | +- **Minor releases:** Every 2-3 months |
| 119 | +- **Patch releases:** As needed (typically monthly) |
| 120 | + |
| 121 | +## 📊 Release Checklist |
| 122 | + |
| 123 | +Before creating a release: |
| 124 | + |
| 125 | +- [ ] Update `CHANGELOG.md` with all changes |
| 126 | +- [ ] Update `version.json` with new version |
| 127 | +- [ ] Update all README files with new version |
| 128 | +- [ ] Test all changes thoroughly |
| 129 | +- [ ] Run all test suites |
| 130 | +- [ ] Check for linter errors |
| 131 | +- [ ] Review documentation accuracy |
| 132 | +- [ ] Create Git tag with proper annotation |
| 133 | +- [ ] Push tag to GitHub |
| 134 | +- [ ] Create GitHub release |
| 135 | +- [ ] Verify release notes are complete |
| 136 | + |
| 137 | +## 🔗 Additional Resources |
| 138 | + |
| 139 | +- [CHANGELOG.md](CHANGELOG.md) - Version history |
| 140 | +- [VERSIONING.md](VERSIONING.md) - Versioning policy |
| 141 | +- [version.json](version.json) - Current version info |
| 142 | +- [GitHub Releases Documentation](https://docs.github.com/en/repositories/releasing-projects-on-github) |
| 143 | + |
| 144 | +## 📞 Support |
| 145 | + |
| 146 | +For questions about releases: |
| 147 | +- **Email:** adrian207@gmail.com |
| 148 | +- **Issues:** [GitHub Issues](https://github.com/adrian207/Windows-Server-Powershell-Solutions-Suite/issues) |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +**Windows Server PowerShell Solutions Suite** - Professional release management. |
| 153 | + |
| 154 | +Copyright © 2024 Adrian Johnson. All rights reserved. |
| 155 | + |
0 commit comments