Skip to main content

Chronicler automates development documentation by using Git history and language models to generate commit descriptions and release notes.

Project description

Chronicler PyPI - Version

Introduction

Chronicler is an innovative Python tool designed to streamline and automate the documentation process for development projects. By leveraging Git and various language processing technologies, it provides an intuitive interface for tracking changes, generating comprehensive documentation, and ensuring seamless integration with version control workflows.

Chronicler can draft commit descriptions from the current repository status and release notes from the difference between two Git branches. It supports local Ollama models by default and OpenAI models when OPENAI_API_KEY is configured.

Getting Started

Prerequisites

  • Python 3.10 or higher
  • Git
  • uv

Installation

Install from PyPI:

uv tool install py-chronicler

Clone the repository:

git clone https://github.com/jasuca/chronicler.git
cd chronicler

Install the project and development tools with uv:

uv sync --group dev

Run the CLI from the project checkout:

uv run chronicler --help

requirements.txt is retained as a compatibility entry point for tools that still call pip install -r requirements.txt; project dependencies and release metadata live in pyproject.toml.

Usage

To use Chronicler, run the following command:

chronicler release [OPTIONS] LEFT_BRANCH RIGHT_BRANCH [PATH]
chronicler commit [OPTIONS] [PATH]

Options

  • commit Generate commit description
  • release Generate release notes
  • --llm [ollama|openai]: Select the language model provider.
  • --llm-model TEXT: Specify the provider model. The default is llama2.
  • --help: Display the help message.

Examples

Comparing two branches: chronicler release main develop /path/to/repo

Generate current repo commit: chronicler commit

Generate current repo commit using Ollama(mistral): chronicler commit --llm=ollama --llm-model=mistral .

Generate release notes with OpenAI:

OPENAI_API_KEY=... chronicler release v0.1.1 main . --llm=openai --llm-model=gpt-3.5-turbo-instruct

Development

Run tests:

uv run pytest

Run the CI lint checks locally:

uv run flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
uv run flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

Build release artifacts:

uv run python -m build

If you already synced the dev environment and want to avoid creating an isolated build environment, use:

uv build --no-build-isolation

The package is published to PyPI as py-chronicler. The console command installed by the package is chronicler.

Contributing

We welcome contributions to the Chronicler project! If you have suggestions for improvements or want to contribute code, please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature-branch).
  5. Create a new Pull Request.

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_chronicler-0.1.3.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_chronicler-0.1.3-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file py_chronicler-0.1.3.tar.gz.

File metadata

  • Download URL: py_chronicler-0.1.3.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for py_chronicler-0.1.3.tar.gz
Algorithm Hash digest
SHA256 aea1279dabafb1f467e61c917165e029828974484ea399a8b9c0e0344c86d83e
MD5 5e9b9cefd2a447478c90556d031fa244
BLAKE2b-256 62f1af8e51076280b426b677ddc4792ad66db814dc8cfb557387c386d2ffc9af

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_chronicler-0.1.3.tar.gz:

Publisher: python-publish.yml on jasuca/chronicler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_chronicler-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: py_chronicler-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for py_chronicler-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0a42b1c6ef1e8999c93b612455d131e4387aa76c0fb8702fa5477bf82f31c501
MD5 54584b61ebfdfe3d42a1ad6d8051ffb9
BLAKE2b-256 eb5410583613f7d543208da37d3acc04223bac11e766ce448757540eaaa65c4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_chronicler-0.1.3-py3-none-any.whl:

Publisher: python-publish.yml on jasuca/chronicler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page