docs: add readme, changelog, contributing and man page
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/).
|
||||
|
||||
## [0.1.1] - 2026-09-12
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Parser**: directory `Include` targets (e.g. `conf.d/`) no longer crash validation with `IsADirectoryError`; `parse_file` converts read errors to `ParseError`
|
||||
- **Init**: generated `Include conf.d/` now writes a proper glob (`conf.d/*.conf`)
|
||||
- **Config**: `config set` no longer recurses infinitely when no `Host *` block exists (now prepends one)
|
||||
- **Config**: `validate_options`/`heal` now detect lowercase option typos (`hostname` → `HostName`)
|
||||
- **Jump**: comments with leading whitespace in `.internal_ssids` are now filtered correctly
|
||||
- **CLI**: fixed undefined `HostBlock` name in host edit and broken `jump_auto` indentation
|
||||
- **Types**: mypy strict clean across all 45 source/test files (jump, setup, configops, events)
|
||||
|
||||
### Added
|
||||
|
||||
- **Packaging**: Arch Linux `PKGBUILD` (`linux/arch/`)
|
||||
- **Tests**: coverage suites for events, logutil, cleanup, configops, jump (161 tests)
|
||||
- **Metadata**: repo URL unified to `https://src.panahifar.ir/ahp/sshctl`
|
||||
|
||||
### Changed
|
||||
|
||||
- Version bumped to 0.1.1; coverage gate aligned to 45% (CI and Makefile)
|
||||
|
||||
## [0.1.0] - 2026-07-16
|
||||
|
||||
### Added
|
||||
|
||||
- **Core**: SSH config parser with `Include` resolution, glob support, continuation lines
|
||||
- **Core**: SSH config generator with deterministic option ordering
|
||||
- **Core**: Host resolver via `ssh -G` subprocess
|
||||
- **Core**: Config validator with structural validation
|
||||
- **Operations**: Async DNS/TCP/SSH connectivity checker with semaphore concurrency
|
||||
- **Operations**: Parallel SSH command executor
|
||||
- **Export**: CSV inventory export
|
||||
- **Export**: Ansible inventory generation from `conf.d/` directory tree
|
||||
- **Export**: SSH directory permission fix and check
|
||||
- **CLI**: `init` — initialize SSH config directory structure
|
||||
- **CLI**: `host list`, `host show`, `host add` — host alias management
|
||||
- **CLI**: `check` — connectivity check across hosts
|
||||
- **CLI**: `exec` — parallel command execution
|
||||
- **CLI**: `csv` — CSV inventory export
|
||||
- **CLI**: `chmod` — permission fix/check
|
||||
- **CLI**: `ansible` — Ansible inventory generation
|
||||
- **CLI**: `validate` — config validation
|
||||
- **CLI**: `tree` — config directory tree viewer
|
||||
- **CLI**: `diff` — compare generated vs current config
|
||||
- **CLI**: `backup` / `restore` — SSH directory backup and restore
|
||||
- **CLI**: `install-completion` — shell completion installation
|
||||
- **Architecture**: Modular subpackage layout (cli/, core/, config/, operations/, export/)
|
||||
- **Infrastructure**: GitHub Actions CI (test + build wheel + deb)
|
||||
- **Infrastructure**: pre-commit hooks (ruff, mypy, linting)
|
||||
- **Infrastructure**: Debian packaging (`debian/`)
|
||||
- **Infrastructure**: Makefile with test/lint/build targets
|
||||
- **Infrastructure**: Coverage config (80% threshold)
|
||||
- **Config**: Pydantic-settings with YAML and env variable support
|
||||
- **Models**: ZonePath hierarchical addressing (universe/sector/cluster/zone/vlan)
|
||||
Reference in New Issue
Block a user