App-GitKtti
view release on metacpan or search on metacpan
<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â¢*
[](https://saumon.github.io/gitktti/)
[](https://metacpan.org/pod/App::GitKtti)
[](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
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 )