gitaiflow / Releases / Release Title
DocsgitaiflowReleasesRelease Title

Release Title

gitaiflow v1.1.0 — Versioned installs, mandatory AI config, and automated release tagging

3 min readApplies to v1.1.3
On this page ▾
  1. Release Title
  2. Release Details

Release Title

Release Details

This release restructures how gitaiflow is installed, configured, and released. Installers now fetch versioned artifacts from R2, create a mandatory global config file with your AI credentials on first run, and the release pipeline produces signed binaries, GitLab/GitHub releases, and AI-generated release notes from a single version tag.

Breaking Changes

  • AI configuration is now mandatory and has no built-in defaults. The installer (or first run) creates ~/.gitaiflow/config.env with four required keys: AI_PROVIDER, AI_API_KEY, AI_BASE_URL, and AI_MODEL. You must populate these before gitaiflow can call any AI service.
  • The --print-commit flag is renamed to --change-summary. Update scripts and aliases accordingly.
  • Artifact storage layout has changed. Summaries and markdown outputs are now written under per-run subdirectories (YYYY/MM/DD/HHMMSS+random/) instead of flat day-level folders. The diff/ directory remains day-level for same-day reuse. The --last-summary flag reads the most recent run from this new layout.

Highlights

Versioned, reproducible installs
Installers (install.sh, install.ps1) accept an explicit version or GITAIFLOW_VERSION env var, resolve the latest version from R2/latest.txt, and download binaries from versioned paths (installers/vX.Y.Z/). They also create the mandatory config.env and handle sudo home directories correctly on Linux/macOS.

Automated release tagging and publishing
A new tag_release.sh script creates and pushes annotated git tags to GitLab and GitHub, then builds releases from RELEASE_NOTES.md (using ## Release Title and ## Release Draft sections) and links binaries from the GitLab package registry. The pipeline can skip tagging, release creation, or individual platforms via SKIP_TAG, SKIP_RELEASE, SKIP_GITLAB, SKIP_GITHUB.

AI-generated release notes
Run gitaiflow --release-notes to read CHANGELOG.md, call your configured AI, and emit a structured RELEASE_NOTES.md ready for the release pipeline. Set SKIP_RELEASE_NOTES=1 to bypass this step.

Per-run artifact isolation
Each invocation now writes its JSON and markdown artifacts into a unique timestamped subfolder, preventing runs from overwriting each other. --last-summary prints the latest change-summary from disk without invoking AI, and find_last_summary_run returns all groups from the most recent run only.

Comprehensive test matrix
New smoke tests exercise built installer binaries on macOS (ARM64), Linux (AMD64/ARM64), and Windows (via Wine), including quarantine and ad-hoc signing handling. The CLI test suite covers 40+ flag combinations through generate_summary.main() with mocked services, and artifact manager tests validate the new per-run partitioning and legacy fallback behavior.

Installation

macOS & Linux (bash):

bash
# latest
curl -fsSL https://install.djangoplay.org/gitaiflow | bash

# specific version — note the -s -- before args when piping into bash
curl -fsSL https://install.djangoplay.org/gitaiflow | bash -s -- v1.1.0

Windows (PowerShell as Administrator):

powershell
# latest
irm https://install.djangoplay.org/gitaiflow.ps1 | iex

# specific version
$env:GITAIFLOW_VERSION = "v1.1.0"; irm https://install.djangoplay.org/gitaiflow.ps1 | iex

Direct binary downloads for macOS (Apple Silicon), Linux (x86_64/arm64), and Windows are attached to this release.

Full Changelog

See CHANGELOG.md for the complete list of additions, fixes, and test coverage.