No project description provided
Project description
REErelease
A modern Python tool for managing release contexts and templates with automated quality assurance.
Quick Start
Installation
pip install reerelease
NOTE: Not yet published on pypi
Basic Usage
# Display available contexts
reerelease contexts
# Generate new release files from templates
reerelease new
Development
Setup
- Install hatch
- Clone and setup:
git clone git@gitlab.com:real-ee/tool/reerelease.git cd reerelease hatch run setup
Git Hooks Setup
Automated quality assurance is enforced through Git hooks:
python tools/setup_hooks.py
NOTE: this is automatically run during setup
This configures:
- ๐จ Code formatting (ruff format)
- ๐ Linting (ruff check)
- ๐ท๏ธ Type checking (mypy)
- ๐งช Testing (pytest)
- ๐ Badge generation (coverage + test badges)
- ๐ Push validation (ensures quality gates passed)
Development Workflow
Normal Development
git add .
git commit -m "Your changes" # Runs full validation pipeline
git push # Validates commit has passed checks
The pre-commit hook automatically:
- Formats code with ruff
- Runs linting checks
- Validates type annotations
- Executes test suite
- Updates coverage/test badges
- Adds validation marker to commit
Emergency Bypass
git commit --no-verify -m "Emergency fix [skip-hooks]"
git push --no-verify
Testing
# Run tests
hatch run test
# Run tests with detailed output
hatch run pytest -- --show-fail-details tests
# Generate coverage report
hatch run cov
# Generate all reports
hatch run reports
VS Code Integration
The project includes VS Code settings for:
- Ruff integration with auto-fix on save
- MyPy type checking in Problems Panel
- Pytest test discovery and execution
- Task runners for common operations
Setup: After opening the project, VS Code should automatically detect the hatch environment. If not, use
Ctrl+Shift+Pโ "Python: Select Interpreter" and choose the hatch virtual environment (usually shows asreereleasewith the hatch path).
Available Tasks
Open the project in VS Code and use Ctrl+Shift+P โ "Tasks: Run Task":
- pytest - Run test suite
- pytest (show CLI output on fail) - Run tests with detailed failure output
- Fix All Ruff Issues - Auto-fix linting issues
- Format Code - Format code with ruff
- Quality Check (All) - Run complete quality pipeline
Debug/Launch Configurations
Use F5 or "Run and Debug" panel:
- Hatch: Show Help - Display reerelease CLI help
- Hatch: New Context (demo) - Create demo context in /tmp
- Hatch: List Contexts - List contexts in demo directory
- Hatch: Emit Test Logs - Generate test log output
Quick Commands
Ctrl+Shift+Pโ "Python: Configure Tests" (pytest)Ctrl+Shift+Pโ "Python: Run All Tests"Ctrl+Shift+Pโ "Tasks: Run Task" โ Choose from available tasks
Project Structure
๐ View complete project structure
reerelease/
โโโ src/reerelease/ # Main package
โ โโโ __about__.py # Package version and metadata
โ โโโ __init__.py # Package initialization
โ โโโ reerelease.py # CLI and core logic
โ โโโ templates/ # Jinja2 templates
โ โโโ readme.md.j2 # README template
โ โโโ release.md.j2 # Release notes template
โ โโโ roadmap.md.j2 # Roadmap template
โโโ tests/ # Test suite
โ โโโ __init__.py # Test package init
โ โโโ conftest.py # Pytest configuration
โ โโโ test_contexts.py # Context discovery tests
โ โโโ test_logging.py # Logging functionality tests
โ โโโ test_reerelease.py # Main CLI tests
โ โโโ test_templates.py # Template processing tests
โ โโโ utils.py # Test utilities
โโโ tools/ # Development tools
โ โโโ setup_hooks.py # Git hooks installer
โ โโโ update_badge.py # Badge generation script
โโโ .vscode/ # VS Code configuration
โ โโโ settings.json # Editor settings
โ โโโ tasks.json # Task definitions
โ โโโ launch.json # Debug configurations
โโโ docs/ # Generated badges and reports
โ โโโ coverage.svg # Coverage badge
โ โโโ tests.svg # Tests badge
โโโ pyproject.toml # Project configuration
โโโ README.md # This file
โโโ license.txt # MIT license
Quality Assurance
This project maintains 100% test coverage and strict code quality through:
- Modern Python tooling: Ruff (linting/formatting), MyPy (type checking)
- Comprehensive testing: pytest with full coverage reporting
- Automated validation: Git hooks ensure all changes pass quality gates
- VS Code integration: Real-time feedback and auto-fixing
- Badge tracking: Visual indicators of test and coverage status
License
Released under MIT open-source license
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
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 reerelease-0.1.0.tar.gz.
File metadata
- Download URL: reerelease-0.1.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd14430cb3291a9f9e51dab9010d74dc05613444257ef994653d2edaf75202ac
|
|
| MD5 |
995cf9ea66228355813c1bb9fa075fbb
|
|
| BLAKE2b-256 |
7cd32c33ab83437c88ac4e32074710cd0b07fbb7bd1654899affbe7d46f060a3
|
File details
Details for the file reerelease-0.1.0-py3-none-any.whl.
File metadata
- Download URL: reerelease-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49833a1509ce0a0f1398d77b4ecc0e8f31700ecc928072bec928dfce9dbe12e6
|
|
| MD5 |
b3a86e27d2ffef1230adbfac98db71db
|
|
| BLAKE2b-256 |
a05e584713d64f403614a017355af1a6d9dfdf24e9d043bbd2576fdabc1f4c60
|