Aegir5 Roadmap

Aegir5 is pre-alpha softare

Under open development at https://gitlab.com/aegir/aegir.

This roadmap will be regularly updated as we iterate, to reflect current progress and status.

Upcoming milestones:

We’ve recently revised our aspirational development schedule for the pre-Alpha and Alpha release cycle, attempting to project out as far as an RC0 release by Drupal 7 (official) EOL, although that target seems to be shifting as well.

For now, only the immediate next steps to get to Beta-quality software are clear to us, and we hope to inspire broader community engagement by that point, to help further refine and implement Aegir5!

Milestones overview

Trajectory

We are currently in pre-alpha development stage. Having prototyped the basic architectural pieces to prove its utility, we are currently focused on solidifying an initial foundation, so that we can better enable the existing Aegir community to participate in the project.

Following a two-year hiatus of active development (and a working prototype), the Consensus team has been undertaking a re-invigoration of the project and working hard to solidify an architectural foundation based on our initial prototype.

In the last year or so, we have:

  • Roadmapped a few milestones ahead, and written myriad new tickets to describe our aspirations for how to proceed, at least as far as an RC release.
  • Re-architected the queue system and the Celery workers that underpin the core Aegir functionality of modeling and manipulating Platforms & Sites from the frontend, and translating those into Operations & Tasks, run on the backend. (see eg. #42, #64, #69, #70)
  • Written solid test coverage for these foundational pieces, and a simple “manual check” workflow to ensure the queues are up and running (see the HOWTO)
  • Begun fleshing out some Examples-style projects as a way to demonstrate how to approach building up Aegir5 functionality from first principles.
  • Revived this docs site, adopting a diataxis framework for structuring our documentation.
  • Overhauled our localdev workflows and tooling, leveraging DDEV to more accurately model the networked set of Aegir5 services. (eg. see #59 #79

Next Steps

The Next Steps section maps out a rough set of pieces that need to be tackled in order to get us to a Release Candidate. The first few steps will likely need to be covered in the order given, but later steps will need to be clarified as we go.

NB We shortly intent to re-incorporate this “next-steps” page into the current one, or otherwise into the documentation generally, if it’s complete. (see #90).

In broad strokes, the goals for the next few milestones are roughly:

pre-Alpha

Generally our focus on the pre-Alpha releases is enabling other developers to meaningfully engage with Aegir development, and putting the pieces in place to enable us to build out Drupal functionality to get us back to feature parity with Aegir3 (core).

pre-Alpha0 (DONE!)

  • Nail down the queue system, finish re-architecture and 2 workers (relayd & dispatcherd basics)
  • Get DDEV and container images in place, and solidify related localdev tooling.

pre-Alpha1 (target: end-Dec 2021)

  • Re-enable automated CI tests, including @javascript scenarios. (see #58).
  • Add “minion” container to localdev setup, and rough in SSH connection so dispatcherd can run tasks in minions. (see #60).
    • Deploy static site to a static minion with Nginx/Apache and a single HTML file.
    • (optional) Re-enable deploying D7 platform/site to the minion.

pre-Alpha2

  • Re-model variable structure for dispatching tasks (see #44).
  • Consolidate per-Task roles into Ansible task-files in Platform/Application-level roles. (see #91
  • Re-name Aegir entity classes, etc. (see #76).

pre-Alpha3

  • Introduce “host” and “services” entities, to model Aegir3 behaviour for minions. (see #92).

pre-Alpha4

  • Implement alternative task types, so dispatcherd can run more than just Ansible playbooks. (see #52).

Alpha

The focus of the Alpha releases will be to get us back to feature parity with Aegir3 core as it stands today. This is specifically just the bare bones of CRUD operations on D8+ sites (probably not even D7 support initially), in order that we can begin to use it in real environments, and thus inform where to direct further development efforts.

Alpha0 (target: end-Feb 2022)

  • Basic Drupal 8+ support comparable to Aegir3.
  • Better security by default.
  • Feature-complete ready for regular use

Beta

  • Stabilizing, improving performance, etc.
  • For the adventurous :)

See also: Next Steps