Release Date: 2025-11-09
Author: JeongHan Bae
License: Apache 2.0
🎯 Overview
jh_cp 3.0.0 is a major upgrade that modernizes the tool’s structure, installation process, and feature set.
It introduces a new tree command for visualizing directory structures, fully aligns .cp_ignore rules with .gitignore,
and officially drops support for Python 3.9 (EOL).
This release transitions jh_cp into a modular Python package with proper packaging, IDE support, and
PEP 517–compliant installation.
🧱 Major Changes
1. ✅ Python 3.10+ Required
- Dropped support for Python 3.9 (now EOL).
- Officially supports Python ≥ 3.10.
- Automatically installs
tomlion Python 3.10.
2. 📦 New Modular Package Layout
- Reorganized from a single-file module to a structured package folder:
jh_cp/
├── jh_cp/
│ ├── jh_cp_tools/
│ │ ├── .cp_ignore
│ │ └── exclude-rules.ini
│ ├── __init__.py
│ ├── jh_cp.py
│ └── jh_cp.pyi
├── LICENSE
├── MANIFEST.in
├── pyproject.toml
├── README.md
└── setup.py- Enables import as
from jh_cp import jh_cp_main. - Cleaner internal structure and better modular separation.
3. 🧩 Standardized Installation
- Now supports:
pip install .- No more custom
setup.py build_install cleanstep. - Fully PEP 517/518 compliant (
pyproject.tomladded). - Works with
python -m buildfor wheel generation.
4. 🌳 New tree Command
-
Added a brand-new
jh_cp treesubcommand:jh_cp tree ./src --max-depth 3 -ignore .gitignore
-
Generates AI/documentation-friendly directory trees.
-
Shares the same
.cp_ignoreand exclusion logic ascpandarchive.
5. 🧠 Improved .cp_ignore Logic
-
Now fully matches
.gitignorebehavior:- Supports both relative and recursive matching without
**/prefixes. - Cleaner and more predictable filtering.
- Supports both relative and recursive matching without
-
Updated default
.cp_ignoreshipped underjh_cp/jh_cp_tools/.
6. 🧩 Enhanced Developer Experience
- Updated
jh_cp.pyiwith richer docstrings and function signatures. - Docstrings rewritten for IDE visibility and hover documentation.
- Internal structure more maintainable and discoverable.
🧰 Other Improvements
- Updated documentation with full CLI reference table.
exclude-rules.inisimplified and grouped logically.- Consistent colorized output and error messages.
- Unified CLI + Python API under a single entrypoint
jh_cp_main().
🔧 Migration Guide (from 2.x → 3.x)
| Old (2.x) | New (3.x) |
|---|---|
python setup.py build_install clean |
pip install . |
jh_cp_main(["cp", ...]) |
Same API, unchanged |
| Requires Python 3.9+ | Requires Python 3.10+ |
.cp_ignore required **/ for deep matching |
Automatically recursive |
No tree command |
Added jh_cp tree for structure visualization |
🧪 Compatibility
| Component | 2.x | 3.0.0 |
|---|---|---|
| Python 3.9 | ✅ | ❌ |
| Python 3.10 | ✅ | ✅ |
| CLI Commands | ✅ | ✅ + tree |
.cp_ignore Rules |
Partial | Full .gitignore parity |
| PEP 517 Build | ❌ | ✅ |
🪪 License
Licensed under the Apache License 2.0
© 2025 JeongHan Bae
Summary:
jh_cp 3.0.0 is a modernization release focused on packaging, maintainability, and usability.
It streamlines installation, enhances IDE support, and adds a practical tree command —
making it the most complete and developer-friendly version yet.