Git Product home page Git Product logo

chachacha's Introduction

CHACHACHA

Build Status codecov Package version PyPI - Downloads Language grade: Python

Chachacha changes changelogs. This is a tool you can use to keep your changelog tidy, following the Keep a Changelog specification which is the most implemented plugin at the moment.

Installation

pip install chachacha

Quickstart

Init a new changelog and then add some changes:

chachacha init
chachacha added Glad to meet you
cat CHANGELOG.md

Subcommands are modeled from Keep a Changelog specification:

chachacha --help
Usage: chachacha [OPTIONS] COMMAND [ARGS]...

Options:
  --filename TEXT  changelog filename
  --driver TEXT    changelog format driver
  --help           Show this message and exit.

Commands:
  init        initialize a new file
  config      configure changelog options
  release     release a version
  added       add an "added" entry
  changed     add a "changed" entry
  deprecated  add a "deprecated" entry
  fixed       add a "fixed" entry
  removed     add a "removed" entry
  security    add a "security" entry

So you can add, change, deprecate, fix, remove and security announce your changes.

KAC format plugin driver heavily depends on Colin Bounouar's keepachangelog library.

Releasing a version is simple as:

chachacha release --help

Usage: main.py release [OPTIONS] [SPEC]

  Update the changelog to release version SPEC.

  SPEC should either be the version number to release or the strings
  "major", "minor" or "patch".

Options:
  --help  Show this message and exit.

Specification follows Semantic Versioning thanks to python semver library.

Configuration

Starting from 0.1.3, Chachacha supports a small configuration system directly embedded in the file via a hack on Markdown link syntax. This allow for a number of features like generating compare history:

chachacha init

chachacha config git_provider GH
chachacha config repo_name aogier/chachacha
chachacha config tag_template 'v{t}'

chachacha added one feature
chachacha added another feature
chachacha release
chachacha security hole
chachacha added capability
cat CHANGELOG.md


[...]
- another feature

[Unreleased]: https://github.com/aogier/chachacha/compare/v0.0.1...HEAD
[0.0.1]: https://github.com/aogier/chachacha/releases/tag/v0.0.1

[//]: # (C3-1-DKAC-GGH-Raogier/chachacha-Tv{t})

Configuration system keys are:

  • git_provider: a git repo provider driver (supported: GH for github.com)
  • repo_name: repo name + namespace your repo is
  • tag_template: a tag template which maps release versions with tag names. Variable t will be expanded with the version number.

Examples

Start a changelog, add entries and then release

chachacha init
# quoting is supported
chachacha added "this is a new feature I'm excited about"
chachacha added this is also good
chachacha deprecated this is no longer valid

File is now:

cat CHANGELOG.md

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- this is a new feature I'm excited about
- this is also good

### Deprecated

- this is no longer valid

[//]: # (C3-1-DKAC)

Now release it:

chachacha release
chachacha added new version added item

File is now:

cat CHANGELOG.md

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- new version added item

## [0.0.1] - 2020-02-26

### Added

- this is a new feature I'm excited about
- this is also good

### Deprecated

- this is no longer valid

[//]: # (C3-1-DKAC)

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.