Skip to content

AlekseyBykov/patchcraft-desktop

Repository files navigation

PatchCraft Desktop

A desktop tool for automating patch creation (application patches, micro patches, task-based patches).

PatchCraft Desktop UI

Features

  • Build ZIP patches from a prototype
  • Automatically update versions
  • Perform impact analysis based on commits
  • Generate notifications (email / Matrix)
  • Publish patches to Nexus

Getting Started (Development)

Requirements

  • Go 1.22+
  • Node.js 18+
  • Wails CLI

Install Wails:

go install github.com/wailsapp/wails/v2/cmd/wails@latest

Run in Dev Mode

wails dev

This will:

  • Install frontend dependencies (Vite + React)
  • Generate Go ↔ JS bindings
  • Launch the desktop app

Build

Linux

wails build

Output:

build/bin/PatchCraft

Windows

wails build -platform windows/amd64

Output:

build/bin/PatchCraft.exe

Distribution Structure

Linux

PatchCraft-v1.0.0-linux/
│
├── PatchCraft
├── config.yaml
├── work/
└── patches/

Windows

PatchCraft-v1.0.0-windows/
│
├── PatchCraft.exe
├── config.yaml
├── work/
└── patches/

Configuration

Example config.yaml:

repo-dir: /path/to/repo

mail:
  smtp-host: smtp.example.com
  smtp-port: 587
  username: YOUR_USER
  password: YOUR_PASSWORD
  from: sender@example.com
  to: recipient@example.com

nexus:
  url: https://your-nexus-url
  repository: patch
  username: YOUR_USER
  password: YOUR_PASSWORD

jira:
  base-url: https://your-jira
  auth:
    username: YOUR_USER
    password: YOUR_PASSWORD

matrix:
  webhook:
    app-patch: YOUR_URL
    micro-patch: YOUR_URL

Core Functionality

Version Analysis

  • Detects next patch version
  • Builds patch URLs

Impact Analysis

  • Based on commit hashes

  • Determines:

    • Changed files
    • Required JARs
    • Descriptor updates

ZIP Builder

  • Updates:

    • versions
    • SQL scripts (patch_.sql)
  • Produces final archive

Notifications

  • Email (HTML templates)
  • Matrix (text messages)

Nexus Integration

  • Uploads patches to repository

Architecture

React (UI)
   ↓
Wails bindings
   ↓
Go backend
   ↓
Services:
  - MicroPatch
  - MicroTask
  - Impact

Advantages

  • Single binary (no JVM required)
  • No external runtime
  • Fast startup
  • Easy distribution

About

Full-stack desktop tool for automated patch generation, impact analysis, and delivery workflows (Go + Wails), reducing manual effort in release preparation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors