Monorepo pattern with symlinked meta repositories for clean documentation management
Project description
HyperRepo
Monorepo pattern with symlinked meta repositories for clean documentation management.
Overview
HyperRepo solves the nested-git problem in monorepos by providing clean separation between code projects and meta-layer documentation through symlinked repositories. This allows you to maintain version control for documentation, context files, and shared resources without the complexity of git submodules or subtrees.
Features
- Clean Separation: Code projects remain independent while sharing documentation
- Version Control: Full git history for both code and meta documentation
- Zero Ceremony: Simple YAML configuration with automatic symlink management
- Cross-Platform: Works on Windows, macOS, and Linux
- Template System: Pre-built templates for common patterns
Installation
pip install hyperepo
Quick Start
-
Initialize a new hyperepo:
hyperepo init myproject
-
Check symlink integrity:
hyperepo check -
View repository status:
hyperepo status -
Create configured symlinks:
hyperepo create-links
Configuration
HyperRepo uses a simple hyperepo.yml configuration file:
version: "1.0"
meta_repo: "../myproject-meta"
symlinks:
- target: "context"
source: "context"
- target: "prompts"
source: "prompts"
- target: "specs"
source: "specifications"
Directory Structure
myproject/
├── hyperepo.yml # Configuration
├── subproject-a/ # Git submodule
├── subproject-b/ # Git submodule
├── context → ../myproject-meta/context # Symlinked directories
├── prompts → ../myproject-meta/prompts
└── specs → ../myproject-meta/specifications
myproject-meta/ # Separate git repository
├── context/
├── prompts/
└── specifications/
CLI Commands
hyperepo init <name>- Initialize new hyperepo structurehyperepo check- Validate symlink integrityhyperepo status- Show repository structure statushyperepo create-links- Create all configured symlinks
Python API
from hyperepo import HyperRepo
# Initialize
repo = HyperRepo()
repo.init("../project-meta")
# Validate
issues = repo.validate_symlinks()
if not issues:
print("All symlinks valid!")
# Create symlinks
repo.create_symlinks()
Templates
HyperRepo includes built-in templates for common patterns:
- standard: Basic template with context, prompts, and specifications
- ai-dev: AI development template optimized for AI-assisted workflows
License
MIT License - see LICENSE file for details.
Contributing
Issues and pull requests welcome at https://github.com/tysonzero/hyperepo
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 hyperepo-0.0.1.tar.gz.
File metadata
- Download URL: hyperepo-0.0.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.10 Darwin/24.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71756491272402db46add34b3dab3847d6b65f2d3f5e9dabc1d71d35bdf3939a
|
|
| MD5 |
ff4ec47248c21ec3537d55d2398bf16e
|
|
| BLAKE2b-256 |
c7ccc3297c7235e7d52ea660b8b22f49255e941b8b9750f1c862a3f05e29cca4
|
File details
Details for the file hyperepo-0.0.1-py3-none-any.whl.
File metadata
- Download URL: hyperepo-0.0.1-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.10 Darwin/24.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c9d4983506642c1e5e6afbaaa96492aa382ad2de5d63bb9574e49fcf28e2b9f
|
|
| MD5 |
dca3a4121ac4f0e43cc6aca389812800
|
|
| BLAKE2b-256 |
2bd60044ed321d0bbedc5b0e32e3d0b37334cc86b92acf2e298b48504bd4d7bf
|