This document explains how to create a new release of the Electron version of Rogue Trader Generator Tools.
The release pipeline is fully automated via GitHub Actions. You only need:
- Maintainer access to the repository
- A GitHub account with permissions to trigger workflows
Before creating a release, update the version number in the codebase:
-
Navigate to the
electron-appdirectory:cd electron-app -
Update the version number using npm:
npm version <newversion>
Where
<newversion>is one of:major,minor,patch, or an explicit version like2.1.0Examples:
- For a patch release (bug fixes):
npm version patch(2.0.3 → 2.0.4) - For a minor release (new features):
npm version minor(2.0.3 → 2.1.0) - For a major release (breaking changes):
npm version major(2.0.3 → 3.0.0) - For a specific version:
npm version 2.1.0
- For a patch release (bug fixes):
-
Push the version update to the master branch:
git push origin master --tags
This ensures the version in package.json is updated and committed before triggering the release build.
- Go to the repository on GitHub: https://github.com/TiLT42/RogueTraderGeneratorTools
- Click on the "Actions" tab
- Select "Release Electron App" from the workflow list on the left
- Click the "Run workflow" button (top right)
- Fill in the required inputs:
- Version number: The version for this release (e.g.,
2.0.0,2.1.0) - Release notes: Description of what's new in this version (supports Markdown)
- Mark as pre-release (optional): Check this for beta/alpha releases
- Version number: The version for this release (e.g.,
- Click "Run workflow" to start the build
The workflow will:
- Build the application for Windows, macOS, and Linux in parallel
- Create installers/packages for each platform:
- Windows:
.exeinstaller (NSIS format with installation wizard) - macOS:
.dmgdisk image (supports both Intel x64 and Apple Silicon arm64) - Linux:
.AppImageportable application
- Windows:
- Upload all artifacts to the workflow run
- Create a draft release with all the installers attached
Build time: Typically 10-20 minutes depending on GitHub Actions queue
- Once the workflow completes, go to the "Releases" page
- Find the new draft release (it will be marked as "Draft")
- Review:
- The release notes
- The attached installers (Windows .exe, macOS .dmg, Linux .AppImage)
- The version tag
- Make any necessary edits to the release notes
- Click "Publish release" to make it available to users
The Electron version uses semantic versioning starting from 2.0.0:
- Major version (2.x.x): Breaking changes or major new features
- Minor version (x.1.x): New features, backwards compatible
- Patch version (x.x.1): Bug fixes
Previous WPF releases used version 1.x.
Each release will include installers for multiple platforms with clear platform identifiers in the file names:
- File:
Rogue-Trader-Generator-Tools-Windows-x.x.x-Setup.exe - Format: NSIS installer
- Features:
- Installation wizard
- User can choose installation directory
- Creates desktop and start menu shortcuts
- Standard Windows installation/uninstallation
- Files:
Rogue-Trader-Generator-Tools-macOS-x64-x.x.x.dmg(Intel Macs)Rogue-Trader-Generator-Tools-macOS-arm64-x.x.x.dmg(Apple Silicon Macs)
- Format: DMG disk image
- Architectures: Separate builds for Intel x64 and Apple Silicon arm64
- Installation: Drag and drop to Applications folder
- File:
Rogue-Trader-Generator-Tools-Linux-x.x.x.AppImage - Format: AppImage portable application
- Architecture: x64
- Usage: Make executable and run directly, no installation needed
If the build fails:
- Check the workflow logs in the Actions tab
- Common issues:
- Syntax errors in code (run
npm run validatelocally first) - Missing dependencies (ensure package.json is correct)
- Build configuration issues (check electron-builder settings)
- Syntax errors in code (run
If the build succeeds but no release appears:
- Check if you have the necessary permissions
- Verify the workflow completed the "create-release" job
- Look for error messages in the workflow logs
If users report issues with installers:
- Test the installers on the target platform
- Check for code-signing issues (may need to configure signing certificates)
- Verify the electron-builder configuration in package.json
Before triggering a release, it's recommended to:
- Test the app locally with
npm startin the electron-app directory - Run validation with
npm run validate - Test generation of systems, starships, and other content
- Verify save/load functionality works
- Test exports (RTF, PDF, JSON)
Potential improvements to the release process:
- Automatic code signing: Configure certificates for Windows and macOS
- Auto-update system: Implement in-app update checking
- Release notes automation: Generate from commit messages or changelog
- Pre-release testing: Automated integration tests before release
- Multiple architectures: Add ARM64 support for Linux
If you have questions about the release process:
- Open an issue on GitHub
- Contact the repository maintainer @TiLT42