Metadata-Version: 2.4
Name: autochange
Version: 0.1.1
Summary: Lightweight semantic version + changelog manager
Author: MJ Anglin
License-Expression: MIT
Project-URL: Changelog, https://github.com/clxrityy/autochange/blob/master/CHANGELOG.md
Project-URL: Homepage, https://github.com/clxrityy/autochange
Project-URL: Issues, https://github.com/clxrityy/autochange/issues
Project-URL: Repository, https://github.com/clxrityy/autochange.git
Keywords: changelog,semantic versioning,release,automation
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer>=0.9.0
Requires-Dist: rich>=13.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
Provides-Extra: release
Requires-Dist: build; extra == "release"
Requires-Dist: twine; extra == "release"
Dynamic: license-file

# autochange

Lightweight semantic version + changelog manager.

## Features

- Maintain a markdown `CHANGELOG.md` with sections: Added, Changed, Deprecated, Removed, Fixed, Security.
- Add unreleased changes quickly.
- Release and automatically stamp date + version.
- Compute next semantic version via bump parts (major/minor/patch) or explicit version.
- Import Conventional Commits directly into the unreleased section.

## Install

```zsh
pip install autochange
```

#### Development dependencies

```zsh
pip install -e .[dev]
```

## Usage

```zsh
autochange init               # create CHANGELOG.md
autochange add -t added "New feature" --scope api
autochange add -t fixed "Bug in parser"
autochange release minor      # bumps minor based on last release
autochange release auto --tag --commit --push  # infer bump from changes, commit, tag and push
autochange import-commits --since v0.1.0  # parse commits after tag v0.1.0
autochange tag                # create git tag for latest released version
autochange tag 1.2.3 --push   # create & push tag v1.2.3
```

## Changelog Format

Subset of [Keep a Changelog](https://keepachangelog.com). Example:

```
# Changelog

## Unreleased - UNRELEASED
### Added
- (api) New feature

## 0.1.0 - 2025-08-13
### Fixed
- Parser bug
```

## Roadmap

- [x] Conventional commit parser integration.
- [x] Auto-detect bump type from unreleased changes.
- [x] Git tag creation helper.
- [ ] Export JSON.
- [ ] Supporting different environments (e.g. package.json, Cargo.toml).
