App-GitKtti

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

<h1 align="center">
  <a href="https://saumon.github.io/gitktti/" target="_blank">
    <img src="docs/assets/gitktti_logo.png" alt="GitKttiâ„¢ Logo - Click to visit landing page" width="150"/>
  </a>
</h1>

# The `gitktti` project *- by saumonâ„¢*

[![Landing Page](https://img.shields.io/badge/Landing_Page-saumon.github.io%2Fgitktti-blue.svg)](https://saumon.github.io/gitktti/)
[![CPAN version](https://badge.fury.io/pl/App-GitKtti.svg)](https://metacpan.org/pod/App::GitKtti)
[![License](https://img.shields.io/badge/license-Perl_5-blue.svg)](LICENSE)

The `gitktti` scripts are provided to help developers safely use git flow. So powerful... 🚀
>**saumon:** Yes so powerful!

## 📋 Table of contents

- [The `gitktti` project *- by saumonâ„¢*](#the-gitktti-project---by-saumon)
  - [📋 Table of contents](#-table-of-contents)
  - [📖 Description](#-description)
    - [Git flow principles](#git-flow-principles)
    - [Branch types](#branch-types)
  - [🔎 Detailed workflows](#-detailed-workflows)
    - [Feature workflow](#feature-workflow)
    - [Hotfix workflow](#hotfix-workflow)
    - [Release workflow](#release-workflow)
    - [Hotfix during release workflow](#hotfix-during-release-workflow)
  - [📦 Installation](#-installation)
    - [From CPAN (Recommended)](#from-cpan-recommended)
    - [From Source](#from-source)
    - [Manual Installation](#manual-installation)
  - [🗑️ Uninstallation](#️-uninstallation)
  - [⚒️ Available Commands](#️-available-commands)
  - [🐰 Quick Start](#-quick-start)
  - [⭐️ Recommended aliases](#️-recommended-aliases)
    - [Alias descriptions](#alias-descriptions)
    - [Usage examples](#usage-examples)
  - [🚀 CPAN Distribution Guide](#-cpan-distribution-guide)
    - [Prerequisites](#prerequisites)
    - [Command Line Upload](#command-line-upload)
      - [Step 1: Install Upload Tool](#step-1-install-upload-tool)
      - [Step 2: Configure PAUSE Credentials](#step-2-configure-pause-credentials)
      - [Step 3: Prepare Distribution](#step-3-prepare-distribution)
      - [Step 4: Upload to CPAN](#step-4-upload-to-cpan)
      - [What Happens Next](#what-happens-next)
      - [Complete Example](#complete-example)
  - [📋 Recent Releases](#-recent-releases)
    - [Release `2.0.4` - 05/03/2026](#release-204---05032026)
    - [Release `2.0.3` - 28/02/2026](#release-203---28022026)
    - [Release `2.0.2` - 22/02/2026](#release-202---22022026)
    - [Release `2.0.1` - 01/02/2026](#release-201---01022026)
    - [Release `2.0.0` - 10/09/2025](#release-200---10092025)
    - [Release `1.3.3` - 27/08/2025](#release-133---27082025)
    - [Release `1.3.2` - 25/08/2025](#release-132---25082025)
    - [Release `1.3.1` - 24/08/2025](#release-131---24082025)

## 📖 Description

Git flow is a branching methodology that organizes development around two main branches:

- **`master`** : production branch containing only stable and tagged code
- **`develop`** : development branch where all new features are integrated

### Git flow principles

```mermaid
---
title: Git Flow - Overview
---
%%{init: { 'gitGraph': {'showCommitLabel': true, 'mainBranchName': 'master'}} }%%
gitGraph
    commit id: "v1.0.0"
    branch develop
    checkout develop
    commit id: "Init dev"

    branch feature/login
    checkout feature/login
    commit id: "Add login"
    commit id: "Fix login"

    checkout develop
    merge feature/login
    commit id: "Merge login"

    branch release/v1.1.0
    checkout release/v1.1.0
    commit id: "Prepare v1.1.0"

    checkout master
    merge release/v1.1.0
    commit id: "v1.1.0" tag: "v1.1.0"

    checkout develop
    merge release/v1.1.0

    checkout master
    branch hotfix/v1.1.1
    checkout hotfix/v1.1.1
    commit id: "Fix critical bug"

    checkout master

README.md  view on Meta::CPAN

kmove                           # Interactive branch renaming

# Delete a branch
kdel --name feature/old-feature # Deletes specified branch locally and remotely
kdel --force                    # Force delete with interactive selection
kdel                            # Interactive branch deletion

# Run tests
ktest                           # Run diagnostic tests
```

**Without aliases (full command names):**

```bash
# Same functionality with full command names
gitktti-fix --mode feature --name user-authentication
gitktti-fix --name critical-security-fix
gitktti-fix --mode release
gitktti-fixend
gitktti-fix --prune
gitktti-tag
gitktti-checkout
gitktti-move --name feature/new-name
gitktti-delete --name feature/old-feature
gitktti-tests
```

## 🚀 CPAN Distribution Guide

This section is for maintainers who want to upload new versions of GitKtti to CPAN.

### Prerequisites

1. **PAUSE Account**: Create an account at https://pause.perl.org/pause/query?ACTION=request_id
2. **Quality Check**: Ensure your code passes all tests and quality checks

```bash
# Run quality checks
perlcritic lib/App/GitKtti.pm
perl Makefile.PL
make test
make disttest
```

### Command Line Upload

The recommended method for uploading to CPAN using the command line:

#### Step 1: Install Upload Tool

```bash
# Install CPAN::Uploader (preferred method)
cpanm CPAN::Uploader
# or
cpan CPAN::Uploader
```

#### Step 2: Configure PAUSE Credentials

```bash
# Create credentials file (one time setup)
echo "user YOUR_PAUSE_ID" > ~/.pause
echo "password YOUR_PASSWORD" >> ~/.pause
chmod 600 ~/.pause
```

Replace `YOUR_PAUSE_ID` and `YOUR_PASSWORD` with your actual PAUSE credentials.

#### Step 3: Prepare Distribution

```bash
# Clean and build distribution
make realclean
perl Makefile.PL
make
make test
make dist
```

This creates: `App-GitKtti-X.Y.Z.tar.gz`

#### Step 4: Upload to CPAN

```bash
# Upload your distribution
cpan-upload App-GitKtti-X.Y.Z.tar.gz
```

#### What Happens Next

1. **Immediate confirmation**: Command line feedback
2. **PAUSE email**: Confirmation email from PAUSE
3. **CPAN indexing**: ~15-30 minutes to appear on CPAN
4. **MetaCPAN**: Module visible on https://metacpan.org/

#### Complete Example

```bash
# Full workflow example
cd ~/work/scripts/perl/gitktti

# Quality checks
perlcritic lib/App/GitKtti.pm
make realclean
perl Makefile.PL
make test
make disttest

# Build distribution
make dist

# Upload (assuming credentials already configured)
cpan-upload App-GitKtti-2.0.0.tar.gz
```

**Note**: Only authorized maintainers with PAUSE access can upload to CPAN.

***

## 📋 Recent Releases

### Release `2.0.4` - 05/03/2026

- **docs**: README update (added link to landing page)
- **ktag**: Supports both `main` and `master` branches for tagging

### Release `2.0.3` - 28/02/2026

- **docs**: GitHub logo on landing page

### Release `2.0.2` - 22/02/2026

- **kfixend**: GitHub dependabot branches compatibility

### Release `2.0.1` - 01/02/2026

- Lint fixes
- **kfixend**: GitHub spec-kit feature branches compatibility

### Release `2.0.0` - 10/09/2025

**🚀 MAJOR MODERNIZATION RELEASE - CPAN READY!**

- **BREAKING CHANGES:** Complete architecture modernization for CPAN distribution
- **NEW:** CPAN installable with `cpanm App::GitKtti` or `cpan App::GitKtti`
- **NEW:** Scripts renamed with `gitktti-` prefix (e.g., `gitktti-checkout`)
- **NEW:** Professional test suite and modern documentation
- **MIGRATION:** Old `perl gitktti_*.pl` → New `gitktti-*` commands

### Release `1.3.3` - 27/08/2025

- GitKtti logo now displayed in terminal

### Release `1.3.2` - 25/08/2025

- Documentation reorganization

### Release `1.3.1` - 24/08/2025

- Added landing page

***

**📚 For complete version history and detailed changelogs, see [Changes](Changes) file**



( run in 1.080 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )