Skip to main content

No project description provided

Project description

REErelease

Coverage Tests

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

  1. Install hatch
  2. 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:

  1. Formats code with ruff
  2. Runs linting checks
  3. Validates type annotations
  4. Executes test suite
  5. Updates coverage/test badges
  6. 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 variable FORCE_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 as reerelease with 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

  1. Bump version in src/reerelease/about.py
  2. Update release notes in release.md
  3. Test release (optional but recommended)
    hatch run release-test    
    
  4. 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

reerelease-0.2.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

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

reerelease-0.2.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

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

Hashes for reerelease-0.2.0.tar.gz
Algorithm Hash digest
SHA256 95bd62c041f61f92773aa4c302dd05843186fd7532fc5c4c5d1a46600b3a49e6
MD5 1667e4248bb080e7d39c9fb8c09c58ca
BLAKE2b-256 fea8de28940a0468a4b4f0b92d6c6807af3ae7c9cdacb2b15d0d6fde7cfe8ab7

See more details on using hashes here.

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

Hashes for reerelease-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cfb61a31ee98ca62a30e7661ff4a292f8c890dbd75a36e9c904525797b536479
MD5 f81434301cd9b2984ed3ecc1897154e3
BLAKE2b-256 be46ec9ee9aeaf2cf7299360f1a891f8676ada4bc439caf93540800e7388bbac

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