Skip to content

Latest commit

 

History

History
189 lines (117 loc) · 6.58 KB

roadmap.md

File metadata and controls

189 lines (117 loc) · 6.58 KB

Roadmap for Abilian SBE

Upcoming Releases

Version 1.2 (Q4 2024)

Focus Areas:

  1. Codebase Refinement:

    • Enhance type annotations and adopt modern Python coding practices, such as replacing legacy formatting with f-strings.
    • Refactor the application class for simplicity and modularity.
    • Split the extensions module to improve maintainability and logical separation.
  2. Dependency Updates:

    • Upgrade critical dependencies like SQLAlchemy to their latest stable versions.
    • Address vulnerabilities by removing deprecated or insecure dependencies, such as sqlparse.
  3. UI Modernization:

  4. Pipeline and CI/CD Enhancements:

    • Support for additional Python versions (e.g., Python 3.12), ensuring long-term compatibility.
    • Reactivate Alpine builds, add Rocky Linux.
    • Optimize CI pipelines for better efficiency.
    • Build and deploy w/ nixpacks.
  5. Open Source Compliance:

    • Ensure REUSE compliance across the project.
    • Add copyright notices and improve licensing transparency.
  6. SlapOS Integration

    • Update POC to MVP
  7. Documentation Enhancements:

    • Review and update existing Architecture Decision Records (ADRs).
    • Improve and expand documentation for both developers and end-users.

Version 1.3 (Q1 or Q2 2025)

Focus Areas:

  1. Modular Architecture:

    • Develop and implement a plugin system to allow customizable integrations.
    • Introduce pluggable components for storage (e.g., S3, MinIO) and search (e.g., Typesense, Elasticsearch) (see: ADR 005).
  2. Enhanced Security:

    • Overhaul authentication and permission systems with OpenID Connect (OIDC), SCIM, and RBAC (see: ADR 001, ADR 002, ADR 003).
  3. UI and UX Improvements:

    • Finalize the adoption of modern UI technologies to enhance usability and responsiveness.
  4. Community Engagement:

    • Foster an active contributor base through detailed onboarding guides, workshops, and governance transparency.
  5. Release Planning:

    • Prepare a streamlined process for ongoing feature releases and updates.

Tasks

  • Plugin architecture.
    • Pluggable search indexes (e.g. Typesense, ElasticSearch, etc.)
    • Pluggable file storage (e.g. S3, MinIO, etc.)
  • Overhaul of the authentication and permissions system.

See also:

A significant part of shaping the future of Abilian SBE involves participating in the creation and review of Architecture Decision Records (ADRs). These documents capture major architectural decisions and guide the project’s long-term technical direction.

Completed Releases

Version 1.1 (Q1 2024)

Tasks

  • Replace Celery with Dramatiq.
  • Make POC for SlapOS port of Abilian SBE (cf. HyperOpen X project).
  • Write some doc.
  • Upgrade some core dependencies: Flask, WTForms, etc.
  • POC for SlapOS port of Abilian SBE.

Achievements:

  1. Code Modernization:

    • Replaced Celery with Dramatiq for task management.
    • Conducted a significant cleanup of unused code and imports.
    • Transitioned to f-strings and type annotations for better readability and maintainability.
    • Removal of unused legacy code:
      • BaseCriterion, TextSearchCriterion, TextCriterion, and TagCriterion.
    • Simplification of inheritance hierarchies and CBVs.
    • Clean-up of imports across the project and removal of obsolete monkey patches.
    • Ensuring consistency with modern Python standards (PEP 8, PEP 484).
    • Enhanced use of black, isort, and ruff to enforce code quality.
  2. Dependency Upgrades:

    • Upgraded Flask, WTForms, SQLAlchemy, and related libraries.
    • Addressed deprecated dependencies and ensured compatibility with Python 3.12.
  3. Database Transition:

    • Moved to a PostgreSQL-first architecture, aligned with the HyperOpen X initiative.
  4. SlapOS Integration:

    • Developed a proof of concept (POC) for deploying Abilian SBE on SlapOS, paving the way for future compatibility with edge computing solutions.
  5. CI/CD Enhancements:

    • Improved test pipelines for faster execution and stability.
    • Dropped support for Python 3.9 to focus on supported versions.

Version 1.1.x (Q2 2024)

Achievements:

  1. Stabilization:

    • Incremental updates (1.1.6–1.1.10) to address bugs and improve stability.
    • Streamlined dependency management with Nix for reproducible builds.
  2. Security:

    • Protected sensitive configurations and secrets.
    • Addressed security vulnerabilities in outdated libraries.
  3. Documentation:

    • Enhanced developer documentation, including initial ADRs and improved README.

Version 1.1.x (Q3 2024)

Achievements:

  1. Documentation Overhaul:

    • Introduced a detailed contribution guide to lower the barrier for new contributors.
    • Expanded ADRs to cover architectural decisions comprehensively.
  2. Governance and Transparency:

    • Published governance documentation to improve project transparency and community involvement.
  3. Developer Experience:

    • Adoption of Nix for reproducible environments.
    • Modernized CI/CD workflows for better developer productivity.
  4. Modularity Preparations:

    • Began groundwork for a pluggable architecture to support future extensibility.