A beginner-friendly, pro-grade versioning and changelog manager using SemVer and Markdown.
Project description
🔮 Chroniq — Smart Versioning & Changelog CLI
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1c825a32179233ed975a98f207c9c960d6263b8144bbe01ab447f49b2a49ec4
|
|
| MD5 |
299cf662c07c597f472ff572eb4b5c13
|
|
| BLAKE2b-256 |
4b96a625b3a07cd2bf1d4e2c658543d4a940e353aecf86289dce5048a2692255
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0989da8a495ffae29f2bf90fb4c99ee62663aa9e117242935304aecea6d33f39
|
|
| MD5 |
896b3f11664824f64c6a3221ddc4a965
|
|
| BLAKE2b-256 |
f60a67ac41ce8441348e60301674c601adbf6f39e9b5d161c8756e30eaad0669
|