Skip to main content

library to control placement in a hierarchy

Project description

crush

crush is a library to control placement in a hierarchy

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 make 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
  • Update requirements

    rm -fr virtualenv virtualenv virtualenv source virtualenv/bin/activate # update some module in requirements.txt tox # if that works pip install -r requirements.txt pip freeze -r requirements.txt > new-requirements.txt .tox/py3/bin/pip freeze -r requirements-dev.txt > new-requirements-dev.txt diff <(.tox/py27/bin/pip freeze -r requirements-dev.txt) new-requirements-dev.txt # all lines after the first “were added by pip freeze” are indirect dependencies remove pkg-resources==0.0.0 https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crush-1.0.22.tar.gz (218.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

crush-1.0.22-cp36-cp36m-manylinux1_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.6m

crush-1.0.22-cp35-cp35m-manylinux1_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.5m

crush-1.0.22-cp34-cp34m-manylinux1_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.4m

crush-1.0.22-cp27-cp27mu-manylinux1_x86_64.whl (2.5 MB view details)

Uploaded CPython 2.7mu

File details

Details for the file crush-1.0.22.tar.gz.

File metadata

  • Download URL: crush-1.0.22.tar.gz
  • Upload date:
  • Size: 218.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for crush-1.0.22.tar.gz
Algorithm Hash digest
SHA256 f3b165b095bfcb4b17956ad477dfcff34424536033abe54625830ae93adcf852
MD5 e152e1784d819234ae332f6d89698c3c
BLAKE2b-256 42b61ca38f767088659acf13399790683ca683759f30ee167eca11eacc7d3756

See more details on using hashes here.

File details

Details for the file crush-1.0.22-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for crush-1.0.22-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 448c76bf92d0aea85c7e29538b30d681d9be58cbcae636e43add26742cbca630
MD5 ce1fed694e72ebd166beb57259b115b8
BLAKE2b-256 c1b4df32535462808caef66ebb62344f99a6bf8717566db5d9ac7f456c55acea

See more details on using hashes here.

File details

Details for the file crush-1.0.22-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for crush-1.0.22-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 71f1abb819d11020ad4b9b047e73b1205ebeb46318f085728fbe7b26e9a7a69f
MD5 f7556858748e7507e8ccbb0040f2dc39
BLAKE2b-256 f199d0637d19195c2a970757f50b5d1d7398da858cace5ee0cd6092366598edd

See more details on using hashes here.

File details

Details for the file crush-1.0.22-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for crush-1.0.22-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 509eb831318e236d9cda6b47e9f5ea020a619e9f547394a7ce4b3b7f2e3d064f
MD5 7a915577d783e2ec90abd82c1e067480
BLAKE2b-256 4cb2990863847420dfbba5d5b3d6b5bf92e9830d3af6be93d749236566acab45

See more details on using hashes here.

File details

Details for the file crush-1.0.22-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for crush-1.0.22-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d2dc5824680fce400c01f82c8f8c1458b77f7355a573caeacaf561f6da6e2a19
MD5 e18c20d8213686dd4c09dcc74fedbdca
BLAKE2b-256 a26dd02a84c1c353ce9cfa66706041e7de002fd58ee4723e3329a60f924ff7b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page