All notable changes to this project will be documented in this file.
This project try to follows Semantic Versioning since the version 1.0.0.
For migration information, you can always have a look at https://liip-drifter.readthedocs.io/en/latest/migrations.html.
- Ruby role: allow to configure ruby-build version with the
ruby_build_version
variable - PHP role: add support for Debian Buster
- PostGIS role: add support for Debian Buster and drop Debian Wheezy
- Django role: allow to disable virtualenv usage with
django_use_virtualenv
variable - NodeJS role: you can now install versions 13.x and 12.x; 12.x replaces 10.x as the default
2.1.0 - 2019-08-27
- MySQL role: add options to set encoding and collation
- NodeJS role: add support for Debian Buster
2.0.4 - 2019-07-08
- Webpack role: replace
style-loader
withmini-css-extract-plugin
- Node.js role: update dependencies for webpack variant of package.json
2.0.3 - 2019-06-03
- Base role: add exim4 package
- Gitlab CI role:
PROJECTS_CACHE_DIR_BASE
andPROJECTS_CACHE_DIR
are provided for using user id based project cache directories.
- Ruby role: update rbenv and ruby-build. Set default ruby version to 2.6.3
- Global git ignore: add
.phpstorm_helpers
folder
- Apache role: fix vhost when SSL is enabled
- Node.js role: fix "npm install" not being executed
2.0.2 - 2019-03-21
- PHP Role: Make sury.org signature key id configurable with
php_sury_apt_key_id
variable
2.0.1 - 2019-03-19
- PHP Role: Replace sury.org signature key
2.0.0 - 2019-02-20
This release contains breaking changes, please refer to the migration instructions when upgrading.
- PHP role: add compatibility for Debian Stretch
- PHP role: bump default version to 7.2
- Bump Ansible default version to 2.7.0
- Drop support for Debian Wheezy
- Nginx role: update templates "extend" rules to match changes in Ansible paths lookup
- Remove deprecated roles flask and compass
- Python role: bump default pip version to 19.0.2 and setuptools to 40.8.0
- MySQL role: bump default version to 5.7
- Ruby role: fix installation on Debian Stretch
- MySQL role: fix mysql package installation (was broken because of a key change)
1.8.0 - 2019-01-07
- Added PHP PhIVE support
- Added option to enable assert exceptions for PHP 7.0 and above
- Make ansible version in the guest configurable via parameters.yml
- Django role: download and enable bash completion for django commands
- Node.js role: allow to disable package.json creation with new parameter
nodejs_create_package_json
- Python role: add the option to build Python from source
- Webpack role: update dependencies, especially upgrade to Babel 7
- Ruby role: update ruby-build to v20181207
- Node.js role: you can now install versions 9.x, 10.x and 11.x; 10.x replaces 8.x as the default
- Explicitly set box_name and box_url in parameters.yml when creating a new project (fixes #225)
- Remove AppArmor 'unconfined' profile directive from Vagrantfile (since it's causing issues with LXC 3)
- Fix "Failed to set permissions on the temporary files" error
1.7.0 - 2018-05-19
- Add Pipenv role
- Django role: add
django_use_pipenv
parameter to use Pipenv - Webpack role: a brand new way of handling front-end assets in your projects, preconfigured!
- Add
extra_server_top
block toprovisioning/roles/nginx/templates/default-site.j2
- Adapt postgis role to version 2
- gitlab.liip.ch got a new ssh key.
- Avoid compiling requirements files that are already compiled in the virtualenv role
- Django role: drop support for Django 1.6 and remove
django_version
parameter - Python role: upgrade pip to 10.0.1 and setuptools to 39.1.0
- Python role: use Python 3 by default
- virtualenv role: upgrade pip-tools to 2.0.1
- Postgresql role: install the postgresql-contrib package
1.6.0 - 2018-03-27
To get the fix for the Ansible error "failed to set permissions on temporary files", you'll need to overwrite your
ansible.cfg
file with the ansible.cfg.dist
file. This can be done with the following command: cp virtualization/drifter/ansible.cfg.dist ansible.cfg
.
- gulp and nodejs roles: call
npm install
on every provisioning, unlessnodejs_install_package_json
is set tofalse
- gulp role: rename parameter
gulp_package_json_path
tonodejs_package_json_path
, andgulp_package_json_author
tonodejs_package_json_author
- gulp role: add parameter
gulp_patch_package_json
to prevent thegulp
role from interacting with thepackage.json
file - nodejs role: add parameter
nodejs_package_json_template
to customize the template used to create thepackage.json
file - Fix Ansible error "failed to set permissions on the temporary files". This needs updating your
ansible.cfg
file with the contents fromansible.cfg.dist
- Fix default backingstore to
dir
with vagrant-lxc provider - Ruby role: update rbenv to v1.1.1 and ruby-build to v20180224. Upgrade Ruby version to 2.4.1
- Allow CPU count and memory to be configured in parameters.yml
- Nginx role: added Symfony4 template (PR #187)
- Disable AppArmor by default to ensure compatibility with Debian Linux Kernel 4.13
- Make python-apt installed status detection future-proof (PR #204)
1.5.0 - 2017-10-30
- Apache role: add support for the
web_directory
parameter - Solr role: allow to setup a Solr index/core during the provisioning
- Vagrant: update ansible_local version for Vagrant 2.0
1.4.0 - 2017-09-20
- Virtualbox: allow use of Virtualbox shared folders besides nfs
- Node role: add support for version 8.x and make it the default
- Add
phantomjs
role to install a specific phantomJS version - Add
firefox
role to install a specific version or the latest Firefox version - Add
chrome
role to install the Chrome browser - Add plugin to improve Ansible output readability, see
ansible.cfg.dist
for to enable it - Add parameters java_jre_version & java_jdk_version
- Gulp role: Webpack now uses "cheap-module-source-map" as devtool
- php-xdebug role: add
xdebug_idekey
configuration option - Nginx role: allow to extend templates from outside the templates directory
- Flask role: this role is now deprecated since all it did was depending on the virtualenv role
- Mysql role: use become to create database and user. Fixes problem on xenial
- PHP role: don't download surby.org gpg key, when not needed. Fixes problem on wheezy
- MySQL role: don't install mysql upstream repository if a newer version is already installed.
- Nginx role: fix Drupal templates and rewrite rule
1.3.0 - 2017-04-26
- Virtualenv role: add
pip_requirements_dir
option to automatically compile.in
requirements - PHP role: add support for PHP 7.1
- Gulp role: add
gulp_create_config
to make gulp.config.js file creation optional
- Webpack role: use absolute path for the output.path config value
- Nginx role: add X-Forwarded-Proto header in Rails site template
- PHP role: change the packages repo from the discontinued dotdeb.org to deb.sury.org
- PHP role: xdebug and imagick for PHP 7.x are taken from the repo and not compiled anymore
1.2.0 - 2017-03-28
- Node role: add support for version 7.x
- Node role: install yarn when
nodejs_with_yarn
is set totrue
- Gulp role: Specify SSL certificates in BrowserSync config when role SSL is installed
- Gulp role: Print WebPack/Sass compilation to the browser
- Ruby role: add instructions on how to setup Drifter for Rails projects
- Virtualbox: Set timesync-set-threshold to 10 seconds instead of the default 20 minutes
- Nginx role: add Rails template
- PHP role: set
always_populate_raw_post_data
to -1 to avoid deprecation warnings - Compass role: Deprecate because Compass is not maintained anymore
- Gulp role: Update WebPack to 2.2 and other various dependencies
- Gulp role: Autoprefixer now uses Browserslist
- Gulp role: WebPack’s babel-loader now uses preset
env
by default - Gulp role: WebPack config is now standard (export an object and not a function)
- Documentation: Converted the documentation language from Markdown to RestructuredText
- MySQL role: fix installation of MySQL packages by upgrading mysql-apt-config
- php-memcached role: Fix the memcached extension installation for debian
- MySQL role: improve upgrades of MySQL by executing mysql_upgrade
1.1.1 - 2017-02-02
- Ruby role: fix installation of Ruby by installing missing dependency
1.1.0 - 2017-02-01
- Nginx role: added Drupal templates (D6, D7 and D8)
- OpenLDAP (slapd) role
- Base role: Set the cache valid-time for
apt-update cache
command to 1h - Django role: generate ALLOWED_HOSTS file to comply with Django >= 1.9.11
- Ruby role: install with rbenv, Ruby version can be set with the
ruby_version
parameter. See documentation
- Composer role: don't reinstall on every provision
- Nginx role: use web_directory parameter for HTTPS root instead of root_directory
- The playground is working again
1.0.9 - 2016-12-02
- Improve MySQL role to support different versions (parameter
mysql_version
)
- Try to use git_config instead of shell commands to prevent warnings
- Fix deprecated use of hosts variable in base role
- The
index
block in nginx templates now works correctly - Fix solr config folder permissions and Supervisord restart on Wheezy
- Fix DotDeb key installation, see #130
- Remove maximum allowed request body size in Nginx configuration (fixes #136)
- Fix usage of HTTPS URLs (eg. in nodejs role) in boxes that use Python < 2.7.9 (eg. Ubuntu Trusty, Debian Wheezy) (fixes #140)
1.0.8 - 2016-10-04
- Use the correct package for Python 3 virtualenv on Ubuntu Trusty
1.0.7 - 2016-09-23
- Change the directory before loading Drifter's Vagrantfile so that Vagrant can be run from anywhere inside the project root
- Interactive install script
- The IP is not defined by default anymore as vagrant does this automatically
- Upgrade Ansible to version 2.1.1 inside the box
- Set the permission of the solr data directory so that the core can correctly start
- Fix the default nginx vhost when setting up an index file
- Flush handlers at the end of relevent roles to ensure services are available
- Fix an error where the destination directory contains spaces
- Ensure git is installed before synching git config
- Ensure libpam-systemd installed and sshd configured to use it; this obviates the need to remove systemd
1.0.6 - 2016-08-12
- add the possibility to use PureScript to
gulp
role
- fix error due to change on the diff-so-fancy repo, now use a set version to avoid further issue
- fix error display when getting git config on the host
- escape double quotes in git exported config to avoid error when reimporting
- force creation of symlink for supervisor on wheezy to avoid errors
1.0.5 - 2016-07-27
- git config sync now works as expected (not syncing project config, and avoid config duplication on each provisioning). See #97
1.0.4 - 2016-07-27
- specify install method and version for ansible when using
ansible_local
and it is not found in the box
- avoid install
fancy-diff
on each provisioning
1.0.3 - 2016-07-27
webpack
support togulp
role, only works on new boxes as the Gulpfile is not recreated
- remove the dependency for
git
on thebase
role since it's included via the playbook
1.0.2 - 2016-07-26
- force
.gitconfig
symlink creation if the file already exists
1.0.1 - 2016-07-26
- remove config
push.default = simple
for git since it caused issues onWheezy
and it's the default for Git > 2 anyway
1.0.0 - 2016-07-26
First stable release. As of now, Drifter will follow Semantic Versioning.
This version contains a lot of BC breaks, please read https://liip-drifter.readthedocs.io/en/latest/migrations/#version-100.
Also, the requirements are bumped to Ansible 1.9 if you're not using ansible_local
, and Vagrant 1.8.4.
- new
git
role, with config sync possibilities and diff-so-fancy. - new
virtualenv
role
- use
become
instead ofsudo
(requires Ansible 1.9) - [BC] remove support for old Vagrant file deprecated in v0.2.0
- assume
ansible
is installed in the box and remove installation procedure - improved documentation
- renamed
redis-php
andmemcached-php
roles to follow convention flask
anddjango
roles now use the newvirtualenv
role
0.5.1 - 2016-07-21
- the install script now installs the latest tag instead of HEA
- error handling in install script
0.5.0 - 2016-07-21
- roles: gulp, logstash, rabbitmq, memcached & php-memcached
ansible_local
now works with LXC- new nginx template for silex
- use php alternative path to ease switching between versions
- possibility to install various NodeJS version
- use new JSON format for boxes, along with documentation for building them
ansible
installation in the box (multiple times ^^)- PHP socket timeout fixes
0.4.0 - 2016-05-10
- use RTD for the documentation
- Gitlab CI roles
- use
vagrant-cachier
and linked clones for VB if installed
- install php-redis along with PHP
- rename from "Rawbot Virtualization Framework" to "Drifter"
- improve "migration" from PHP5 to PHP7
- make provisioning less verbose
- enable port forwarding configuration
- issues with Ansible version 1.7.0
- detect LXC provisioner in more cases
- installation of
ansible_local
- various bugfixing in roles
0.3.0 - 2016-01-12
- Enable the use of
ansible_local
when possible
0.2.0 - 2016-01-12
First release trying to support Windows.
See https://liip-drifter.readthedocs.io/en/latest/migrations/#version-010-to-020.
- remove use of symlinks for the various files
- Include Drifter's Vagrantfile into a "Config Vagrantfile" instead of copying the whole file into the project directory
0.1.0 - 2016-01-12
The first release was made long after the project start when people from outside the Lausanne office started using it and we needed some kind of way to know which version was used.
- Use of Vagrant
- Lots of roles : Java, Solr, Ruby, Compass, Django, Postgres, Nginx, NodeJS, SSL, ...
- Multiple improvement on roles
- Probably lots of things
First Blood - 2014-09-26
Hackish try to do something using Docker to achieve the same purpose as today. The idea was fairly quickly abandoned because it was too complicated to manage the fact that we have people on multiple platforms.
Some of the roles still survives today, so not everything was lost ;)
- Roles : Apache, PHP