Metadata-Version: 2.0
Name: crush
Version: 1.0.18
Summary: library to control placement in a hierarchy
Home-page: http://libcrush.org/main/python-crush
Author: Loic Dachary
Author-email: loic@dachary.org
License: UNKNOWN
Platform: UNKNOWN
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX :: Linux
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Utilities
Requires-Dist: Sphinx
Requires-Dist: collective.checkdocs
Requires-Dist: coverage
Requires-Dist: d2to1
Requires-Dist: flake8
Requires-Dist: pandas
Requires-Dist: pbr
Requires-Dist: pytest
Requires-Dist: pytest-capturelog
Requires-Dist: simplejson
Requires-Dist: six
Requires-Dist: tox
Requires-Dist: twine

crush
=====

crush is a library to control placement in a hierarchy

- Home page : http://http://libcrush.org/main/python-crush
- Documentation : http://crush.readthedocs.org/
- PyPi : https://pypi.python.org/pypi/crush

GNU/Linux Installation
======================

* pip install crush

Other Installation
==================

When using pip versions lower than 8.1 or other operating systems,
compilation is necessary and packages must be installed first.

* apt-get install -y gcc g++ python-pip python-all-dev libpython3-all-dev cmake libboost-all-dev libatomic-ops-dev
* dnf / yum / zypper install -y gcc gcc-c++ python-pip python-devel python3-devel cmake boost-devel libatomic_ops-devel
* pip install crush

Hacking
=======

* Get the code:: 

   git clone --recursive http://libcrush.org/main/python-crush.git

* Set up the development environment::

   deactivate || true ; source bootstrap

* Run the tests::

   deactivate || true ; bash run-tests.sh

* Sync the libcrush submodule::

   git submodule update --remote libcrush

* Run a single test::

   tox -e py27 -- -s -k test_one tests/test_crush.py

* Check the documentation::

   python setup.py build_sphinx
   firefox build/html/index.html

Release management
==================

* Prepare a new version

 - version=1.0.0 ; perl -pi -e "s/^version.*/version = $version/" setup.cfg ; for i in 1 2 ; do python setup.py sdist ; amend=$(git log -1 --oneline | grep --quiet "version $version" && echo --amend) ; git commit $amend -m "version $version" ChangeLog setup.cfg ; git tag -a -f -m "version $version" $version ; done

* Publish a new version

 - docker build --tag manylinux manylinux
 - docker run --rm -v $(pwd):/io manylinux /io/manylinux/build-wheels.sh
   OR docker run --rm -v $(pwd):/io manylinux env PYBINS=/opt/python/cp27-cp27mu/bin /io/manylinux/build-wheels.sh
 - sudo chown -R $(id -u) wheelhouse/
 - twine upload --sign wheelhouse/*crush*

 - rm -fr dist
 - python setup.py sdist
 - twine upload --sign dist/\*.tar.gz

 - git push ; git push --tags

* pypi maintenance

 - trim old versions at https://pypi.python.org/pypi/crush



