Skip to content

🚀 jh_cp 3.0.0 Release Notes

Latest

Choose a tag to compare

@JeongHan-Bae JeongHan-Bae released this 08 Nov 23:32
e08e7cc

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 tomli on 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 clean step.
  • Fully PEP 517/518 compliant (pyproject.toml added).
  • Works with python -m build for wheel generation.

4. 🌳 New tree Command

  • Added a brand-new jh_cp tree subcommand:

    jh_cp tree ./src --max-depth 3 -ignore .gitignore
  • Generates AI/documentation-friendly directory trees.

  • Shares the same .cp_ignore and exclusion logic as cp and archive.

5. 🧠 Improved .cp_ignore Logic

  • Now fully matches .gitignore behavior:

    • Supports both relative and recursive matching without **/ prefixes.
    • Cleaner and more predictable filtering.
  • Updated default .cp_ignore shipped under jh_cp/jh_cp_tools/.

6. 🧩 Enhanced Developer Experience

  • Updated jh_cp.pyi with 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.ini simplified 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.