Skip to content

Latest commit

 

History

History
270 lines (205 loc) · 9.75 KB

File metadata and controls

270 lines (205 loc) · 9.75 KB

Roadmap / TODO

Current Roadmap

Here's the current roadmap for Hop3. Priorities and timelines are subject to change based on community feedback, business priorities and funding.

P0 (Q2 2024):

Initial goal: just enough to deploy Abilian SBE.

Features, UX:

  • First working version (static sites, python apps, demo apps)

Doc:

  • Fix REUSE config
  • Basic Documentation / READMEs / etc.

Infra, QA, DX, refactorings:

  • Add e2e tests (make test-e2e)
  • Basic tests and sample apps
  • Basic CI (on SourceHut)
  • Basic plugin architecture (using, e.g. pluggy)
  • Nix dev env (support for nix-shell)
  • Test automation (using nox)
  • Make src/hop3/run/uwsgi.py into a class

P1 MVP (Q4 2024->Q2 2025):

Features:

  • Reorganize code base into sub-projects (monorepo)
  • Start multi-OS support (Ubuntu, Archlinux, Fedora, NixOS, Guix, FreeBSD...)

Infra, QA, DX, refactorings:

  • Unit and integration tests
  • Refactor CLI (using argparse)]
  • Switch to uv (from poetry)
  • Build as a docker image
  • Basic Kubernetes support (via Karmada)

H3NI project:

  • Stabilize and automate Testbed (Hetzner VMs, K8s, Karmada, SMO via PyInfra)
  • Conceptual design for "Application Graph" schema for SMO compatibility
  • Initial Hop3 Plugin development for NEPHELE SMO integration (request transformation, basic communication).
  • Implement functional Hop3 Plugin
  • Implement Basic Predictive Scaling component
  • Demonstrate basic horizontal scaling
  • Document Integration Architecture for Hop3-SMO
  • Implement energy-aware placement.
  • Implement advanced adaptive/predictive scaling with actuation.
  • Implement resilience features (e.g., responding to simulated failures).

P2 MVP2 (Q4 2025):

Features:

  • Deploy a few more useful apps: Abilian SBE, more...
  • Add postgres, redis, etc. lifecycle support using plugins
  • Improve Python builder (support for poetry, pipenv, uv, etc.)
  • Manage external services (databases, mail, etc.)
  • Backup / Restore
  • Web App / portal (read-only dashboard with SSE log streaming)
  • More apps
  • Monitoring
  • (Pluggable) Alternatives to uWSGI, NGINX, ACME, etc.
  • Unified logging
  • CLI

ADR Implementation Gaps (identified 2025-12-15)

The following ADRs are marked as partially implemented and need completion:

ADR 001/002 - Config Files & Format (Status: Draft):

  • Implement [healthcheck] section parsing and usage
  • Implement [backup] section parsing and usage
  • Add [metadata] fields: version, title, author, description, tags, etc.
  • Add environment-specific sections: [env.development], [env.production]
  • Implement schema validation (see ADR 003 for requirements and options)
  • Add YAML/JSON format support (or remove from spec)
  • Add hop3 config validate CLI command

ADR 018 - CLI-Server Communication (Status: Accepted):

  • Implement streaming via JSON-RPC (currently only REST endpoints)
  • Implement yield message pattern for real-time deployment output
  • See ADR 034 for detailed streaming implementation plan

ADR 019 - CLI Commands (Status: Accepted):

  • Add build command (separate from deploy)
  • Add revert command (requires ADR 032 implementation)
  • Add new command for project scaffolding
  • Add docker command for server-side docker operations
  • Add upgrade/downgrade commands for app version management
  • Add marketplace commands: search, info, install
  • Update ADR to document the 57 commands actually implemented

Infra, QA, DX, refactorings:

  • Run as docker image
  • Split class Deployer. Introduce "DeployStep" and "DeployContext" classes.
  • Fix all typing issues (mypy and pyright)
  • Introduce new plugins (where it makes sense)
  • More end-to-end tests, examples
  • e2e CI tests
  • Reorganize monorepo further
  • Improve plugin architecture, add working events
  • Dedicated infra for e2e tests

P3 (Q1 2026):

Features:

  • Agents (for distributed deployments)
  • Unified login (LDAP / IAM)
  • Container / VM support
  • Target other platforms (e.g. SlapOS, NixOS, Guix, etc.)
  • Security (Firewall, WAF, better isolation, etc.)
  • Multi-server support
  • Orchestrator

NGI0 Project:

  • Nix builds
  • Nix runtime
  • Develop initial Nix package for Hop3 platform components (CLI, server-side agent if applicable)
  • Develop initial Nix builder plugin for applications already in nixpkgs
  • Initial design and PoC for Nix-based alternatives to native builders (e.g., Python-specific)
  • Initial build process optimization and benchmarking.
  • Implement/document Security-by-design principles in architecture.
  • Support for (or migration from) Heroku, Render, Docker Compose, Fly… config files,
  • Launch Foundational Website & Blog.
  • Publish Initial Core Documentation (Developer Guide, Admin Manual, End-User Tutorials).
  • Finalize selection and packaging of all 20 F/OSS applications.
  • Finalize Experience Reports for all 20 packaged applications.
  • Finalize and submit/publish Technical Report / Research Paper.
  • Present project findings at relevant conferences/workshops.
  • Start generating Experience Reports for packaged applications.
  • Draft Technical Report / Research Paper on Hop3 & Nix integration / Security.
  • Produce Screencasts & Webinars.
  • Finalize Experience Reports for all 20 packaged applications.
  • Finalize and submit/publish Technical Report / Research Paper.
  • Present project findings at relevant conferences/workshops.

P4 (Q2 2026):

Features:

  • Hosted version
  • Workload placement
  • Nomad support

Old TODO

This is an old TODO, kept for reference only. The "official" TODO is currently in the README.md

Features

  • Add postgres, redis, etc. lifecycle support using plugins
  • Integrate automated SSL certificate generation and renewal using Let's Encrypt
  • Implement role-based access control (RBAC) for deployed applications
  • Manage external services (databases, mail, etc.)
  • Backup / Restore

Architecture

  • (Pluggable) Alternatives to uWSGI, NGINX, ACME, etc.
    • Note: The installer currently defaults to nginx as the reverse proxy. Future versions should support alternative frontends (Caddy, Traefik, etc.) via a --proxy flag or similar mechanism. The server already has plugin support for multiple proxies (see hop3/plugins/proxy/).
  • Introduce multi-tenant support
  • Agents
  • Multi-server support
  • Target other platforms (e.g. SlapOS, NixOS, Guix, etc.)
  • Container / VM support

UX for users

  • Web App / portal
  • API server
  • Implement user-friendly web-based management interface
  • Unified login (LDAP / IAM)
  • Continuous improvements based on user feedback and usage metrics

DX

  • Improve Python builder (support for poetry, pipenv, etc.)
  • Enhance developer experience (DX) by streamlining common tasks and improving tooling
  • Support for (or migration from) Heroku, Render, Docker Compose, Fly… config files
  • Integrate with popular CI/CD pipelines
  • Continuous improvements based on user feedback and usage metrics

Apps

  • Deploy a few more useful apps: Abilian SBE, more...

Documentation

  • Create detailed guides for advanced configuration and customization
  • Add troubleshooting section for common deployment issues
  • Develop detailed migration guides for existing users
  • Tutorial for system administrators
  • Tutorial for application developers / packagers

Infra, QA

  • Improve logging and error reporting mechanisms
  • More end-to-end tests, examples
  • e2e CI tests
  • Optimize deployment scripts for faster performance
  • Develop a more robust plugin architecture

Code / refactorings

  • Convert to monorepo with suprojects (each with its own dependencies)
  • Fix all typing issues (mypy and pyright)
  • Split class Deployer. Introduce "DeployStep" and "DeployContext" classes.
  • Introduce new plugins (where it makes sense)

Security

  • SBOMs
  • Security (Firewall, WAF, better isolation, etc.)
  • Implement advanced monitoring and alerting capabilities
  • Conduct regular security audits and integrate automated security scanning
  • Develop comprehensive security documentation and best practices guides
  • Conduct security audits and integrate automated security scanning

Monitoring and Logging

  • Monitoring
  • Unified logging
  • Implement detailed monitoring and logging for all deployed applications
  • Integrate with popular monitoring and logging tools (e.g., Prometheus, Grafana, ELK stack)
  • Develop automated alerting and notification systems

Performance

  • Enhance scalability features for high-traffic applications
  • Continuous performance improvements based on user feedback and usage metrics