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.
Introduction of randomly generated passwords with the MySQL role. This feature will eventually evolve into debops.secret role and will be used almost everywhere in DebOps.
December 2013
The
ansible-aiua
project is renamed to ginas. ginas is not a server.
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
Project gains support for Vagrant virtual machines, used for demonstration purposes.
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.
Introduction of Sphinx-based documentation.
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
Introduction of Nick Janetakis as a first major contributor to the project, with first draft of the Getting Started guide.
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. Thedebops.org
DNS domain is registered, project gets its own website, mailing list and GitHub organization.
September 2014
The last commit in the old DebOps repository. The development if this repository has been frozen since. It is now included in the DebOps monorepo as a separate
ginas-historical
branch.
Nick Janetakis creates rolespec project which provides a unified test environment for separate DebOps roles based on Travis CI.
First version of the DebOps install scripts written in Bash, located in the
debops-tools
repository. They will be used to download all other DebOps repositories with playbooks and roles.
November 2014
Maciej Delmanowski writes the ipaddr() Ansible filter plugin for usage with debops.ifupdown role and others that require IP address manipulation. The plugin is later merged into Ansible Core.
December 2014
Hartmut Goebel rewrites the Bash DebOps scripts in Python. They will be later published on PyPI which will become main installation method.
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
Robert Chady introduces custom Ansible lookup plugins to the project,
file_src
,template_src
and latertask_src
, which allow usage of custom files and templates inside roles without modifications, as well as injection of custom Ansible tasks in the roles.
April 2015
Debian 8.0 (jessie) becomes a Debian Stable release.
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
Ansible 2.0 ("Over the Hills and Far Away") is released.
March 2016
The DebOps mailing list is moved to a self-hosted Mailman installation based on DebOps, to ensure that the project is "eating its own dog food".
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
Robin Schneider creates DebOps entry in the Core Infrastructure Initiative Best Practices program.
2017
June 2017
Debian 9.0 (stretch) becomes a Debian Stable release.
August 2017
Maciej Delmanowski proposes merge of all of the project repositories back together into one DebOps monorepo. The plan is to resolve all pending pull requests in various repositories before merging starts.
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.
All of the pending pull requests in DebOps roles are resolved and the code from separate git repositories is merged into single monorepo, which becomes the main development repository.
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.
ypid roles from 'debops-contrib' organization are merged to the DebOps monorepo without further changes; they will be integrated with the main playbook later on.
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.
Support for Docker containers is introduced in the monorepo, along with an official 'debops/debops' Docker image which is automatically rebuilt and published on any changes in the repository.
December 2017
New test suite based on GitLab CI is introduced which allows testing of the DebOps roles using Vagrant, LXC and KVM/libvirt stack.
2018
January 2018
DebOps role documentation is moved to the 'docs/' directory and the project documentation published on ReadTheDocs is switched to the DebOps monorepo version.
May 2018
End of Debian Wheezy LTS support.
2019
May 2019
July 2019
Debian 10.0 (buster) becomes a Debian Stable release.
2020
April 2020
End of Debian Jessie LTS support.