From a2cf4fc45fe9103e8c78c6038c85035d8dcda32b Mon Sep 17 00:00:00 2001
From: jenkins <admin@qarea.com>
Date: Tue, 29 May 2018 17:08:23 +0300
Subject: [PATCH] Release 0.31.0 [ci-skip]

---
 .release/0.31.0.migrate | 428 ++++++++++++++++++++++++++++++++++++++++
 migrate                 |   6 +
 2 files changed, 434 insertions(+)
 create mode 100644 .release/0.31.0.migrate

diff --git a/.release/0.31.0.migrate b/.release/0.31.0.migrate
new file mode 100644
index 0000000..ed98e62
--- /dev/null
+++ b/.release/0.31.0.migrate
@@ -0,0 +1,428 @@
+# This file describe operations needed for migration between versions,
+# both for UPGRADE and DOWNGRADE.
+#
+# Documentation about syntax of this file:
+# https://metacpan.org/pod/App::migrate#SYNTAX
+#
+# You shouldn't modify anything in this file BEFORE LAST "VERSION" LINE!
+# If you will do this you'll likely BREAK DOWNGRADE for some version.
+# Exceptions from this rule are:
+# - git rebase
+# - add/remove comments, empty lines or do other visual/formatting changes
+# - add new DEFINEs
+# - modification of downgrade/after_downgrade operations needed to FIX
+#   BROKEN DOWNGRADE
+#
+# You shouldn't manually add "VERSION" lines - run narada-release instead.
+# Exceptions from this rule are some advanced use cases like:
+# - squashing several patches into one
+# - merging different release branches like 1.x and 2.x
+
+# INSTALL
+# - usually it will be automatically added by ./release, and you shouldn't
+#   add it manually
+# - this operation must be the last one, right before VERSION - to make
+#   sure patch&tgz will be applied exactly between before_upgrade and
+#   upgrade operations, and will be reversed exactly between downgrade and
+#   after_downgrade operations
+DEFINE2 INSTALL
+before_upgrade
+  if test -f .release/${MIGRATE_NEXT_VERSION}.patch; then
+    GIT_DIR=.git git apply .release/${MIGRATE_NEXT_VERSION}.patch
+  fi
+  if test -f .release/${MIGRATE_PREV_VERSION}.tgz; then
+    files='m{\A[.]/\n}&&next;s/\n/\0/;s/(\\.)/"\"$1\""/gee;m{/\0}||print'
+     dirs='m{\A[.]/\n}&&next;s/\n/\0/;s/(\\.)/"\"$1\""/gee;m{/\0}&&print'
+    names=$(tar tzf .release/${MIGRATE_PREV_VERSION}.tgz)
+    echo "$names" |       perl -ne "$files" | xargs -0 -r rm -f
+    echo "$names" | tac | perl -ne "$dirs"  | xargs -0 -r rmdir --ignore-fail-on-non-empty
+  fi
+  if test -f .release/${MIGRATE_NEXT_VERSION}.tgz; then
+    tar xzvpf .release/${MIGRATE_NEXT_VERSION}.tgz
+  fi
+  narada-bg-killall
+after_downgrade
+  if test -f .release/${MIGRATE_PREV_VERSION}.patch; then
+    GIT_DIR=.git git apply -R .release/${MIGRATE_PREV_VERSION}.patch
+  fi
+  if test -f .release/${MIGRATE_PREV_VERSION}.tgz; then
+    files='m{\A[.]/\n}&&next;s/\n/\0/;s/(\\.)/"\"$1\""/gee;m{/\0}||print'
+     dirs='m{\A[.]/\n}&&next;s/\n/\0/;s/(\\.)/"\"$1\""/gee;m{/\0}&&print'
+    names=$(tar tzf .release/${MIGRATE_PREV_VERSION}.tgz)
+    echo "$names" |       perl -ne "$files" | xargs -0 -r rm -f
+    echo "$names" | tac | perl -ne "$dirs"  | xargs -0 -r rmdir --ignore-fail-on-non-empty
+  fi
+  if test -f .release/${MIGRATE_NEXT_VERSION}.tgz; then
+    tar xzvpf .release/${MIGRATE_NEXT_VERSION}.tgz
+  fi
+  narada-bg-killall
+
+DEFINE2 only_before_upgrade
+upgrade
+downgrade true
+
+DEFINE2 only_upgrade
+upgrade
+downgrade true
+
+DEFINE2 only_downgrade
+upgrade true
+downgrade
+
+DEFINE2 only_after_downgrade
+upgrade true
+after_downgrade
+
+# mysql path/to/alter.sql
+# mysql
+#   sql commands here ...
+DEFINE mysql
+upgrade
+  test -f "$1" -a -r "$1"
+  narada-mysql < "$1"
+
+# rollback_mysql path/to/alter.sql
+# rollback_mysql
+#   sql commands here ...
+DEFINE rollback_mysql
+downgrade
+  test -f "$1" -a -r "$1"
+  narada-mysql < "$1"
+
+# mkdir some/dir ...
+# - parameters can't contain /../ or begin with /
+DEFINE2 mkdir
+upgrade
+  perl -e 'exit grep {m{\A/|(\A|/)[.][.](/|\z)}} @ARGV' "$@"
+  mkdir "$@"
+downgrade
+  perl -e 'exit grep {m{\A/|(\A|/)[.][.](/|\z)}} @ARGV' "$@"
+  rm -rf "$@"
+
+# rmdir some/dir ...
+# - parameters can't contain /../ or begin with /
+DEFINE2 rmdir
+upgrade
+  perl -e 'exit grep {m{\A/|(\A|/)[.][.](/|\z)}} @ARGV' "$@"
+  rm -rf "$@"
+after_downgrade
+  perl -e 'exit grep {m{\A/|(\A|/)[.][.](/|\z)}} @ARGV' "$@"
+  narada-restore .backup/full-"$MIGRATE_NEXT_VERSION".tar "$@"
+
+# rm some/file ...
+# - parameters can't contain /../ or begin with /
+DEFINE2 rm
+upgrade
+  perl -e 'exit grep {m{\A/|(\A|/)[.][.](/|\z)}} @ARGV' "$@"
+  rm -f "$@"
+after_downgrade
+  perl -e 'exit grep {m{\A/|(\A|/)[.][.](/|\z)}} @ARGV' "$@"
+  narada-restore .backup/full-"$MIGRATE_NEXT_VERSION".tar "$@"
+
+# add_config some/config "value"
+# add_config some/config -
+#   value
+# - config must not exists
+DEFINE2 add_config
+upgrade
+  test ! -e config/"$1"
+  mkdir -p $(dirname config/"$1")
+  { test $# = 3 && cat "$3" || echo -n "$2"; } > config/"$1"
+  echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+  echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+downgrade
+  rm -f config/"$1"
+  rmdir -p $(dirname config/"$1") 2>/dev/null || :
+  echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+  echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+
+# set_config some/config "new value"
+# set_config some/config -
+#   new value
+# - config may exists
+# - on downgrade previous value restored only if current is "new value"
+DEFINE2 set_config
+upgrade
+  mkdir -p $(dirname config/"$1")
+  { test $# = 3 && cat "$3" || echo -n "$2"; } > config/"$1"
+  echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+  echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+after_downgrade
+  test $# = 3 && value=$(cat "$3") || value="$2"
+  if test "$(cat config/"$1")" = "$value"; then
+    narada-restore .backup/full-"$MIGRATE_NEXT_VERSION".tar config/"$1"
+    echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+    echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+  fi
+
+# mod_config some/config "pcre regex" "new value"
+# mod_config some/config "pcre regex" -
+#   new value
+# - config must exists
+# - value changed only if current value match "pcre regex"
+# - on downgrade previous value restored only if current is "new value"
+DEFINE2 mod_config
+upgrade
+  test -e config/"$1"
+  if grep -q -P -- "$2" config/"$1"; then
+    { test $# = 4 && cat "$4" || echo -n "$3"; } > config/"$1"
+    echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+    echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+  fi
+after_downgrade
+  test $# = 4 && value=$(cat "$4") || value="$3"
+  if test "$(cat config/"$1")" = "$value"; then
+    narada-restore .backup/full-"$MIGRATE_NEXT_VERSION".tar config/"$1"
+    echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+    echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+  fi
+
+# del_config some/config
+DEFINE2 del_config
+upgrade
+  rm -f config/"$1"
+  rmdir -p $(dirname config/"$1") 2>/dev/null || :
+  echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+  echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+after_downgrade
+  narada-restore .backup/full-"$MIGRATE_NEXT_VERSION".tar config/"$1"
+  echo "$1" | grep -v -q '^crontab/' || narada-setup-cron
+  echo "$1" | grep -v -q '^qmail/'   || narada-setup-qmail
+
+# exclude_from_backup "value"
+DEFINE2 exclude_from_backup
+upgrade
+  test -e config/backup/exclude
+  if ! grep -q -F -x -- "$1" config/backup/exclude; then
+    echo "$1" >> config/backup/exclude
+  fi
+after_downgrade
+  test -e config/backup/exclude
+  grep -v -F -x -- "$1" config/backup/exclude >tmp/config_backup_exclude.$$
+  mv tmp/config_backup_exclude.$$ config/backup/exclude
+
+# kill process_name ...
+# - make sure processes started before upgrade/downgrade but blocked on
+#   start because of lock won't continue to run after upgrade/downgrade
+DEFINE2 kill
+upgrade
+  killall -9 "$@" || :
+after_downgrade
+  killall -9 "$@" || :
+
+# Initial version. MUST be 0.0.0 for new empty projects.
+VERSION 0.0.0
+
+# REQUIRED Narada files & directories:
+only_upgrade
+    mkdir -p .backup
+mkdir config
+mkdir tmp
+mkdir var
+mkdir var/log
+mkdir var/use
+
+add_config backup/exclude -
+  ./.backup/*
+  ./.lock*
+  ./tmp/*
+  ./.release/*
+add_config backup/pass
+only_upgrade
+  chmod 0600 config/backup/pass
+add_config crontab/backup -
+  1 3 * * *   ( narada-backup && echo Reminder: encrypt .backup/full.tar with config/backup/pass and upload it somewhere >&2) >/dev/null
+  1 2 * * 1   rm .backup/full.tar >/dev/null 2>&1
+
+add_config log/level    DEBUG
+add_config log/type     syslog
+add_config log/output   var/log.sock
+
+### narada-plugin-runit
+
+# restart service_to_restart
+DEFINE2 restart
+upgrade
+  sv t ./service/"$1" || :
+after_downgrade
+  sv t ./service/"$1" || :
+
+add_config service/type runit
+add_config crontab/service -
+  */1  * * * *    narada-start-services &
+
+exclude_from_backup ./service/*/supervise
+exclude_from_backup ./service/*/log/supervise
+
+### narada-plugin-socklog
+
+restart log
+
+### narada-plugin-go-service
+
+add_config http/listen           127.0.0.1:0
+add_config http/basepath
+add_config http/real_ip_header
+
+### narada-tgms-base
+
+add_config lock_timeout          1s
+add_config rsa_public_key
+
+### narada-tgms-base tracker_adapter
+
+add_config http/timeout           10s
+
+add_config router                http://localhost
+add_config mq/url
+add_config mq/cluster_id         event-bus
+add_config mq/client_id
+
+restart todoistms
+
+INSTALL
+VERSION 0.1.0
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+restart todoistms
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.12.0
+
+add_config sentry_dsn
+add_config service_name
+restart todoistms
+
+INSTALL
+VERSION 0.13.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.14.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.15.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.16.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.17.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.18.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.19.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.20.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.21.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.22.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.23.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.24.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.25.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.26.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.27.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.28.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.29.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.30.0
+
+
+restart todoistms
+
+INSTALL
+VERSION 0.31.0
+
diff --git a/migrate b/migrate
index 945a074..ed98e62 100644
--- a/migrate
+++ b/migrate
@@ -420,3 +420,9 @@ restart todoistms
 INSTALL
 VERSION 0.30.0
 
+
+restart todoistms
+
+INSTALL
+VERSION 0.31.0
+
-- 
GitLab