===================
App::Dochazka::REST
===================
-----------------------------------------------------------------------
REST server component of the Dochazka Attendance & Time Tracking system
-----------------------------------------------------------------------
Documentation
=============
http://metacpan.org/pod/App::Dochazka::REST
Test drive
==========
The :code:`test-drive.sh` script makes it possible to take
App::Dochazka::REST for a test drive without installing it. The only
prerequisite is that Docker must be installed and running. ::
$ ./test-drive.sh
When the script finishes, you should be able to access the REST server
on port 5000.
Dockerized testing environment
==============================
The git repo includes a :code:`Dockerfile` that can be used to create
a Dockerized testing environment: ::
$ docker build -t dochazka-rest docker/testing/
The resulting image, tagged :code:`dochazka-rest`, is designed to work with
the `official PostgreSQL Docker images`_.
. _`official PostgreSQL Docker images`:
https://hub.docker.com/_/postgres/
A script, :code:`docker-test.sh`, is provided in the top-level directory
to make it easier to run both images and link them together properly: ::
$ ./docker-test.sh
f4d9677dd59e23527122a4f38c662b4b8ea6bb49a3921a018e7b70dfc7c25c1e
51e839db7d66fe5c90edc73e850fe85c35dca5401bd502277d6575fcbbea9f4d
$
The :code:`docker-test.sh` script spawns two Docker containers, tagged
:code:`dr-postgres` and :code:`dr`, and writes their hashes to stdout.
The Dockerized testing environment is in the container :code:`dr`. To gain
access to it, run this command: ::
$ docker exec -it dr bash
smithfarm@dr:~/dochazka-rest>
At this point, you should be able run the test suite: ::
smithfarm@dr:~/dochazka-rest> prove -lr t
Release management
==================
First, make sure you have :code:`perl-reversion` and :code:`cpan-uploader`
installed. In openSUSE, this means installing the :code:`perl-Perl-Version`
and :code:`perl-CPAN-Uploader` packages.
Second, run the :code:`prerelease.sh` script to bump the version number,
commit all outstanding modifications, add a git tag, and append draft
Changes file entry: ::
$ sh prerelease.sh
Third, push the changes to GitHub: ::
$ git push --follow-tags
Fourth, optionally run the release script to push the release to OBS
and CPAN: ::
$ sh release.sh