========
CryptoIM
========

.. image:: https://travis-ci.org/oskopek/CryptoIM.png?branch=develop
    :target: https://travis-ci.org/oskopek/CryptoIM
    :alt: TravisCI

.. image:: https://coveralls.io/repos/oskopek/CryptoIM/badge.png?branch=develop
    :target: https://coveralls.io/r/oskopek/CryptoIM?branch=develop
    :alt: Coveralls

.. image:: https://pypip.in/v/CryptoIM/badge.png
    :target: https://pypi.python.org/pypi/CryptoIM/
    :alt: Latest Version

.. image:: https://pypip.in/d/CryptoIM/badge.png
    :target: https://pypi.python.org/pypi/CryptoIM/
    :alt: Downloads

.. image:: https://pypip.in/license/CryptoIM/badge.png
    :target: https://pypi.python.org/pypi/CryptoIM/
    :alt: License

A secure* instant messenger written in Python out of sheer fun.

\* not really secure (at least not yet)

Info
====

CryptoIM uses `semantic versioning <http://semver.org/>`_ and branching model similar to `this <http://nvie.com/posts/a-successful-git-branching-model/>`_.

Building
========

1. **Build**: ``python setup.py build`` and ``sudo python setup.py install``

2. To **run**: ``python main.py``

3. To run **unit tests**: ``python setup.py nosetests``

4. To **clean**, run: ``python setup.py clean --all``

Building on Linux
=================

* Make sure to **install** these packages using your package manager: ``python`` and ``python-setuptools``

* Follow steps 1. and 2. from **Building**

Building on Windows
===================

* **Install** `Python <http://www.python.org/download/releases/3.3.3/#download>`_ and `Setuptools <https://pypi.python.org/pypi/setuptools#windows>`_.

* Follow steps 1. and 2. from **Building**

Contributing
============

**Everyone** is encouraged to help improve this project.

Here are some ways *you* can contribute:

* by using alpha, beta, and prerelease versions
* by reporting bugs
* by suggesting new features
* by translating to a new language
* by writing or editing documentation
* by writing specifications
* by writing code (**no patch is too small**: fix typos, add comments, clean up inconsistent whitespace)
* by refactoring code
* by closing `issues <https://github.com/oskopek/CryptoIM/issues>`_
* by reviewing patches

Submitting an Issue
===================

We use the `GitHub issue tracker <https://github.com/oskopek/CryptoIM/issues>`_ to track bugs and features. Before
submitting a bug report or feature request, check to make sure it hasn't
already been submitted. When submitting a bug report, please include a `Gist <https://gist.github.com/>`_
that includes a stack trace and any details that may be necessary to reproduce
the bug, including your Java version and operating system.

Submitting a Pull Request
=========================

1. `Fork the repository <http://help.github.com/fork-a-repo/>`_.
2. `Create a topic branch <http://learn.github.com/p/branching.html>`_.
3. Implement your feature or bug fix.
4. Run ``python setup.py nosetests``. If the tests fail, return to step 3.
5. If applicable, add tests for your feature or bug fix.
6. Add, commit, and push your changes.
7. `Submit a pull request <http://help.github.com/send-pull-requests/>`_.
