Giter Club home page Giter Club logo

changie's Introduction

changie

Changie is a version and change log manager for releases. It's designed for projects using Git, Semantic Versioning, and Keep a Changelog.

Features

  • Semantic versioning support (major, minor, patch)
  • Automatic CHANGELOG.md management
  • Git integration for version tagging
  • Support for different remote repository providers (GitHub, Bitbucket)

Quick Start

Installation

To install changie, use the following command:

go get -u github.com/peiman/changie

Basic Usage

  1. Initialize your project:
changie init
  1. Add a changelog entry:
changie changelog added "New feature: Improved error handling"
  1. Bump the version:
changie minor

Detailed Usage

Managing the changelog

To add a new entry to the changelog, use one of the following commands:

changie changelog added "Description of new feature"
changie changelog changed "Description of changes in existing functionality"
changie changelog deprecated "Description of soon-to-be removed features"
changie changelog removed "Description of removed features"
changie changelog fixed "Description of any bug fixes"
changie changelog security "Description of security vulnerabilities fixed"

Bumping versions

To bump the version, use one of the following commands:

changie major  # Bump major version (e.g., 1.3.2 -> 2.0.0)
changie minor  # Bump minor version (e.g., 1.3.2 -> 1.4.0)
changie patch  # Bump patch version (e.g., 1.3.2 -> 1.3.3)

Automatic pushing

To bump the version and automatically push changes and tags, use the --auto-push flag:

changie minor --auto-push

Specifying the remote repository provider

By default, changie assumes you're using GitHub. To specify a different provider, use the --rrp flag:

changie --rrp bitbucket major

Configuration

Changie doesn't require any configuration files. It uses command-line flags for customization.

Troubleshooting

Version mismatch between Git tag and Changelog

If you encounter a warning about version mismatch, ensure that your Git tags and CHANGELOG.md are in sync. You may need to manually edit the changelog or create a new Git tag.

Git is not installed

Changie requires Git to be installed and available in your system's PATH. Ensure Git is properly installed and accessible from the command line.

Contributing

Contributions to changie are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Developer Guide

Setting Up

To contribute to changie or modify it for your own needs, you'll need to clone the repository and set up your development environment. Ensure you have Go installed on your system.

  1. Clone the repository:
git clone https://github.com/peiman/changie.git
cd changie
  1. Install dependencies:
go mod tidy

Using the Makefile

The Makefile provides several commands to streamline common development tasks.

  • Lint the code:

    make lint

    This command runs golangci-lint to check for linting issues.

  • Run tests:

    make test

    This command runs all tests to ensure everything is working correctly.

  • Install the binary:

    make install

    This command installs the binary into your GOBIN directory, making it available for use system-wide.

  • Build the project:

    make build

    This command compiles the project.

  • Clean the build cache:

    make clean

    This command cleans the build cache, test cache, and module cache.

  • Development mode (lint and test):

    make dev

    This command runs both the lint and test commands to ensure your code is clean and functioning before you commit.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

changie's People

Contributors

peiman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.