No project description provided
Project description
REErelease
Imagine you had only 3 file to manage and plan your projects: readme, roadmap and release
Now imagine a simple cli interface to release, update, document the lifecycle of those project
So you have time and mental space to write your tasks, milestone and architect your project in a simple way
This is what REErelease aims to enable, simple markdown project management, automatized
It does support monorepo environment as the managed contexts are automatically discovered and can be nested
Quick Start
Installation
pip install reerelease
NOTE: published on [pypi][pypi_reerelease_link]
Basic Usage
# Create new project context with templates
reerelease context new my-project
# Discover existing contexts in current directory
reerelease context list
๐ Complete command reference: See docs/commands.md for detailed usage and options.
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 hooks runs:
- Formats code with ruff
- Runs linting checks
- Validates type annotations
- Executes test suite
- Updates coverage/test badges
- Adds validation marker to commit
NOTE: They are forced on the main/master branch or you can trigger them manually by adding
[force-hooks]or[verify-hooks]to your commit message Alternatively than can be triggered by environment variableFORCE_HOOKS=1 git commit -m 'feature 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
- MyPy Type Check - Run MyPy type checking
- pytest: run test under cursor - Run the test at cursor using helper script
Debug/Launch Configurations
Use F5 or "Run and Debug" panel:
- Show Help - Display reerelease CLI help
- Quality Check - Run full quality pipeline
- Setup: Demo Monorepo - Create demo monorepo
- Test: List Demo Monorepo - List demo monorepo contexts
- Add Context (demo) - Create demo context in /tmp
- List Contexts (demo) - List contexts in demo directory
- 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
Publishing workflow
- Bump version in src/reerelease/about.py
- Update release notes in release.md
- Test release (optional but recommended)
hatch run release-test
- Production release
hatch run release-auto
Automated release process:
- Version validation (checks git tags + PyPI)
- Quality checks (format, lint, typecheck, tests)
- Build package and validate distribution
- Create git tag and push to origin
- Publish to PyPI
Manual alternative: python3 tools/release.py [--test-pypi]
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
โ โโโ commands/ # CLI command modules
โ โ โโโ context.py
โ โ โโโ contexts.py
โ โ โโโ milestone.py
โ โ โโโ new.py
โ โ โโโ problem.py
โ โ โโโ task.py
โ โโโ core/ # Core utilities
โ โ โโโ console.py
โ โ โโโ context.py
โ โ โโโ logging.py
โ โ โโโ templates.py
โ โโโ templates/ # Jinja2 templates
โ โโโ common/ # Shared template fragments
โ โโโ context/ # Context templates
โ โโโ domain/ # Domain templates
โ โโโ milestone/ # Milestone templates
โ โโโ task/ # Task templates
โโโ tests/ # Test suite
โ โโโ __init__.py # Test package init
โ โโโ conftest.py # Pytest configuration
โ โโโ test_cmd_context.py # Context command tests
โ โโโ test_cmd_contexts.py # Contexts command tests
โ โโโ test_cmd_milestone.py # Milestone command tests
โ โโโ test_cmd_new.py # New command tests
โ โโโ test_cmd_task.py # Task command tests
โ โโโ test_core_context.py # Core context tests
โ โโโ test_core_logging.py # Core logging tests
โ โโโ test_core_templates.py # Core templates tests
โ โโโ test_reerelease.py # Main CLI tests
โ โโโ utils.py # Test utilities
โโโ tools/ # Development tools
โ โโโ release.py # Automated release script
โ โโโ run_pytest_node.py # Helper to run pytest for editor integrations
โ โโโ setup_demo_monorepo.sh # Demo monorepo setup script
โ โโโ 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/ # Documentation and badges
โ โโโ commands.md # Command reference
โ โโโ coverage.svg # Coverage badge
โ โโโ tests.svg # Tests badge
โโโ pyproject.toml # Project configuration
โโโ README.md # This file
โโโ license.txt # MIT license
Quality Assurance
This project aims to 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
- Badge tracking: Visual indicators of test and coverage status
License
Released under MIT open-source license
[pypi_reerelease_link]: https://pypi.org/project/reerelease/# Test trigger functionality
Test trigger functionality 2
Test successful trigger
Test env trigger
Test env trigger fixed
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.2.0.tar.gz.
File metadata
- Download URL: reerelease-0.2.0.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95bd62c041f61f92773aa4c302dd05843186fd7532fc5c4c5d1a46600b3a49e6
|
|
| MD5 |
1667e4248bb080e7d39c9fb8c09c58ca
|
|
| BLAKE2b-256 |
fea8de28940a0468a4b4f0b92d6c6807af3ae7c9cdacb2b15d0d6fde7cfe8ab7
|
File details
Details for the file reerelease-0.2.0-py3-none-any.whl.
File metadata
- Download URL: reerelease-0.2.0-py3-none-any.whl
- Upload date:
- Size: 18.1 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 |
cfb61a31ee98ca62a30e7661ff4a292f8c890dbd75a36e9c904525797b536479
|
|
| MD5 |
f81434301cd9b2984ed3ecc1897154e3
|
|
| BLAKE2b-256 |
be46ec9ee9aeaf2cf7299360f1a891f8676ada4bc439caf93540800e7388bbac
|