abssctl Roadmap TODO Tracker
Purpose
Maintain list of outstanding work needed to deliver
abssctl v1.0. Items are grouped by the milestones defined in
docs/requirements/abssctl-app-specs.txt and the project README. Move
completed tasks into session-log.txt when done.
Planning
No open TODOs for this milestone. (Spec document has already been drafted.)
Pre-Alpha — Repo Bootstrap
No open TODOs; scaffolding, packaging metadata, and CI skeletons are in place.
Alpha Builds — Foundations
[x] Implement the structured logging subsystem per ADR-014/ADR-028 (human logs +
operations.jsonl) and integrate it with existing CLI commands.[x] Implement global and per-instance locking primitives per ADR-027 and ensure mutating commands acquire/release locks safely (with tests).
[x] Introduce the template rendering engine for systemd and nginx assets (e.g., Jinja-based templates under
src/abssctl/templates/) per ADR-009/ADR-010.[x] Extend CI to publish dev builds to Test PyPI when tags matching
v*.*.*-devland (aligns with the “Alpha Builds” release engineering goal).
Beta Releases — Core Features
[ ] Implement
version install,version switch, andversion uninstallflows that manage/srv/app/vX.Y.Z, enforce integrity, updateversions.yml, and honour safety prompts (ADR-011/ADR-017/ADR-026).[ ] Replace the placeholder
version check-updateslogic with real npm metadata comparisons and JSON output.[ ] Build the systemd provider to render/manage per-instance units (create, enable/disable, start/stop/restart, logs) per ADR-009/ADR-010.
[ ] Build the nginx provider to render vhosts, run
nginx -t, manage sites-available/sites-enabled symlinks, and handle HTTPS defaults/overrides with rollback (ADR-010/ADR-031/ADR-032).[ ] Implement
instance createwith end-to-end provisioning: directory layout,config.json, port reservation, systemd unit, nginx vhost, optional auto-start, and rollback on failure.[ ] Implement the remaining instance subcommands:
env,start|stop|restart|enable|disable|status|logs,set-fqdn,set-port,set-version,rename, anddelete --purge-data, incorporating--dry-runand safety prompts.[ ] Implement port allocation and collision detection backed by
ports.yml, following ADR-015 (base port 5000, sequential strategy, locks).[ ] Implement TLS subcommands (
tls verify,tls install,tls use-system) including file validation, secure permissions, nginx reloads, and Let’s Encrypt detection (ADR-031).[ ] Implement backup operations per §5.8 / ADR-012 / ADR-021 / ADR-022, including
backup create,backup list,backup show,backup restore,backup verify,backup reconcile, andbackup prunewith checksum handling and prompts.[ ] Ensure all mutating commands honour
--dry-run,--yes, backup prompt inventory (ADR-016/ADR-025/ADR-026), and emit consistent exit codes (ADR-013).[ ] Deliver the initial
doctorcommand with core probes (environment, ports, systemd/nginx status) as defined in ADR-029, returning structured JSON and summaries.[ ] Flesh out automated tests (unit/integration fakes) to cover the above Beta features and guard idempotency.
Release Candidate — Quality & Docs
[ ] Extend
doctorwith--fixcapabilities for safe migrations (state dir moves, permission repair, stale lock cleanup) per ADR-029/ADR-024.[ ] Implement the
support-bundlecommand that collects configs, registry snapshots, logs, and probe output with redaction per ADR-012/ADR-014/ADR-028.[ ] Harden error handling and map failures to the formal exit-code taxonomy (ADR-013), including rich user messaging.
[ ] Generate Sphinx man pages in CI, package them with the wheel/sdist, and implement
abssctl docs man install/pathcommands per ADR-002/ADR-019.[ ] Implement shell completion management (
abssctl completion show|install|uninstall) leveraging Typer’s completion support per ADR-020.[ ] Complete documentation sets: README, CHANGELOG, Admin Guide, Developer Guide, sudoers examples, and support matrix automation per §7 of the spec.
[ ] Publish Manual Integration Test Protocol assets (scripts/checklists) and wire them into CI where feasible (ADR-030).
[ ] Extend CI/CD to run packaging smoke tests, build support bundles, and stage release artifacts (wheels, manpage tarballs, completion scripts).
Release — v1.0.0
[ ] Execute the MITP on a fresh TurnKey Linux Node.js v18 appliance across the current + 10 prior Actual releases, updating the support matrix.
[ ] Perform burn-in testing for the release candidate builds, verifying upgrade/rollback, backups, TLS, and doctor/support-bundle across scenarios.
[ ] Finalise documentation sign-off and publish GA artifacts (PyPI release from
main, tagged GitHub release with attachments, updated docs site).[ ] Share a post-release checklist (communication, changelog highlights, next-maintenance window) for operational hand-off.
Optional / Future Enhancements
[ ] Explore automatic Let’s Encrypt certificate provisioning beyond v1 scope for future consideration.
[ ] Investigate container-based distribution or alternative reverse proxy support after v1.0.