Table of Contents

Jiro.Libs v3.0.1 "Shinpo-Kai"

Release Date: 2025/07/13
Release Type: Patch Release
Branch: main
Code Name: Shinpo-Kai (進歩改) - "Enhanced Progress"

🎉 Overview

This is a patch release of Jiro.Libs that significantly enhances the release automation process with comprehensive quality checks and improved developer experience. The release focuses on tooling improvements and process refinements that make releases more reliable and consistent.

✨ Features Added

Enhanced Release Automation

Quality-First Release Process

  • Code Formatting Integration: Automatic dotnet format verification and correction before releases
  • Markdown Linting: Automated markdown quality checks with auto-fix capabilities
  • Pre-release Validation: Comprehensive checks ensure code quality before tagging

New Release Script Parameters

  • SkipFormat: Option to bypass code formatting checks for quick releases
  • SkipLint: Option to bypass markdown linting for expedited releases
  • Enhanced Help System: Comprehensive usage examples and parameter documentation

Developer Experience Improvements

Safety Features

  • Uncommitted Changes Detection: Warns users about uncommitted changes before release
  • Branch Verification: Ensures releases are created from the main branch
  • Change Tracking: Monitors and reports formatting/linting modifications
  • Confirmation Prompts: Interactive confirmation for safety-critical operations

Enhanced Dry Run Mode

  • Comprehensive Preview: Shows detailed overview of all planned actions
  • Step-by-Step Breakdown: Clear visualization of quality checks, git operations, and release creation
  • Risk Assessment: Helps identify potential issues before execution

🔄 Changes

Release Process Workflow

New Automated Pipeline

  1. Quality Checks (formatting & linting validation)
  2. Generate Release Notesdev/tags/release_notes_v{version}.md
  3. Lint Generated Files (ensure documentation quality)
  4. Commit & Push Changes (if quality checks made modifications)
  5. Create & Push Tag (trigger CI/CD workflows)
  6. GitHub Release Creation (with auto-generated notes)

Git Operations Enhancement

  • Smart Change Detection: Only commits when formatting/linting makes actual changes
  • Automated Commit Messages: Standardized format: chore: format code and lint markdown for release v{version}
  • Atomic Operations: Ensures all changes are committed before tag creation
  • CI/CD Trigger Reliability: Tag push consistently triggers release workflows

Error Handling & Reliability

  • Graceful Failure Handling: Stops on critical errors, including formatting and linting issues
  • Strict Quality Gates: Both dotnet format and markdown linting failures halt the release process
  • Tool Availability Checks: Warns if markdown-lint or other tools are missing
  • Exit Code Management: Proper error propagation for CI/CD integration
  • Recovery Guidance: Clear error messages with suggested solutions

🛠️ Technical Implementation

Code Quality Integration

# Formatting verification with auto-fix
$formatResult = dotnet format src/Main.sln --verify-no-changes 2>&1
if ($LASTEXITCODE -ne 0) {
    Write-ColorOutput "⚠️ Code formatting issues detected. Running format..." "Yellow"
    dotnet format src/Main.sln
    $hasChanges = $true
}

Markdown Quality Control

# Post-generation linting with strict error handling
$markdownLintScript = Join-Path $PSScriptRoot "markdown-lint.ps1"
if (Test-Path $markdownLintScript) {
    & $markdownLintScript -Fix
    if ($LASTEXITCODE -eq 0) {
        Write-ColorOutput "✅ Markdown linting completed successfully" "Green"
        $hasChanges = $true
    } else {
        Write-ColorOutput "❌ Markdown linting failed with errors" "Red"
        exit 1
    }
}

Smart Git Operations

# Conditional commit based on actual changes
if ($hasChanges -and -not $DryRun) {
    git add -A
    git commit -m "chore: format code and lint markdown for release $Version"
    git push origin $currentBranch
}

📊 Benefits

For Developers

  1. Consistent Code Quality: Automated formatting ensures uniform codebase
  2. Reduced Manual Work: Automated quality checks eliminate repetitive tasks
  3. Error Prevention: Pre-release validation catches issues early
  4. Better Documentation: Auto-linted release notes improve readability
  5. Safer Releases: Multiple safety checks prevent accidental bad releases

For CI/CD Pipeline

  1. Reliable Triggers: Consistent tag creation ensures workflows execute properly
  2. Quality Assurance: Pre-push checks reduce CI failure rates
  3. Standardized Process: Uniform release procedure across all versions
  4. Audit Trail: Clear commit history shows quality check results

🔄 Integration & Compatibility

Backward Compatibility

  • Existing Workflows: All existing GitHub Actions continue to work unchanged
  • Parameter Compatibility: All previous script parameters remain functional
  • Tag Format: Release tag format remains consistent (v{major}.{minor}.{patch})

Enhanced Workflows

  • CI/CD Optimization: Faster builds due to pre-validated code formatting
  • Documentation Pipeline: Improved docs deployment with linted markdown
  • Security Scanning: Enhanced reliability with consistent code formatting

📋 Usage Examples

# Full release with all quality checks
.\scripts\create-release.ps1 -Version "v3.0.1"

Quick Release

# Skip quality checks for hotfixes
.\scripts\create-release.ps1 -Version "v3.0.1" -SkipFormat -SkipLint

Preview Mode

# See what would happen without executing
.\scripts\create-release.ps1 -Version "v3.0.1" -DryRun

This patch release establishes Jiro.Libs as having enterprise-grade release management with built-in quality assurance, setting the foundation for reliable and professional software delivery!