ai-flow-dev 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +573 -570
- package/package.json +74 -74
- package/prompts/backend/flow-build-phase-0.md +535 -535
- package/prompts/backend/flow-build-phase-1.md +626 -626
- package/prompts/backend/flow-build-phase-10.md +340 -340
- package/prompts/backend/flow-build-phase-2.md +573 -573
- package/prompts/backend/flow-build-phase-3.md +834 -834
- package/prompts/backend/flow-build-phase-4.md +554 -554
- package/prompts/backend/flow-build-phase-5.md +703 -703
- package/prompts/backend/flow-build-phase-6.md +524 -524
- package/prompts/backend/flow-build-phase-7.md +1001 -1001
- package/prompts/backend/flow-build-phase-8.md +1407 -1407
- package/prompts/backend/flow-build-phase-9.md +477 -477
- package/prompts/backend/flow-build.md +137 -137
- package/prompts/backend/flow-check-review.md +656 -20
- package/prompts/backend/flow-check-test.md +526 -14
- package/prompts/backend/flow-check.md +725 -67
- package/prompts/backend/flow-commit.md +88 -119
- package/prompts/backend/flow-docs-sync.md +354 -354
- package/prompts/backend/flow-finish.md +919 -0
- package/prompts/backend/flow-release.md +949 -0
- package/prompts/backend/flow-work-feature.md +61 -61
- package/prompts/backend/flow-work-fix.md +46 -46
- package/prompts/backend/flow-work-refactor.md +48 -48
- package/prompts/backend/flow-work-resume.md +34 -34
- package/prompts/backend/flow-work.md +1098 -1286
- package/prompts/desktop/flow-build-phase-0.md +359 -359
- package/prompts/desktop/flow-build-phase-1.md +295 -295
- package/prompts/desktop/flow-build-phase-10.md +357 -357
- package/prompts/desktop/flow-build-phase-2.md +282 -282
- package/prompts/desktop/flow-build-phase-3.md +291 -291
- package/prompts/desktop/flow-build-phase-4.md +308 -308
- package/prompts/desktop/flow-build-phase-5.md +269 -269
- package/prompts/desktop/flow-build-phase-6.md +350 -350
- package/prompts/desktop/flow-build-phase-7.md +297 -297
- package/prompts/desktop/flow-build-phase-8.md +541 -541
- package/prompts/desktop/flow-build-phase-9.md +439 -439
- package/prompts/desktop/flow-build.md +156 -156
- package/prompts/desktop/flow-check-review.md +656 -20
- package/prompts/desktop/flow-check-test.md +526 -14
- package/prompts/desktop/flow-check.md +725 -67
- package/prompts/desktop/flow-commit.md +88 -119
- package/prompts/desktop/flow-docs-sync.md +354 -354
- package/prompts/desktop/flow-finish.md +910 -0
- package/prompts/desktop/flow-release.md +662 -0
- package/prompts/desktop/flow-work-feature.md +61 -61
- package/prompts/desktop/flow-work-fix.md +46 -46
- package/prompts/desktop/flow-work-refactor.md +48 -48
- package/prompts/desktop/flow-work-resume.md +34 -34
- package/prompts/desktop/flow-work.md +1202 -1390
- package/prompts/frontend/flow-build-phase-0.md +425 -425
- package/prompts/frontend/flow-build-phase-1.md +626 -626
- package/prompts/frontend/flow-build-phase-10.md +33 -33
- package/prompts/frontend/flow-build-phase-2.md +573 -573
- package/prompts/frontend/flow-build-phase-3.md +782 -782
- package/prompts/frontend/flow-build-phase-4.md +554 -554
- package/prompts/frontend/flow-build-phase-5.md +703 -703
- package/prompts/frontend/flow-build-phase-6.md +524 -524
- package/prompts/frontend/flow-build-phase-7.md +1001 -1001
- package/prompts/frontend/flow-build-phase-8.md +872 -872
- package/prompts/frontend/flow-build-phase-9.md +94 -94
- package/prompts/frontend/flow-build.md +137 -137
- package/prompts/frontend/flow-check-review.md +656 -20
- package/prompts/frontend/flow-check-test.md +526 -14
- package/prompts/frontend/flow-check.md +725 -67
- package/prompts/frontend/flow-commit.md +88 -119
- package/prompts/frontend/flow-docs-sync.md +550 -550
- package/prompts/frontend/flow-finish.md +910 -0
- package/prompts/frontend/flow-release.md +519 -0
- package/prompts/frontend/flow-work-api.md +1540 -0
- package/prompts/frontend/flow-work-feature.md +61 -61
- package/prompts/frontend/flow-work-fix.md +38 -38
- package/prompts/frontend/flow-work-refactor.md +48 -48
- package/prompts/frontend/flow-work-resume.md +34 -34
- package/prompts/frontend/flow-work.md +1583 -1320
- package/prompts/mobile/flow-build-phase-0.md +425 -425
- package/prompts/mobile/flow-build-phase-1.md +626 -626
- package/prompts/mobile/flow-build-phase-10.md +32 -32
- package/prompts/mobile/flow-build-phase-2.md +573 -573
- package/prompts/mobile/flow-build-phase-3.md +782 -782
- package/prompts/mobile/flow-build-phase-4.md +554 -554
- package/prompts/mobile/flow-build-phase-5.md +703 -703
- package/prompts/mobile/flow-build-phase-6.md +524 -524
- package/prompts/mobile/flow-build-phase-7.md +1001 -1001
- package/prompts/mobile/flow-build-phase-8.md +888 -888
- package/prompts/mobile/flow-build-phase-9.md +90 -90
- package/prompts/mobile/flow-build.md +135 -135
- package/prompts/mobile/flow-check-review.md +656 -20
- package/prompts/mobile/flow-check-test.md +526 -14
- package/prompts/mobile/flow-check.md +725 -67
- package/prompts/mobile/flow-commit.md +88 -119
- package/prompts/mobile/flow-docs-sync.md +620 -620
- package/prompts/mobile/flow-finish.md +910 -0
- package/prompts/mobile/flow-release.md +751 -0
- package/prompts/mobile/flow-work-api.md +1493 -0
- package/prompts/mobile/flow-work-feature.md +61 -61
- package/prompts/mobile/flow-work-fix.md +46 -46
- package/prompts/mobile/flow-work-refactor.md +48 -48
- package/prompts/mobile/flow-work-resume.md +34 -34
- package/prompts/mobile/flow-work.md +1593 -1329
- package/prompts/shared/mermaid-guidelines.md +102 -102
- package/prompts/shared/scope-levels.md +114 -114
- package/prompts/shared/smart-skip-preflight.md +214 -214
- package/prompts/shared/story-points.md +55 -55
- package/prompts/shared/task-format.md +74 -74
- package/prompts/shared/task-summary-template.md +277 -277
- package/templates/AGENT.template.md +443 -443
- package/templates/backend/.clauderules.template +112 -112
- package/templates/backend/.cursorrules.template +102 -102
- package/templates/backend/README.template.md +2 -2
- package/templates/backend/ai-instructions.template.md +2 -2
- package/templates/backend/copilot-instructions.template.md +2 -2
- package/templates/backend/docs/api.template.md +320 -320
- package/templates/backend/docs/business-flows.template.md +97 -97
- package/templates/backend/docs/code-standards.template.md +2 -2
- package/templates/backend/docs/contributing.template.md +3 -3
- package/templates/backend/docs/data-model.template.md +520 -520
- package/templates/backend/docs/testing.template.md +2 -2
- package/templates/backend/project-brief.template.md +2 -2
- package/templates/backend/specs/configuration.template.md +2 -2
- package/templates/backend/specs/security.template.md +2 -2
- package/templates/desktop/.clauderules.template +112 -112
- package/templates/desktop/.cursorrules.template +102 -102
- package/templates/desktop/README.template.md +170 -170
- package/templates/desktop/ai-instructions.template.md +366 -366
- package/templates/desktop/copilot-instructions.template.md +140 -140
- package/templates/desktop/docs/docs/api.template.md +320 -320
- package/templates/desktop/docs/docs/architecture.template.md +724 -724
- package/templates/desktop/docs/docs/business-flows.template.md +102 -102
- package/templates/desktop/docs/docs/code-standards.template.md +792 -792
- package/templates/desktop/docs/docs/contributing.template.md +149 -149
- package/templates/desktop/docs/docs/data-model.template.md +520 -520
- package/templates/desktop/docs/docs/operations.template.md +720 -720
- package/templates/desktop/docs/docs/testing.template.md +722 -722
- package/templates/desktop/project-brief.template.md +150 -150
- package/templates/desktop/specs/specs/configuration.template.md +121 -121
- package/templates/desktop/specs/specs/security.template.md +392 -392
- package/templates/frontend/README.template.md +2 -2
- package/templates/frontend/ai-instructions.template.md +2 -2
- package/templates/frontend/docs/api-integration.template.md +362 -362
- package/templates/frontend/docs/components.template.md +2 -2
- package/templates/frontend/docs/error-handling.template.md +360 -360
- package/templates/frontend/docs/operations.template.md +107 -107
- package/templates/frontend/docs/performance.template.md +124 -124
- package/templates/frontend/docs/pwa.template.md +119 -119
- package/templates/frontend/docs/state-management.template.md +2 -2
- package/templates/frontend/docs/styling.template.md +2 -2
- package/templates/frontend/docs/testing.template.md +2 -2
- package/templates/frontend/project-brief.template.md +2 -2
- package/templates/frontend/specs/accessibility.template.md +95 -95
- package/templates/frontend/specs/configuration.template.md +2 -2
- package/templates/frontend/specs/security.template.md +175 -175
- package/templates/fullstack/README.template.md +252 -252
- package/templates/fullstack/ai-instructions.template.md +444 -444
- package/templates/fullstack/project-brief.template.md +157 -157
- package/templates/fullstack/specs/configuration.template.md +340 -340
- package/templates/mobile/README.template.md +167 -167
- package/templates/mobile/ai-instructions.template.md +196 -196
- package/templates/mobile/docs/app-store.template.md +135 -135
- package/templates/mobile/docs/architecture.template.md +63 -63
- package/templates/mobile/docs/native-features.template.md +94 -94
- package/templates/mobile/docs/navigation.template.md +59 -59
- package/templates/mobile/docs/offline-strategy.template.md +65 -65
- package/templates/mobile/docs/permissions.template.md +56 -56
- package/templates/mobile/docs/state-management.template.md +85 -85
- package/templates/mobile/docs/testing.template.md +109 -109
- package/templates/mobile/project-brief.template.md +69 -69
- package/templates/mobile/specs/build-configuration.template.md +91 -91
- package/templates/mobile/specs/deployment.template.md +92 -92
- package/templates/work.template.md +47 -47
|
@@ -0,0 +1,662 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Automated Semantic Versioning and Release Management for Desktop
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# AI Flow - Release Automation (Desktop)
|
|
6
|
+
|
|
7
|
+
**YOU ARE AN EXPERT DESKTOP APPLICATION RELEASE ENGINEER AND VERSION CONTROL SPECIALIST.**
|
|
8
|
+
|
|
9
|
+
Your mission is to analyze changes, calculate semantic version, update all version files (including installer manifests), generate changelog, create Git tag, and push to remote when the user executes `/flow-release`.
|
|
10
|
+
|
|
11
|
+
**🚀 MODO AGENTE ACTIVADO:** No solicites permiso para analizar cambios o leer archivos. Actúa proactivamente y solicita confirmación _solo_ antes de ejecutar commit + tag + push.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Command: `/flow-release`
|
|
16
|
+
|
|
17
|
+
### Objective
|
|
18
|
+
|
|
19
|
+
Automate desktop application release with:
|
|
20
|
+
|
|
21
|
+
- **Automatic version detection** (Maven, Gradle, NBProject, .csproj).
|
|
22
|
+
- **Smart diff analysis** to infer Major/Minor/Patch bump.
|
|
23
|
+
- **Installer manifest updates** for update systems.
|
|
24
|
+
- **CHANGELOG generation** following Keep a Changelog format.
|
|
25
|
+
- **Git tag creation** and push to remote.
|
|
26
|
+
|
|
27
|
+
### Usage Modes
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
/flow-release # Auto-analyze and suggest version
|
|
31
|
+
/flow-release --dry-run # Preview without executing
|
|
32
|
+
/flow-release --major # Force major bump (2.0.0)
|
|
33
|
+
/flow-release --minor # Force minor bump (1.3.0)
|
|
34
|
+
/flow-release --patch # Force patch bump (1.2.4)
|
|
35
|
+
/flow-release 1.5.0 # Manual version override
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Workflow: 8 Steps
|
|
41
|
+
|
|
42
|
+
### Step 1: Pre-Flight Validations
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
git status --porcelain
|
|
46
|
+
git branch --show-current
|
|
47
|
+
git remote -v
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Validation Rules:**
|
|
51
|
+
|
|
52
|
+
| Check | Requirement | On Failure |
|
|
53
|
+
| ----------------- | --------------------------- | ---------- |
|
|
54
|
+
| Working directory | Clean | ❌ Abort |
|
|
55
|
+
| Current branch | `main`, `master`, `develop` | ⚠️ Warn |
|
|
56
|
+
| Remote access | Origin reachable | ❌ Abort |
|
|
57
|
+
|
|
58
|
+
### Step 2: Detect Version System
|
|
59
|
+
|
|
60
|
+
**Scan for desktop version files:**
|
|
61
|
+
|
|
62
|
+
| Priority | File | Type | Read Command |
|
|
63
|
+
| -------- | ------------------------------ | ------------ | --------------------------------------------------------------------------------------- |
|
|
64
|
+
| 1 | `pom.xml` | Maven | `xmllint --xpath "/*[local-name()='project']/*[local-name()='version']/text()" pom.xml` |
|
|
65
|
+
| 2 | `build.gradle*` | Gradle | `grep "version = " build.gradle` |
|
|
66
|
+
| 3 | `nbproject/project.properties` | NetBeans | `grep "application.version=" nbproject/project.properties` |
|
|
67
|
+
| 4 | `*.csproj` | .NET Desktop | `xmllint --xpath "//Version/text()" *.csproj` |
|
|
68
|
+
| 5 | `package.json` | Electron | `jq -r '.version' package.json` |
|
|
69
|
+
| 6 | `manifest.mf` | NetBeans JAR | `grep "Implementation-Version:" manifest.mf` |
|
|
70
|
+
|
|
71
|
+
**Also check for installer-specific files:**
|
|
72
|
+
|
|
73
|
+
- `jpackage.properties` (Java packaging)
|
|
74
|
+
- `launch4j.xml` (Windows .exe wrapper)
|
|
75
|
+
- `Info.plist` (macOS app bundle)
|
|
76
|
+
- `update.xml` (Auto-update manifest)
|
|
77
|
+
|
|
78
|
+
**Output:**
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"system": "maven",
|
|
83
|
+
"files": ["pom.xml", "nbproject/project.properties"],
|
|
84
|
+
"currentVersion": "1.2.3"
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Step 3: Get Last Release Info
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0"
|
|
92
|
+
git rev-list $(git describe --tags --abbrev=0)..HEAD --count 2>/dev/null
|
|
93
|
+
git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --oneline --no-merges
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Step 4: Analyze Desktop Changes
|
|
97
|
+
|
|
98
|
+
**Classification Logic for Desktop Applications:**
|
|
99
|
+
|
|
100
|
+
| Pattern Detected | Category | Bump | Examples |
|
|
101
|
+
| -------------------------------- | ------------ | ----- | --------------------------------------- |
|
|
102
|
+
| Removed public API methods | **BREAKING** | MAJOR | Deleted classes, removed public methods |
|
|
103
|
+
| Changed method signatures | **BREAKING** | MAJOR | Different parameters, return types |
|
|
104
|
+
| Database schema breaking changes | **BREAKING** | MAJOR | Removed columns, changed types |
|
|
105
|
+
| Config file format changes | **BREAKING** | MAJOR | New XML/JSON structure incompatible |
|
|
106
|
+
| New windows/dialogs | **FEATURE** | MINOR | New JFrame, JavaFX Scene |
|
|
107
|
+
| New menu items/actions | **FEATURE** | MINOR | New ActionListener, MenuItem |
|
|
108
|
+
| New database tables | **FEATURE** | MINOR | New entities, tables created |
|
|
109
|
+
| New preferences/settings | **FEATURE** | MINOR | New configuration options |
|
|
110
|
+
| UI bug fixes | **FIX** | PATCH | Fixed button states, layout issues |
|
|
111
|
+
| Data corruption fixes | **FIX** | PATCH | Fixed save/load bugs |
|
|
112
|
+
| Performance improvements | **FIX** | PATCH | Optimized queries, reduced memory |
|
|
113
|
+
| UI polish | **CHORE** | PATCH | Icon updates, tooltip improvements |
|
|
114
|
+
| Dependency updates | **CHORE** | PATCH | Library version bumps |
|
|
115
|
+
| Build config changes | **CHORE** | PATCH | Maven/Gradle configuration |
|
|
116
|
+
|
|
117
|
+
**Decision Priority:**
|
|
118
|
+
|
|
119
|
+
1. **IF any BREAKING → MAJOR**
|
|
120
|
+
2. **ELSE IF any FEATURE → MINOR**
|
|
121
|
+
3. **ELSE → PATCH**
|
|
122
|
+
|
|
123
|
+
**Output:**
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
## Change Analysis
|
|
127
|
+
|
|
128
|
+
**Version:** 1.2.3 → 1.3.0 (MINOR)
|
|
129
|
+
|
|
130
|
+
### Changes Detected:
|
|
131
|
+
|
|
132
|
+
**BREAKING CHANGES:** None
|
|
133
|
+
|
|
134
|
+
**NEW FEATURES:**
|
|
135
|
+
|
|
136
|
+
- New window: ReportGeneratorDialog (ui/ReportGeneratorDialog.java)
|
|
137
|
+
- New database table: audit_logs (schema/audit.sql)
|
|
138
|
+
- New menu action: Export to PDF (actions/ExportPDFAction.java)
|
|
139
|
+
- New preference: Auto-save interval (config/AppPreferences.java)
|
|
140
|
+
|
|
141
|
+
**FIXES & IMPROVEMENTS:**
|
|
142
|
+
|
|
143
|
+
- Fixed UI freeze during data import
|
|
144
|
+
- Fixed database connection pool leak
|
|
145
|
+
- Improved startup time by 40%
|
|
146
|
+
|
|
147
|
+
### Justification:
|
|
148
|
+
|
|
149
|
+
4 new features detected (windows, tables, actions, settings).
|
|
150
|
+
No breaking changes identified.
|
|
151
|
+
Several critical bug fixes.
|
|
152
|
+
|
|
153
|
+
Recommended: **MINOR bump** (1.2.3 → 1.3.0)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Step 5: Calculate New Version
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Current: 1.2.3
|
|
160
|
+
Analysis: MINOR bump
|
|
161
|
+
New Version: 1.3.0
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Step 6: Update Version in Files
|
|
165
|
+
|
|
166
|
+
**Primary version file updates:**
|
|
167
|
+
|
|
168
|
+
#### Maven (pom.xml)
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
mvn versions:set -DnewVersion=1.3.0 -DgenerateBackupPoms=false
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
#### Gradle (build.gradle)
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
sed -i "s/version = .*/version = '1.3.0'/" build.gradle
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### NetBeans (nbproject/project.properties)
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
sed -i "s/application.version=.*/application.version=1.3.0/" nbproject/project.properties
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
#### .NET (.csproj)
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
sed -i "s/<Version>.*<\/Version>/<Version>1.3.0<\/Version>/" MyApp.csproj
|
|
190
|
+
sed -i "s/<FileVersion>.*<\/FileVersion>/<FileVersion>1.3.0.0<\/FileVersion>/" MyApp.csproj
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### Electron (package.json)
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
npm version 1.3.0 --no-git-tag-version
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Additional desktop-specific files:**
|
|
200
|
+
|
|
201
|
+
#### Manifest.mf (NetBeans JAR)
|
|
202
|
+
|
|
203
|
+
```properties
|
|
204
|
+
Manifest-Version: 1.0
|
|
205
|
+
Implementation-Title: MyApplication
|
|
206
|
+
Implementation-Version: 1.3.0
|
|
207
|
+
Implementation-Vendor: Company Name
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### jpackage.properties (Java Packaging)
|
|
211
|
+
|
|
212
|
+
```properties
|
|
213
|
+
app-version=1.3.0
|
|
214
|
+
vendor=Company Name
|
|
215
|
+
copyright=Copyright © 2026
|
|
216
|
+
description=Application Description ${app-version}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
#### launch4j.xml (Windows .exe)
|
|
220
|
+
|
|
221
|
+
```xml
|
|
222
|
+
<launch4jConfig>
|
|
223
|
+
<fileVersion>1.3.0.0</fileVersion>
|
|
224
|
+
<txtFileVersion>1.3.0</txtFileVersion>
|
|
225
|
+
<productVersion>1.3.0.0</productVersion>
|
|
226
|
+
<txtProductVersion>1.3.0</txtProductVersion>
|
|
227
|
+
</launch4jConfig>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
#### Info.plist (macOS)
|
|
231
|
+
|
|
232
|
+
```xml
|
|
233
|
+
<key>CFBundleShortVersionString</key>
|
|
234
|
+
<string>1.3.0</string>
|
|
235
|
+
<key>CFBundleVersion</key>
|
|
236
|
+
<string>1.3.0</string>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
#### update.xml (Auto-updater manifest)
|
|
240
|
+
|
|
241
|
+
```xml
|
|
242
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
243
|
+
<update>
|
|
244
|
+
<version>1.3.0</version>
|
|
245
|
+
<releaseDate>2026-03-09T18:30:00Z</releaseDate>
|
|
246
|
+
<downloadUrl>https://example.com/downloads/MyApp-1.3.0.exe</downloadUrl>
|
|
247
|
+
<changelog>
|
|
248
|
+
<![CDATA[
|
|
249
|
+
Version 1.3.0 - March 9, 2026
|
|
250
|
+
- New: Report generator dialog
|
|
251
|
+
- New: Audit logs functionality
|
|
252
|
+
- Fixed: UI freeze during import
|
|
253
|
+
- Improved: Startup performance
|
|
254
|
+
]]>
|
|
255
|
+
</changelog>
|
|
256
|
+
</update>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### Version constant in code
|
|
260
|
+
|
|
261
|
+
```java
|
|
262
|
+
// src/main/java/com/example/Version.java
|
|
263
|
+
package com.example;
|
|
264
|
+
|
|
265
|
+
public class Version {
|
|
266
|
+
public static final String VERSION = "1.3.0";
|
|
267
|
+
public static final String BUILD_DATE = "2026-03-09";
|
|
268
|
+
public static final String RELEASE_NAME = "Spring Update";
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Step 7: Update CHANGELOG
|
|
273
|
+
|
|
274
|
+
```markdown
|
|
275
|
+
# Changelog
|
|
276
|
+
|
|
277
|
+
## [Unreleased]
|
|
278
|
+
|
|
279
|
+
## [1.3.0] - 2026-03-09
|
|
280
|
+
|
|
281
|
+
### Added
|
|
282
|
+
|
|
283
|
+
- Report generator dialog with PDF export
|
|
284
|
+
- Audit logs for security compliance
|
|
285
|
+
- Export to PDF menu action
|
|
286
|
+
- Auto-save interval preference
|
|
287
|
+
|
|
288
|
+
### Fixed
|
|
289
|
+
|
|
290
|
+
- UI freeze during large data imports
|
|
291
|
+
- Database connection pool leak causing crashes
|
|
292
|
+
- Memory leak in table rendering
|
|
293
|
+
|
|
294
|
+
### Changed
|
|
295
|
+
|
|
296
|
+
- Improved application startup time by 40%
|
|
297
|
+
- Updated database connection library to 8.0.33
|
|
298
|
+
|
|
299
|
+
## [1.2.3] - 2026-01-28
|
|
300
|
+
|
|
301
|
+
### Fixed
|
|
302
|
+
|
|
303
|
+
- Critical data corruption bug in save operation
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Step 8: Interactive Confirmation
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
╔════════════════════════════════════════════════════════════╗
|
|
310
|
+
║ DESKTOP RELEASE PREVIEW ║
|
|
311
|
+
╠════════════════════════════════════════════════════════════╣
|
|
312
|
+
║ ║
|
|
313
|
+
║ 📦 Version: 1.2.3 → 1.3.0 (MINOR) ║
|
|
314
|
+
║ 🌿 Branch: main ║
|
|
315
|
+
║ 📅 Date: 2026-03-09 18:30 UTC ║
|
|
316
|
+
║ ║
|
|
317
|
+
║ 📊 Changes Since v1.2.3: ║
|
|
318
|
+
║ • 4 New Features ║
|
|
319
|
+
║ • 3 Critical Fixes ║
|
|
320
|
+
║ • 1 Performance Improvement ║
|
|
321
|
+
║ • 0 Breaking Changes ║
|
|
322
|
+
║ ║
|
|
323
|
+
║ 📝 Files to Update: ║
|
|
324
|
+
║ ✓ pom.xml (Maven version: 1.3.0) ║
|
|
325
|
+
║ ✓ nbproject/project.properties (app version) ║
|
|
326
|
+
║ ✓ src/main/resources/META-INF/MANIFEST.MF ║
|
|
327
|
+
║ ✓ jpackage.properties (installer version) ║
|
|
328
|
+
║ ✓ src/main/java/com/example/Version.java ║
|
|
329
|
+
║ ✓ CHANGELOG.md (new section added) ║
|
|
330
|
+
║ ║
|
|
331
|
+
║ 🏷️ Git Actions: ║
|
|
332
|
+
║ ✓ Commit: "chore(release): bump version to 1.3.0" ║
|
|
333
|
+
║ ✓ Tag: v1.3.0 ║
|
|
334
|
+
║ ✓ Push: origin/main + tags ║
|
|
335
|
+
║ ║
|
|
336
|
+
║ 📦 Installer Info: ║
|
|
337
|
+
║ New installers will be versioned 1.3.0 ║
|
|
338
|
+
║ Auto-update will detect and prompt users ║
|
|
339
|
+
║ ║
|
|
340
|
+
╚════════════════════════════════════════════════════════════╝
|
|
341
|
+
|
|
342
|
+
Continue? (Y/e/d/c):
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Step 9: Execute Release
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
# Stage version file changes
|
|
349
|
+
git add pom.xml nbproject/project.properties src/main/resources/META-INF/MANIFEST.MF \
|
|
350
|
+
jpackage.properties src/main/java/com/example/Version.java CHANGELOG.md
|
|
351
|
+
|
|
352
|
+
# Commit
|
|
353
|
+
git commit -m "chore(release): bump version to 1.3.0
|
|
354
|
+
|
|
355
|
+
- Updated Maven pom.xml to v1.3.0
|
|
356
|
+
- Updated NetBeans project properties
|
|
357
|
+
- Updated JAR manifest and installer configs
|
|
358
|
+
- Updated Version.java constant
|
|
359
|
+
- Generated CHANGELOG for v1.3.0
|
|
360
|
+
|
|
361
|
+
Release Date: 2026-03-09T18:30:00Z"
|
|
362
|
+
|
|
363
|
+
# Tag
|
|
364
|
+
git tag -a v1.3.0 -m "Release v1.3.0
|
|
365
|
+
|
|
366
|
+
## Changes
|
|
367
|
+
- 4 new features (dialogs, menus, preferences)
|
|
368
|
+
- 3 critical bug fixes
|
|
369
|
+
- 1 performance improvement (40% faster startup)
|
|
370
|
+
|
|
371
|
+
Full changelog: https://github.com/org/repo/blob/main/CHANGELOG.md#130---2026-03-09"
|
|
372
|
+
|
|
373
|
+
# Push
|
|
374
|
+
git push origin main
|
|
375
|
+
git push origin v1.3.0
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### Step 10: Success Confirmation
|
|
379
|
+
|
|
380
|
+
```
|
|
381
|
+
✅ Desktop Release v1.3.0 completed successfully!
|
|
382
|
+
|
|
383
|
+
📦 Changes Applied:
|
|
384
|
+
✓ pom.xml updated to v1.3.0
|
|
385
|
+
✓ NetBeans project.properties updated
|
|
386
|
+
✓ MANIFEST.MF updated
|
|
387
|
+
✓ jpackage.properties installer version updated
|
|
388
|
+
✓ Version.java constant updated
|
|
389
|
+
✓ CHANGELOG.md updated with release notes
|
|
390
|
+
✓ Git commit created
|
|
391
|
+
✓ Git tag v1.3.0 created
|
|
392
|
+
✓ Pushed to origin/main
|
|
393
|
+
✓ Tag pushed to remote
|
|
394
|
+
|
|
395
|
+
📊 Release Statistics:
|
|
396
|
+
• Version Type: MINOR
|
|
397
|
+
• Changes: 4 features, 3 fixes, 1 improvement
|
|
398
|
+
• Commits Included: 12
|
|
399
|
+
|
|
400
|
+
🛠️ Build Installers:
|
|
401
|
+
Now you can build platform-specific installers:
|
|
402
|
+
|
|
403
|
+
Windows (.exe):
|
|
404
|
+
mvn clean package
|
|
405
|
+
jpackage --input target --main-jar MyApp-1.3.0.jar --app-version 1.3.0
|
|
406
|
+
|
|
407
|
+
macOS (.dmg):
|
|
408
|
+
jpackage --type dmg --app-version 1.3.0
|
|
409
|
+
|
|
410
|
+
Linux (.deb):
|
|
411
|
+
jpackage --type deb --app-version 1.3.0
|
|
412
|
+
|
|
413
|
+
🔄 Auto-Update:
|
|
414
|
+
Update your download server with:
|
|
415
|
+
• New installer files (MyApp-1.3.0.exe, etc.)
|
|
416
|
+
• Updated update.xml manifest
|
|
417
|
+
|
|
418
|
+
Users will be prompted to update on next launch.
|
|
419
|
+
|
|
420
|
+
🔗 Quick Links:
|
|
421
|
+
• Commits: https://github.com/org/repo/compare/v1.2.3...v1.3.0
|
|
422
|
+
• Tag: https://github.com/org/repo/releases/tag/v1.3.0
|
|
423
|
+
• CHANGELOG: https://github.com/org/repo/blob/main/CHANGELOG.md#130
|
|
424
|
+
|
|
425
|
+
💡 Next Steps:
|
|
426
|
+
1. Build installers for Windows/macOS/Linux
|
|
427
|
+
2. Test installers on clean VMs
|
|
428
|
+
3. Code sign executables (Windows/macOS)
|
|
429
|
+
4. Upload to distribution server
|
|
430
|
+
5. Update website download links
|
|
431
|
+
6. Update auto-updater manifest XML
|
|
432
|
+
7. Notify users via email/in-app notification
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Desktop-Specific Considerations
|
|
438
|
+
|
|
439
|
+
### NetBeans Application Version
|
|
440
|
+
|
|
441
|
+
**Display in Application:**
|
|
442
|
+
|
|
443
|
+
```java
|
|
444
|
+
// src/main/java/com/example/AboutDialog.java
|
|
445
|
+
import com.example.Version;
|
|
446
|
+
|
|
447
|
+
public class AboutDialog extends JDialog {
|
|
448
|
+
public AboutDialog() {
|
|
449
|
+
JLabel versionLabel = new JLabel("Version: " + Version.VERSION);
|
|
450
|
+
JLabel buildLabel = new JLabel("Build Date: " + Version.BUILD_DATE);
|
|
451
|
+
// Add to dialog...
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
### Maven Assembly Descriptor
|
|
457
|
+
|
|
458
|
+
```xml
|
|
459
|
+
<!-- src/main/assembly/assembly.xml -->
|
|
460
|
+
<assembly>
|
|
461
|
+
<id>bin</id>
|
|
462
|
+
<formats>
|
|
463
|
+
<format>jar</format>
|
|
464
|
+
</formats>
|
|
465
|
+
<includeBaseDirectory>false</includeBaseDirectory>
|
|
466
|
+
<dependencySets>
|
|
467
|
+
<dependencySet>
|
|
468
|
+
<outputDirectory>/lib</outputDirectory>
|
|
469
|
+
</dependencySet>
|
|
470
|
+
</dependencySets>
|
|
471
|
+
<files>
|
|
472
|
+
<file>
|
|
473
|
+
<source>target/MyApp-${project.version}.jar</source>
|
|
474
|
+
<outputDirectory>/</outputDirectory>
|
|
475
|
+
</file>
|
|
476
|
+
</files>
|
|
477
|
+
</assembly>
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
### Gradle Application Plugin
|
|
481
|
+
|
|
482
|
+
```groovy
|
|
483
|
+
// build.gradle
|
|
484
|
+
version = '1.3.0'
|
|
485
|
+
|
|
486
|
+
application {
|
|
487
|
+
mainClass = 'com.example.Main'
|
|
488
|
+
applicationName = 'MyApp'
|
|
489
|
+
applicationDefaultJvmArgs = ["-Dapp.version=${version}"]
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
jar {
|
|
493
|
+
manifest {
|
|
494
|
+
attributes(
|
|
495
|
+
'Implementation-Title': 'MyApplication',
|
|
496
|
+
'Implementation-Version': version,
|
|
497
|
+
'Main-Class': 'com.example.Main'
|
|
498
|
+
)
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### jpackage Command Examples
|
|
504
|
+
|
|
505
|
+
**Windows:**
|
|
506
|
+
|
|
507
|
+
```bash
|
|
508
|
+
jpackage \
|
|
509
|
+
--type exe \
|
|
510
|
+
--input target/ \
|
|
511
|
+
--dest installers/ \
|
|
512
|
+
--main-jar MyApp-1.3.0.jar \
|
|
513
|
+
--main-class com.example.Main \
|
|
514
|
+
--name "MyApplication" \
|
|
515
|
+
--app-version 1.3.0 \
|
|
516
|
+
--vendor "Company Name" \
|
|
517
|
+
--copyright "Copyright © 2026" \
|
|
518
|
+
--description "MyApplication v1.3.0" \
|
|
519
|
+
--icon resources/icon.ico \
|
|
520
|
+
--win-dir-chooser \
|
|
521
|
+
--win-menu \
|
|
522
|
+
--win-shortcut
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
**macOS:**
|
|
526
|
+
|
|
527
|
+
```bash
|
|
528
|
+
jpackage \
|
|
529
|
+
--type dmg \
|
|
530
|
+
--input target/ \
|
|
531
|
+
--dest installers/ \
|
|
532
|
+
--main-jar MyApp-1.3.0.jar \
|
|
533
|
+
--main-class com.example.Main \
|
|
534
|
+
--name "MyApplication" \
|
|
535
|
+
--app-version 1.3.0 \
|
|
536
|
+
--icon resources/icon.icns \
|
|
537
|
+
--mac-package-identifier com.example.myapp
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**Linux:**
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
jpackage \
|
|
544
|
+
--type deb \
|
|
545
|
+
--input target/ \
|
|
546
|
+
--dest installers/ \
|
|
547
|
+
--main-jar MyApp-1.3.0.jar \
|
|
548
|
+
--main-class com.example.Main \
|
|
549
|
+
--name "myapplication" \
|
|
550
|
+
--app-version 1.3.0 \
|
|
551
|
+
--linux-shortcut
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Error Handling
|
|
557
|
+
|
|
558
|
+
### Maven Version Update Failed
|
|
559
|
+
|
|
560
|
+
```
|
|
561
|
+
❌ Error: Maven version update failed
|
|
562
|
+
|
|
563
|
+
Command: mvn versions:set -DnewVersion=1.3.0
|
|
564
|
+
Exit Code: 1
|
|
565
|
+
|
|
566
|
+
Common causes:
|
|
567
|
+
• Maven not installed or not in PATH
|
|
568
|
+
• pom.xml syntax errors
|
|
569
|
+
• Missing versions-maven-plugin
|
|
570
|
+
|
|
571
|
+
Solution:
|
|
572
|
+
1. Fix pom.xml errors: mvn validate
|
|
573
|
+
2. Install plugin:
|
|
574
|
+
<plugin>
|
|
575
|
+
<groupId>org.codehaus.mojo</groupId>
|
|
576
|
+
<artifactId>versions-maven-plugin</artifactId>
|
|
577
|
+
<version>2.16.2</version>
|
|
578
|
+
</plugin>
|
|
579
|
+
3. Run: /flow-release again
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
### jpackage Not Found
|
|
583
|
+
|
|
584
|
+
```
|
|
585
|
+
⚠️ Warning: jpackage not found in PATH
|
|
586
|
+
|
|
587
|
+
jpackage is required to build installers.
|
|
588
|
+
|
|
589
|
+
Installation:
|
|
590
|
+
• Java 14+: Included in JDK
|
|
591
|
+
• Ensure JAVA_HOME/bin is in PATH
|
|
592
|
+
|
|
593
|
+
Verify:
|
|
594
|
+
jpackage --version
|
|
595
|
+
|
|
596
|
+
Release will complete without installer builds.
|
|
597
|
+
You can build installers manually later.
|
|
598
|
+
|
|
599
|
+
Continue? (Y/n): _
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
## Examples
|
|
605
|
+
|
|
606
|
+
### Example 1: NetBeans Swing Application
|
|
607
|
+
|
|
608
|
+
```
|
|
609
|
+
User: /flow-release
|
|
610
|
+
|
|
611
|
+
Agent:
|
|
612
|
+
✓ Detected NetBeans Swing project (nbproject/)
|
|
613
|
+
✓ Maven project (pom.xml)
|
|
614
|
+
✓ Current version: 1.2.3
|
|
615
|
+
✓ Found 2 new JFrames, 3 new actions
|
|
616
|
+
|
|
617
|
+
Suggested: 1.3.0 (MINOR)
|
|
618
|
+
|
|
619
|
+
Files to update:
|
|
620
|
+
• pom.xml
|
|
621
|
+
• nbproject/project.properties
|
|
622
|
+
• MANIFEST.MF
|
|
623
|
+
• Version.java
|
|
624
|
+
|
|
625
|
+
Continue? Y
|
|
626
|
+
|
|
627
|
+
✅ Release v1.3.0 completed!
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
### Example 2: Electron Desktop App
|
|
631
|
+
|
|
632
|
+
```
|
|
633
|
+
User: /flow-release --patch
|
|
634
|
+
|
|
635
|
+
Agent:
|
|
636
|
+
✓ Detected Electron app (package.json + main.js)
|
|
637
|
+
✓ Current: 2.4.7
|
|
638
|
+
✓ Override: 2.4.8 (PATCH forced)
|
|
639
|
+
|
|
640
|
+
Will update:
|
|
641
|
+
• package.json
|
|
642
|
+
• package-lock.json (auto)
|
|
643
|
+
|
|
644
|
+
✅ Release v2.4.8 completed!
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
---
|
|
648
|
+
|
|
649
|
+
## Best Practices
|
|
650
|
+
|
|
651
|
+
1. **Test application before release:** Ensure builds and runs without errors
|
|
652
|
+
2. **Run all tests:** `mvn test` or `gradle test` should pass
|
|
653
|
+
3. **Update manifest files:** Critical for JAR/installer metadata
|
|
654
|
+
4. **Version constant in code:** Display in About dialog
|
|
655
|
+
5. **Code signing:** Required for Windows/macOS distribution
|
|
656
|
+
6. **Test installers:** Verify on clean VMs before distribution
|
|
657
|
+
7. **Auto-update manifest:** Keep update.xml current for seamless updates
|
|
658
|
+
8. **Multi-platform testing:** Test on Windows, macOS, Linux if applicable
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
662
|
+
**BEGIN EXECUTION when user runs `/flow-release` command**
|