Operations, Build Automation, and Release Guide (Operation Guide)
Comprehensive runbook for version synchronization, standalone compilation (.exe), and Microsoft Store (MSIX) packaging automation.
End-to-end operational guide for version synchronization, automated compilation, and Windows Store package staging.
This document provides operational instructions for the PowerShell automation scripts that manage fjFlow’s versioning, standalone binary compilation (.exe), and pre-packaging workflows for Windows Store (MSIX) deployments.
Table of Contents
- 1. Automation Scripts Overview
- 2. Three-Step Release Workflow
- 3. Script Options and Direct Execution
- 4. Troubleshooting and Operational Standards
1. Automation Scripts Overview
Release operations are automated via scripts located at the repository root:
| Script | Purpose & Behavior | Key Options |
|---|---|---|
update_version.ps1 |
Extracts version and changelog from RELEASE_NOTES.txt, syncs variables, and triggers compilation |
-Build:$true (default) / -Build:$false |
build.ps1 |
Compiles .ahk sources into fjFlow_Free.exe and fjFlow_Pro.exe using Ahk2Exe |
-Edition "all" (default) / "free" / "pro" |
prepare-msix.ps1 |
Stages compiled binaries into msix_build_free and msix_build_pro packaging folders |
-Edition "all" (default) / "free" / "pro" |
tools/generate_assets.ps1 |
Automatically converts and generates application and store visual assets | None |
2. Three-Step Release Workflow
Follow these steps to produce and stage a new software release:
Step 1: Update the Release Notes
- Open
RELEASE_NOTES.txtin a text editor. - Enter the new version number on the first line, followed by bulleted release highlights:
Version: 1.2.0
- Improved keystroke responsiveness in key extensions
- Added magnifier grid mode to UI Hint navigation
- Resolved layout clipping issues in settings GUI
Step 2: Synchronize Version and Run Automated Compilation
Open a PowerShell terminal and run:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; .\update_version.ps1
What happens:
- The script parses the version number (e.g.,
1.2.0) fromRELEASE_NOTES.txt. - Updates the
AppVersionconstant infjFlow.ahk. - Calls
build.ps1to compile bothfjFlow_Free.exeandfjFlow_Pro.exeinto thebuild\folder.
Step 3: Stage the Windows Store (MSIX) Package Directories
Prepare the staging directories required by the MSIX Packaging Tool:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; .\prepare-msix.ps1
What happens:
- The latest compiled executables from
build\are copied intomsix_build_free\andmsix_build_pro\. - Directories are ready for packaging via MSIX Packaging Tool or
MakeAppx.exe.
3. Script Options and Direct Execution
3.1 update_version.ps1 (Version Synchronization Only)
To update version variables in code without compiling binaries:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; .\update_version.ps1 -Build:$false
3.2 build.ps1 (Individual Edition Compilation)
To compile a single edition independently:
- Free Edition only:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; .\build.ps1 -Edition free - Pro Edition only:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; .\build.ps1 -Edition pro
3.3 prepare-msix.ps1 (MSIX Staging Only)
To prepare only the Pro edition staging folder:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; .\prepare-msix.ps1 -Edition pro
4. Troubleshooting and Operational Standards
4.1 Character Encoding (UTF-8 Without BOM)
- All scripts and
RELEASE_NOTES.txtmust be saved in UTF-8 (without BOM). - When performing file operations in PowerShell, always specify
-Encoding UTF8.
4.2 PowerShell Execution Policy Bypass
- If execution policy restrictions prevent scripts from running, bypass the policy temporarily:
powershell -ExecutionPolicy Bypass -File .\update_version.ps1
4.3 Git Push Protocols
- Stage and commit build artifacts locally (
git add,git commit). - Always run
git pushdirectly from an interactive terminal to prevent background credential prompt deadlocks.