Timeline

This document is a summary of the DebOps development over time. You can see most of the project's history in git logs, however tracing it might be confusing due to the split and subsequent merge of the code back together. Here, we try to explain why that happened.

Summary of the events

The project has been initiated by Maciej Delmanowski in October 2013. In September 2014, after two project name changes, the code contained in one git repository was moved into multiple git repositories published in the debops organization on GitHub to allow publication of the roles in the Ansible Galaxy, as well as better usage of Travis CI to test the codebase.

The decision to move the project codebase to the separate git repositories shaped the DebOps project in multiple ways. It enforced the code separation between different Ansible roles that required development of proper ways to make them interact with each other and pass the data around. New open source projects, ansigenome and rolespec, were created to aid the DebOps development and maintenance.

Unfortunately, the growing codebase resulted in quickly rising number of git repositories to maintain, which sapped the available resources from project development. There were also issues with packaging the DebOps code and documentation in Debian, as well as no practical way to provide a "stable release" due to the separate git repositories being independently tagged and developed. Because of that, in August 2017 the project maintainers decided to merge all of the git repositories back into one monorepo to make the DebOps development easier.

The process was completed over a period of a few months. As the result, the development model also changed into a more distributed way with multiple forks of the main repository. First official stable release was published in May 2019.

2013

May 2013

  • Debian 7.0 (wheezy) becomes a Debian Stable release. It was the first Debian release supported by DebOps.

September 2013

  • Ansible 1.3 ("Top of the World") is released. This version introduced the role default variables, local facts and role dependencies, which became an integral part of DebOps later on.

October 2013

  • Initial commit in the ansible-aiua git repository which will eventually become DebOps.

December 2013

  • Support for ownCloud deployment is introduced. The role is used as a test case for PHP5 support in the project, and eventually will become one of the end-user applications provided in DebOps.

2014

February 2014

  • Travis CI tests are introduced to find any issues with pull requests before merging them. The project gets its own GitHub organization, and new development model using forked repositories is introduced.

March 2014

  • Support for GitLab CE deployment is introduced. The gitlab role will be used to test Ruby support and as an integration test for other DebOps roles, as well as to provide a git server for the IT infrastructures managed by DebOps.

July 2014

  • Nick Janetakis creates ansigenome project which is meant to ease management of multiple Ansible roles.

August 2014

  • The ginas project is renamed to DebOps project. The debops.org DNS domain is registered, project gets its own website, mailing list and GitHub organization.

September 2014

  • Nick Janetakis creates rolespec project which provides a unified test environment for separate DebOps roles based on Travis CI.

November 2014

December 2014

  • debops-tools v0.1.0 is released. This repository contains various scripts that can be used to install or update DebOps roles and playbooks git repositories, create project directories, and run the playbooks.

2015

February 2015

  • debops-playbooks v0.1.0 is released. This repository holds the DebOps playbooks that tie all of the roles together, and was treated as the "main" repository of the project when it was split into multiple git repositories.

March 2015

April 2015

June 2015

  • Introduction of MariaDB server and client roles to the project. They were used to test and develop split client/server role model with support for database server on remote hosts, later adopted in other DebOps roles.

September 2015

  • After discussion in the community role dependency model in DebOps is redesigned. Most of the role dependencies will be moved from the role meta/main.yml configuration to the playbook level to allow easy use of various DebOps roles independently from each other.

October 2015

  • The debops-contrib GitHub organization is created to host third-party DebOps git repositories and serve as a staging point for including new Ansible role repositories in DebOps.

2016

January 2016

March 2016

April 2016

  • Daniel Sender creates the first iteration of the debops Debian package. Unfortunately, problems with debops-doc package prevent full inclusion of the project in Debian.

July 2016

2017

June 2017

August 2017

September 2017

  • debops-tools v0.5.0 was the last tagged release of the DebOps scripts before the repository was merged into the new DebOps monorepo.

October 2017

  • The last commit in the debops-playbooks git repository. Later on the repository will be merged into the new DebOps monorepo.

  • debops v0.6.0 is released, along with updated scripts that support installation of the monorepo by the debops-update command. The release is fully compatible with older DebOps roles and playbooks. From this point on the old and new codebases start to diverge.

November 2017

  • Sphinx-based documentation is reinitialized in the monorepo. Previous iteration based on a central git repository and git submodules is deemed unsuitable, however current project documentation published on ReadTheDocs is kept in place, waiting before role documentation is fully migrated.

  • New Travis CI test suite is introduced that focuses on syntax, testing Python scripts, YAML documents, project documentation and git repository integrity. DebOps roles are not tested directly on Travis anymore.

December 2017

2018

January 2018

May 2018

2019

May 2019

July 2019

2020

April 2020