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

Uploaded CPython 3.6m

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.4m

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

Uploaded CPython 2.7mu

File details

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

File metadata

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

File hashes

Hashes for crush-1.0.30.tar.gz
Algorithm Hash digest
SHA256 68ed960cca908eb5f7cf350a3cbacfafe0e3d8bc1e57e385ebc00ee71f41464a
MD5 cfaf5173b18aecae491425a175e714cc
BLAKE2b-256 ec8066d31706197911d3c518e3d014cd0972aac5de1232e3fffe0f89ab647f14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.30-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d89f2a9a7e73dd05b8f21c63d686326370340141b7e6361e495f0db69d89410a
MD5 a1fdc828a362df8d30de1d4944b6fd0c
BLAKE2b-256 9dab0e83e02b47c3d212fc7c6b97ba7f724109e038a3eb7986d1c74c8ffdc186

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.30-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 99b72bb58d2142fc597551ee8e34511dbe99b348a3b8726dcef37320d8f7e3e9
MD5 688ab4909b4cb9a97b32f8f53fe36734
BLAKE2b-256 511475a151949688b50f19c1a89000c461b55f13d4eadb331c94f8164b708fc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.30-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 80726e9e398df6859b0497ab6b7ef4d387fc96a743e4cd6553930e32cde054bb
MD5 71451d21c56ef7a910ee40e17e0757e0
BLAKE2b-256 e2291001d14c347ea499b3ec798da74582b2739326e400ce58318f8c4ccd2b74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.30-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1e6336c02235e79f4dbc4969e4798873f36d4cb797fb67e70827b3fdceb45532
MD5 841be80512a82934054bbf0301723d41
BLAKE2b-256 616fac17e7413e3e0b26d51f1192b249ece14e8f4a35bd158cd5401169e5390b

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