build(linux): fix deb packaging to build from repo root, add console script; bump v0.1.2
CI / test (3.13) (push) Successful in 1m37s
CI / build (push) Skipped

This commit is contained in:
ahp
2026-09-12 15:57:53 +03:30
parent 1d192f8bae
commit 426b871955
9 changed files with 56 additions and 13 deletions
+5 -2
View File
@@ -136,9 +136,12 @@ jobs:
run: | run: |
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get install -y -qq build-essential debhelper dh-python python3-all python3-hatchling 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 mkdir -p dist-deb
mv ./*.deb dist-deb/ mv ../*.deb dist-deb/
- name: Build wheel - name: Build wheel
run: uv build --wheel --out-dir dist run: uv build --wheel --out-dir dist
+12
View File
@@ -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/), The format is based on [Keep a Changelog](https://keepachangelog.com/),
and this project adheres to [Semantic Versioning](https://semver.org/). 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 ## [0.1.1] - 2026-09-12
### Fixed ### Fixed
+5 -2
View File
@@ -37,9 +37,12 @@ build-wheel:
python -m build --wheel python -m build --wheel
build-deb: 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 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 build-all: clean check build-wheel build-deb
+3 -3
View File
@@ -28,15 +28,15 @@ SSH configuration management toolkit — parse, validate, generate, and manage S
```bash ```bash
pip install sshctl # once published to PyPI pip install sshctl # once published to PyPI
# or install the built wheel directly from a release # 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) ### dpkg (Debian/Ubuntu)
```bash ```bash
# Download from latest release # Download from latest release
wget https://src.panahifar.ir/ahp/sshctl/releases/download/v0.1.1/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.1-1_all.deb sudo dpkg -i sshctl_0.1.2-1_all.deb
``` ```
### From source ### From source
+1 -1
View File
@@ -1,7 +1,7 @@
# Maintainer: Amir Husayn Panahifar <ahp@panahifar.ir> # Maintainer: Amir Husayn Panahifar <ahp@panahifar.ir>
pkgname=sshctl pkgname=sshctl
pkgver=0.1.1 pkgver=0.1.2
pkgrel=1 pkgrel=1
pkgdesc="SSH configuration management toolkit" pkgdesc="SSH configuration management toolkit"
arch=('any') arch=('any')
+9
View File
@@ -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 <ahp@panahifar.ir> Sat, 12 Sep 2026 01:00:00 +0330
sshctl (0.1.1-1) unstable; urgency=medium sshctl (0.1.1-1) unstable; urgency=medium
* Bug-fix release: parser, configops, jump, CLI type hardening. * Bug-fix release: parser, configops, jump, CLI type hardening.
+19 -3
View File
@@ -4,9 +4,25 @@
dh $@ --with python3 dh $@ --with python3
override_dh_auto_clean: override_dh_auto_clean:
dh_auto_clean
find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true 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: 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
+1 -1
View File
@@ -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 .SH NAME
sshctl \- SSH configuration management toolkit sshctl \- SSH configuration management toolkit
.SH SYNOPSIS .SH SYNOPSIS
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "sshctl" name = "sshctl"
version = "0.1.1" version = "0.1.2"
description = "SSH configuration management toolkit" description = "SSH configuration management toolkit"
requires-python = ">=3.13" requires-python = ">=3.13"
license = {text = "MIT"} license = {text = "MIT"}