Skip to main content

A beginner-friendly, pro-grade versioning and changelog manager using SemVer and Markdown.

Project description

🔮 Chroniq — Smart Versioning & Changelog CLI

License Python Version Build Made with ❤️

Chroniq is your local-first, developer-friendly version manager + changelog tracker.
It brings semantic versioning, rollback safety, and interactive changelog support — all from your terminal.

"Because versioning shouldn't feel like a chore." 💡


🚀 Features at a Glance

🧠 Feature ✅ Support
Semantic Versioning (SemVer) ✔️
Pre-release Tags (alpha, beta) ✔️
Interactive Changelog Prompts ✔️
Rollback Support ✔️
Profile-based Config (.toml) ✔️
Clean CLI Output (via rich) ✔️
Zero Cloud Dependencies ✔️
Full Test Coverage ✔️

🧰 Commands Overview

Command Purpose
chroniq init Initialize version.txt + CHANGELOG.md
chroniq bump [level] Bump version (patch, minor, major)
chroniq bump --pre <tag> Bump pre-release (alpha, beta.1, etc.)
chroniq rollback Rollback latest version bump and changelog
chroniq log [--lines n] Show last n changelog entries
chroniq version Display the current version
chroniq reset Delete version + changelog (use with caution)
chroniq audit [--strict] Run diagnostic scan of config/version/changelog
chroniq config-show Print merged active config, including profile
chroniq config set Update config keys in .chroniq.toml
chroniq changelog-preview Preview formatted changelog block (dry-run entry)
chroniq test --smoke Run smoke tests only
chroniq help Show grouped help with style (coming 0.9.0)

✏️ Usage Examples

chroniq init                    # Sets up version.txt and CHANGELOG.md
chroniq bump minor              # Bumps 1.2.3 → 1.3.0
chroniq bump --pre rc           # Produces 1.3.0-rc.1
chroniq rollback                # Reverts to previous version and changelog
chroniq audit --strict          # Deep config/changelog validation
chroniq config set silent true  # Edit .chroniq.toml via CLI

⚙️ Config Options (.chroniq.toml)

Chroniq reads a config file (.chroniq.toml) with support for profiles and strict mode:

default_bump = "patch"
silent = false
strict = false
emoji_fallback = true
auto_increment_prerelease = true

[profile.dev]
default_bump = "minor"
silent = true

[profile.release]
strict = true

🧪 Test It

# Run all unittests
python -m unittest discover -s tests

# Or just smoke test the CLI
chroniq test --smoke

🧱 Project Structure

chroniq/
├── cli.py               # CLI entry point
├── core.py              # SemVer logic + rollback
├── config.py            # Config loading + updating
├── logger.py            # system_log + activity_log
├── changelog.py         # Add/preview entries
├── audit.py             # Diagnostic scanning
├── tests/               # Unit tests
├── version.txt          # Your current version
├── CHANGELOG.md         # Changelog entries
├── .chroniq.toml        # Config file (optional)

🤝 Contributing

PRs welcome — just follow:

  • Keep it clean
  • Keep it tested
  • Keep it offline-safe

📄 License

MIT © Brandon McKinney

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

chroniq-0.8.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

chroniq-0.8.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file chroniq-0.8.0.tar.gz.

File metadata

  • Download URL: chroniq-0.8.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.5

File hashes

Hashes for chroniq-0.8.0.tar.gz
Algorithm Hash digest
SHA256 f1c825a32179233ed975a98f207c9c960d6263b8144bbe01ab447f49b2a49ec4
MD5 299cf662c07c597f472ff572eb4b5c13
BLAKE2b-256 4b96a625b3a07cd2bf1d4e2c658543d4a940e353aecf86289dce5048a2692255

See more details on using hashes here.

File details

Details for the file chroniq-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: chroniq-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.5

File hashes

Hashes for chroniq-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0989da8a495ffae29f2bf90fb4c99ee62663aa9e117242935304aecea6d33f39
MD5 896b3f11664824f64c6a3221ddc4a965
BLAKE2b-256 f60a67ac41ce8441348e60301674c601adbf6f39e9b5d161c8756e30eaad0669

See more details on using hashes here.

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