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 http://libcrush.org/main/python-crush.git
    cd python-crush
  • 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

  • git checkout master ; git pull

  • 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.32.tar.gz (346.5 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.32-cp36-cp36m-manylinux1_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.6m

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.4m

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

Uploaded CPython 2.7mu

File details

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

File metadata

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

File hashes

Hashes for crush-1.0.32.tar.gz
Algorithm Hash digest
SHA256 57f708a03a514dff990d5a0ccbf0700bf2fb8a56b9c9e54abb2fee311d2760b9
MD5 c4fea6a9582c4dccc1dc67a6dcbbd7c9
BLAKE2b-256 3b59527ebee9e83f989900e02370510408425766147e408d54876cd5639edd64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.32-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 db00931fc2d3b7078727f37feef1b5c87298dd305a422a482ed50ae38f03d880
MD5 e3ac3f8cf285cc6a99bd02c120e349b8
BLAKE2b-256 f397371c584aeabb8d4f84797db41928383749ee23f91453704b04256950aef2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.32-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4ed1638f698d9ae749315467d791603800890f2373f0f36c09ee34d794aea3f6
MD5 fcf4c13650370685050babe2d27160ec
BLAKE2b-256 05aa2aca15631eb0a4969696c6d5abdb93a9bf7cb08cff5738854027a4b0cc25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.32-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e14476e0e9a321a5292f6d4fa560a0eb34e158f9c6915a7c21898d01885079b2
MD5 c3d0ba4e4c599eb64350fc34571b95ab
BLAKE2b-256 190d268db2bde09a2ce75033c7b3c5b3d741ccc3972648d4a0830908f9380b81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.32-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c25db8df97412fcdcabce7846639352bbcfeae7780f9561afbff441290713abe
MD5 d3fde19f461701f0f18599ca3691075c
BLAKE2b-256 4f86d18606bc2abc90edd7ebe038dc7bf5f506dfc5a6c5962a6ce3605d15f4b4

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