Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
410 lines (271 sloc) 13 KB


This document is a summary of the DebOps development over time. You can see most of the project's history in :command:`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 happended.

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 :command:`git` repository was moved into multiple :command:`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 coodebase to the separate :command:`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 :command:`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 :command:`git` repositories being independently tagged and developed. Because of that, in August 2017 the project maintainers decided to merge all of the :command:`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. At present, the DebOps codebase is being prepared for its first official stable release.


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

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.


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

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 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 :command:`git` repositories, create project directories, and run the playbooks.


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 :command:`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 :file:`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 :command:`git` repositories and serve as a staging point for including new Ansible role repositories in DebOps.


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


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

  • debops v0.6.0 is released, along with updated scripts that support installation of the monorepo by the :command:`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

December 2017


January 2018

May 2018


April 2020