ManpLab uses Version.props as the single source of truth for all version numbers.
-
Edit
Version.propsat solution root:<VersionPrefix>1.4.0</VersionPrefix>
-
Run build script (version auto-detected):
.\Build-Release.ps1 -
Done! All packages use the correct version automatically.
<Project>
<PropertyGroup>
<VersionPrefix>1.4.0</VersionPrefix>
<VersionSuffix></VersionSuffix> <!-- Empty for release, or "beta", "rc1", etc. -->
</PropertyGroup>
</Project>- Release version:
1.4.0(VersionSuffix empty) - Pre-release version:
1.4.0-beta(VersionSuffix = "beta")
# Version automatically read from Version.props
.\Build-Release.ps1# Override version manually if needed
.\Build-Release.ps1 -Version "1.4.0-custom"Available Parameters:
-Version: Version string (default: auto-read from Version.props)-Platform: x64, x86, or ARM64 (default: x64)-MsixOnly: Create only MSIX package-ZipOnly: Create only Portable ZIP
Examples:
# Build only portable ZIP (auto-version)
.\Build-Release.ps1 -ZipOnly
# Build both packages for ARM64
.\Build-Release.ps1 -Platform ARM64Release-Output/
├── MSIX/
│ ├── ManpLab_1.4.0.0_x64.msix
│ └── INSTALLATION_GUIDE.txt
└── Portable-ZIP/
├── ManpLab-Portable-1.4.0-x64/
│ ├── ManpWinUI.exe
│ ├── ManpCore.Native.dll
│ ├── (all dependencies)
│ ├── README.txt
│ └── LICENSE
└── ManpLab-Portable-1.4.0-x64.zip
Edit Version.props only:
<VersionPrefix>1.4.0</VersionPrefix>All other files (Package.appxmanifest, assemblies) are updated automatically at build time.
- Set Configuration to Release
- Set Platform to x64
- Clean Solution (Build → Clean Solution)
- Rebuild Solution (Build → Rebuild Solution)
Via Visual Studio:
- Right-click ManpWinUI project
- Publish → Create App Packages
- Choose "Sideloading"
- Configure version and output location
- Click "Create"
Via Command Line:
msbuild ManpWinUI\ManpWinUI.csproj `
/t:Publish `
/p:Configuration=Release `
/p:Platform=x64 `
/p:GenerateAppxPackageOnBuild=true `
/p:AppxPackageDir="Output\MSIX\" `
/p:UapAppxPackageBuildMode=SideloadOnlyPublish self-contained:
dotnet publish ManpWinUI\ManpWinUI.csproj `
--configuration Release `
--runtime win-x64 `
--self-contained true `
--output "Output\Portable" `
-p:PublishSingleFile=false `
-p:WindowsPackageType=NoneCreate ZIP:
Compress-Archive -Path "Output\Portable\*" `
-DestinationPath "ManpLab-Portable-1.1.1-x64.zip"📘 For detailed instructions, see GITHUB_RELEASE_GUIDE.md
# This script handles everything: build, tag, and prepare for GitHub
.\Prepare-GitHub-Release.ps1 -Version "1.1.1"This will:
- ✅ Build MSIX and ZIP packages
- ✅ Run validation checks
- ✅ Create Git tag
- ✅ Push to GitHub
- ✅ Open browser to create release
-
Build packages:
.\Build-Release.ps1 -Version "1.1.1"
-
Create Git tag:
git tag -a v1.1.1 -m "Release v1.1.1" git push origin v1.1.1 -
Create release on GitHub:
- Go to: https://github.com/markhassellsmith/ManpLab/releases
- Click "Draft a new release"
- Select tag:
v1.1.1 - Add title:
ManpLab v1.1.1 - [Description] - Upload files from
Release-Output\:ManpLab-1.1.1-x64.msixManpLab-Portable-1.1.1-x64.zip
- Click "Publish release"
Option A: Edit Release (Quick Fix)
- Go to your release page
- Click "Edit release" (pencil icon)
- Delete old files (click 🗑️ icon)
- Upload new files (drag & drop)
- Click "Update release"
Option B: Using GitHub CLI
# Delete old files
gh release delete-asset v1.1.1 ManpLab-1.1.1-x64.msix
gh release delete-asset v1.1.1 ManpLab-Portable-1.1.1-x64.zip
# Upload new files
gh release upload v1.1.1 `
"Release-Output\MSIX\ManpLab-1.1.1-x64.msix" `
"Release-Output\Portable-ZIP\ManpLab-Portable-1.1.1-x64.zip"Option C: Delete and Recreate
# On GitHub: Go to release → Delete
# Delete tag:
git push --delete origin v1.1.1
git tag -d v1.1.1
# Recreate:
git tag -a v1.1.1 -m "Release v1.1.1"
git push origin v1.1.1
# Then create new release on GitHub-
Create and push a tag:
git tag -a v1.1.1 -m "Release v1.1.1" git push origin v1.1.1 -
Monitor workflow:
- Go to GitHub → Actions
- Watch the "Release Build" workflow
- Artifacts are automatically uploaded
-
Manual trigger (if needed):
- GitHub → Actions → Release Build → Run workflow
- Enter version number
- Click "Run workflow"
-
Build packages locally:
.\Build-Release.ps1 -Version "1.1.1"
-
Create release on GitHub:
- Go to Releases → Draft a new release
- Choose/create tag:
v1.1.1 - Release title:
ManpLab v1.1.1 - Add release notes (see template below)
-
Upload artifacts:
- Drag and drop files from
Release-Output/ - MSIX package (.msix file)
- Portable ZIP (.zip file)
- INSTALLATION_GUIDE.txt
- Drag and drop files from
-
Publish release
# ManpLab v1.1.1 - Release Notes
## 🎉 Highlights
- Fixed settings persistence in Portable ZIP distribution
- Improved MSIX package installation experience
- Enhanced documentation
## 📦 Downloads
### Portable ZIP (Recommended) ✅
- **ManpLab-Portable-1.1.1-x64.zip** (XX MB)
- Extract and run - no installation needed
- Perfect for educational use and quick testing
### MSIX Package
- **ManpLab_1.1.1.0_x64.msix** (XX MB)
- Clean install/uninstall via Windows Settings
- See INSTALLATION_GUIDE.txt for setup instructions
## ✨ What's New
### Features
- Settings now persist correctly in portable distribution
- JSON-based settings storage for unpackaged apps
- Automatic detection of deployment type (MSIX vs portable)
### Improvements
- Enhanced settings service with dual storage
- Better error messages and diagnostics
- Comprehensive documentation
### Bug Fixes
- Fixed: Settings not persisting in portable ZIP version
- Fixed: Panel positions not restored on restart
## 📚 Documentation
- [Quick Start Guide](https://github.com/markhassellsmith/ManpLab#quick-start)
- [Settings Persistence](ManpWinUI/Documentation/SETTINGS_PERSISTENCE.md)
- [Keyboard Shortcuts](ManpWinUI/KEYBOARD_SHORTCUTS.md)
- [Full Documentation](ManpWinUI/README.md)
## 🔧 System Requirements
- Windows 10 (build 17763+) or Windows 11
- x64 processor
- 4 GB RAM (8 GB recommended)
- DirectX 12 capable graphics card
## 🐛 Known Issues
None reported for this version.
## 📝 Changelog
See [CHANGELOG.md](CHANGELOG.md) for complete history.
---
**Full Changelog**: https://github.com/markhassellsmith/ManpLab/compare/v1.1.0...v1.1.1Before releasing, test:
- Installs without errors
- App launches successfully
- Settings persist after restart
- Uninstalls cleanly
- Works on clean Windows 10 install
- Works on Windows 11
- Extracts without errors
- Runs without installation
- Settings saved to LocalAppData
- Settings persist after restart
- Works from USB drive
- Works without admin rights
- All 316 fractals load
- Rendering works correctly
- Theme switching works
- Color palettes apply
- Panel positions save/restore
- Keyboard shortcuts work
- Animation export works (if FFmpeg available)
- Help documentation accessible
ManpLab follows semantic versioning: MAJOR.MINOR.PATCH.BUILD
- MAJOR: Breaking changes
- MINOR: New features, backward compatible
- PATCH: Bug fixes
- BUILD: Build number (Windows requirement for MSIX)
Examples:
1.0.0.0- Initial release1.1.0.0- Added new features1.1.1.0- Bug fix release2.0.0.0- Major rewrite
# Install Visual Studio 2022 with:
# - .NET desktop development workload
# - Desktop development with C++ workloadnuget restore ManpLab.sln
# Or in Visual Studio: Tools → NuGet Package Manager → Restore# Ensure Platform is set correctly in Configuration Manager
# Build → Configuration Manager → Active solution platform# For unsigned packages:
# Set AppxPackageSigningEnabled to false in .csproj
# Users will see security warning (expected for open-source)# Ensure PublishSingleFile=false
# Ensure WindowsPackageType=None
# Check that native dependencies are copied-
Update documentation:
- Update README.md badges
- Update version references
- Add changelog entry
-
Announce release:
- GitHub discussions
- Project website
- Social media (if applicable)
-
Monitor feedback:
- GitHub issues
- User reports
- Performance metrics
-
Plan next release:
- Review open issues
- Prioritize features
- Set milestone
Last Updated: January 2026
Next Scheduled Release: TBD