icemac.install.addressbook 1.5.3
Install, update and archive installations of icemac.addressbook.
License: MIT
Keywords: icemac addressbook install update archive manage

==========================
icemac.install.addressbook
==========================

Scripts to ease the installation and update an existing installation of
`icemac.addressbook`_  to a new version of the package.

.. _`icemac.addressbook` : https://pypi.org/project/icemac.addressbook/

.. contents::

Copyright
=========

Copyright (c) 2016-2020 Michael Howitz

This package is licensed under the MIT License, see LICENSE.txt inside the
package.

Installation of the scripts
===========================

Install the package `icemac.install.addressbook` using pip::

    $ pip install icemac.install.addressbook

This creates two scripts in the `bin` directory:

    * ``install-addressbook``
    * ``archive-addressbook``

Usage
=====

install-addressbook
-------------------

Start the script using::

    $ bin/install-addressbook [VERSION_NUMBER]

Where ``VERSION_NUMBER`` is the number of the version you want to install resp.
you want to update to. If you leave it out the newest version is used.


The script executes the following steps:

1. Download the source distribution of `icemac.addressbook` to a temporary
   directory.
2. Extract the source distribution to the current working directory.
3. Run the install script. If there is a symlink named ``current`` pointing to
   a previous `icemac.addressbook` installation it uses its
   configuration as default answers for the questions in the installation
   process.
4. Create or replace the new symlink named ``current`` pointing to the new
   installation.


make-current-addressbook
------------------------

This script is helpful if you want to switch back to an older installed address
book version in case of an error.

Start the script using::

    $ bin/make-current-addressbook VERSION_NUMBER

Where ``VERSION_NUMBER`` is the number of the version you want to make the
current one.

The script executes the following steps:

1. Create or replace the new symlink named ``current`` pointing to the new
   installation.


archive-addressbook
-------------------

After installing a new version of the address book you could archive the
previous one using this script.

Start the script using::

    $ bin/archive-addressbook 4.1

Where ``4.1`` is the version number of the installation you want to archive.

The script executes the following steps:

1. Create an archive of the requested
   `icemac.addressbook` installation (as installed by install-addressbook_) in
   a directory named ``archive``. (The ``archive`` directory is created if it
   not yet exists.)
2. Delete the requested `icemac.addressbook` installation.


change-addressbook-config
-------------------------

If you want change some answers to the questions asked during the installation,
you can run this script.

Start the script using::

    $ bin/change-addressbook-config

The script executes the following steps:

1. The configuration questions get re-presented to you with your previously
   entered values as defaults.

2. The address book instance has to be restarted afterwards. This can be done
   automatically by the script or manually.

Hacking
=======

* Clone the repository::

  $ git clone https://github.com/icemac/icemac.install.addressbook

* Create a virtualenv, install the installer and run it::

  $ cd icemac.install.addressbook
  $ virtualenv-2.7 .
  $ bin/pip install zc.buildout
  $ bin/buildout -n


==========
Change log
==========

1.5.3 (2020-03-23)
==================

- Pin dependencies to older versions to keep supporting Python 2.


1.5.2 (2019-10-09)
==================

- When already using an address book version with an encrypted admin password
  and then omitting the password when updating to the next version the
  `admin.zcml` file from the previous installation is copied. (This was not
  the case before leading to a broken installation because of a missing
  `admin.zcml`.)


1.5.1 (2019-10-04)
==================

- Add install dependency for `zc.lockfile` because it cannot be loaded in the
  buildout environment when `zc.buildout` is installed via `pip`.


1.4 (2019-09-26)
================

- Remove entries in crontab generated by the previous address book version
  when updating to a new one.

- Move whole installation code here from `icemac.addressbook` supporting its
  versions >= 9.

- Add script `bin/change-addressbook-config` to change configuration without
  installing a new addressbook version.

- Hash the admin password in the created `admin.zcml` and force to change the
  plain text password during install resp. config update.


1.3.1 (2018-08-04)
==================

- Use virtualenv instead of `bootstrap.py` of `zc.buildout`.


1.3 (2018-08-03)
================

- Change license from ZPL to MIT.


1.2.post1 (2017-12-26)
======================

- Also release as wheel.


1.2 (2017-04-08)
================

- `install-addressbook` now prints a message before starting the download.

- `archive-addressbook` now prints a message before starting archiving.

1.1.1 (2017-01-07)
==================

- Prevent an error in `archive-addressbook` if the ``bz2`` module is not
  available.


1.1 (2017-01-07)
================

- Add ``make-current-addressbook`` script to ease usage of the `current`
  symlink in case of an error.


1.0 (2017-01-06)
================

- Initial release.