diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index cd2807f..a1fc1ff 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -136,9 +136,12 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install -y -qq build-essential debhelper dh-python python3-all python3-hatchling - cd linux && dpkg-buildpackage -us -uc -b && cd .. + rm -rf debian + cp -r linux/debian debian + dpkg-buildpackage -us -uc -b + rm -rf debian mkdir -p dist-deb - mv ./*.deb dist-deb/ + mv ../*.deb dist-deb/ - name: Build wheel run: uv build --wheel --out-dir dist diff --git a/CHANGELOG.md b/CHANGELOG.md index 005c4f2..f0f46dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ 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.2] - 2026-09-12 + +### Fixed + +- **Packaging**: Debian `.deb` now builds from the repository root, so `src/sshctl` and `tests/` resolve correctly and `dist-deb/*.deb` is produced +- **Dependencies**: `click` declared explicitly (typer >= 0.26 vendors it), fixing `sshctl` runtime/typing + +### Changed + +- **CI**: Gitea Actions test job cut from ~15 min to ~1m20s via a persistent host toolcache for `uv` and Python 3.13; uv download cache persisted +- Version bumped to 0.1.2 + ## [0.1.1] - 2026-09-12 ### Fixed diff --git a/Makefile b/Makefile index 7e9c4ff..0e76edb 100644 --- a/Makefile +++ b/Makefile @@ -37,9 +37,12 @@ build-wheel: python -m build --wheel build-deb: build-wheel - cd linux && dpkg-buildpackage -us -uc -b + rm -rf debian + cp -r linux/debian debian + dpkg-buildpackage -us -uc -b + rm -rf debian mkdir -p dist-deb - mv ./*.deb dist-deb/ 2>/dev/null || true + mv ../*.deb dist-deb/ 2>/dev/null || true build-all: clean check build-wheel build-deb diff --git a/README.md b/README.md index d36cb58..8f3b596 100644 --- a/README.md +++ b/README.md @@ -28,15 +28,15 @@ SSH configuration management toolkit — parse, validate, generate, and manage S ```bash pip install sshctl # once published to PyPI # or install the built wheel directly from a release -pip install ./sshctl-0.1.1-py3-none-any.whl +pip install ./sshctl-0.1.2-py3-none-any.whl ``` ### dpkg (Debian/Ubuntu) ```bash # Download from latest release -wget https://src.panahifar.ir/ahp/sshctl/releases/download/v0.1.1/sshctl_0.1.1-1_all.deb -sudo dpkg -i sshctl_0.1.1-1_all.deb +wget https://src.panahifar.ir/ahp/sshctl/releases/download/v0.1.2/sshctl_0.1.2-1_all.deb +sudo dpkg -i sshctl_0.1.2-1_all.deb ``` ### From source diff --git a/linux/arch/PKGBUILD b/linux/arch/PKGBUILD index 74892e7..4a6c268 100644 --- a/linux/arch/PKGBUILD +++ b/linux/arch/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Amir Husayn Panahifar pkgname=sshctl -pkgver=0.1.1 +pkgver=0.1.2 pkgrel=1 pkgdesc="SSH configuration management toolkit" arch=('any') diff --git a/linux/debian/changelog b/linux/debian/changelog index f39b1c3..94a357d 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,3 +1,12 @@ +sshctl (0.1.2-1) unstable; urgency=medium + + * Debian packaging fixed to build from the repository root. + * wheel and deb artifacts now share the root build outputs (dist/, dist-deb/). + * click declared as an explicit dependency (typer >= 0.26 vendors it). + * uv and Python 3.13 CI toolchains resolved from a persistent host toolcache. + + -- Amir Husayn Panahifar Sat, 12 Sep 2026 01:00:00 +0330 + sshctl (0.1.1-1) unstable; urgency=medium * Bug-fix release: parser, configops, jump, CLI type hardening. diff --git a/linux/debian/rules b/linux/debian/rules index 5b68358..1d96b52 100755 --- a/linux/debian/rules +++ b/linux/debian/rules @@ -4,9 +4,25 @@ dh $@ --with python3 override_dh_auto_clean: - dh_auto_clean find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true - rm -rf dist/ dist-deb/ + +override_dh_auto_build: + @true + +override_dh_auto_install: + @true override_dh_auto_test: - python3 -m pytest tests/ --ignore=tests/__pycache__ -q || true + python3 -m pytest --help >/dev/null 2>&1 && python3 -m pytest -q || true + +override_dh_install: + dh_install + mkdir -p debian/sshctl/usr/bin + printf '%s\n' \ + '#!/usr/bin/python3' \ + 'import sys' \ + 'from sshctl.cli.app import serve' \ + 'if __name__ == "__main__":' \ + ' sys.exit(serve())' \ + > debian/sshctl/usr/bin/sshctl + chmod 755 debian/sshctl/usr/bin/sshctl \ No newline at end of file diff --git a/man/sshctl.1 b/man/sshctl.1 index e9cff9a..ab66f0d 100644 --- a/man/sshctl.1 +++ b/man/sshctl.1 @@ -1,4 +1,4 @@ -.TH SSHCTL 1 "2026-09-12" "sshctl v0.1.1" "SSH Configuration Management" +.TH SSHCTL 1 "2026-09-12" "sshctl v0.1.2" "SSH Configuration Management" .SH NAME sshctl \- SSH configuration management toolkit .SH SYNOPSIS diff --git a/pyproject.toml b/pyproject.toml index 3004edb..fb85db4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "sshctl" -version = "0.1.1" +version = "0.1.2" description = "SSH configuration management toolkit" requires-python = ">=3.13" license = {text = "MIT"}