Skip to content

logchange Documentation

Contributors Activity DockerHub DockerHub Pulls Maven Central codecov

Welcome to logchange! 🌳

logchange is a powerful tool that revolutionizes changelog management by solving common problems like merge conflicts and forgotten entries. Instead of editing CHANGELOG.md directly, you create individual YAML files for each change, and logchange generates your final changelog during release.

πŸš€ Key Benefits

  • πŸͺ“ Eliminate merge conflicts - No more conflicts when multiple developers update the same changelog file
  • 🌲 Automated changelog generation - Generate beautiful changelogs during your release process
  • πŸ“œ Perfect release notes - Create reliable release notes automatically from your changelog entries
  • πŸ”§ Multiple distribution options - Available as CLI, Maven Plugin, and Gradle Plugin

πŸ“– Documentation

Quick Start

  • Getting Started Guide - New to logchange? Start here!
  • Installation options (CLI, Maven, Gradle)
  • Project initialization
  • Creating your first changelog entry
  • Basic workflow

Core Documentation

  • Usage Guide - Comprehensive usage instructions
  • Detailed workflow explanations
  • YAML entry format and examples
  • Advanced features and configuration
  • CI/CD integration patterns
  • Templates and customization

  • FAQ - Frequently asked questions

  • Common issues and solutions
  • Best practices and recommendations
  • Troubleshooting guide
  • Migration strategies

  • Reference Documentation - Complete technical reference

  • All CLI commands and options
  • Maven Plugin goals and configuration
  • Gradle Plugin tasks
  • YAML format specification
  • Configuration options
  • Template system

Project Information

  • README - Project overview and basic usage
  • CHANGELOG - Project changelog (generated with logchange!)

πŸƒ Quick Start

Choose Your Installation Method

Method Best For Installation
CLI Any project type brew install logchange/tap/logchange
Maven Java/Maven projects Add plugin to pom.xml
Gradle Java/Gradle projects Add plugin to build.gradle

30-Second Setup

  1. Initialize your project: ```bash # CLI logchange init

# Maven mvn logchange:init

# Gradle ./gradlew logchangeInit ```

  1. Create your first entry: bash # Interactive mode (recommended) logchange add mvn logchange:add ./gradlew logchangeAdd

  2. Generate your changelog: bash logchange generate mvn logchange:generate ./gradlew logchangeGenerate

πŸ› οΈ Installation Options

CLI (Universal)

Works with any project regardless of technology:

# Homebrew (macOS/Linux)
brew install logchange/tap/logchange

# Docker
docker pull logchange/logchange

# Direct download
# Visit GitHub Releases for binary downloads

Maven Plugin

Perfect for Java projects using Maven:

<plugin>
    <groupId>dev.logchange</groupId>
    <artifactId>logchange-maven-plugin</artifactId>
    <version>1.19.5</version>
</plugin>

Gradle Plugin

Ideal for Java projects using Gradle:

plugins {
    id 'dev.logchange' version '1.19.5'
}

πŸ“ Basic Workflow

  1. Development Phase: Create YAML entries for your changes ```yaml title: Add user authentication feature authors:

    • name: Your Name nick: yourhandle url: https://github.com/yourhandle type: added ```
  2. Review Phase: Validate entries before merging bash logchange lint # or mvn logchange:lint

  3. Release Phase: Generate changelog and create release bash logchange release --versionToRelease 1.2.0 # or mvn logchange:release

🎯 Key Features

Entry Types

  • added - New features
  • changed - Changes to existing functionality
  • deprecated - Features that will be removed
  • removed - Features that were removed
  • fixed - Bug fixes
  • security - Security fixes
  • dependency_update - Dependency updates
  • other - Other changes

Advanced Features

  • Multi-version development with dedicated unreleased directories
  • Module support for organizing changes by project components
  • Configuration tracking for deployment-related changes
  • Template customization for personalized changelog formats
  • Project aggregation for multi-repository changelog generation
  • Archive management for historical changelog data

🌟 Example Projects

See logchange in action: - logchange itself - Hofund project

🀝 Contributing

We welcome contributions! Here's how you can help: - πŸ› Report bugs - πŸ’‘ Request features - πŸ“– Improve documentation - πŸ’» Submit code changes

πŸ†˜ Need Help?

πŸ“œ Standards and References

logchange follows the principles of Keep a Changelog with enhancements based on real-world experience across various project types.

The merge conflict problem with traditional CHANGELOG.md files has been documented by GitLab, and logchange provides an elegant solution to this widespread issue.


🌟 Don't forget to star the logchange repository if you find it helpful!

Made with 🌳 by the logchange team