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

Uploaded CPython 3.6m

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.4m

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

Uploaded CPython 2.7mu

File details

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

File metadata

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

File hashes

Hashes for crush-1.0.28.tar.gz
Algorithm Hash digest
SHA256 e60c88b207c530e32e49a6c76f8a7cd034040c55d4dae63f9acd237c85c59234
MD5 f2b35c17eb7a59614b1d9624dba22fec
BLAKE2b-256 5d43389d6a6c7fae18db815c5bf6d642d908dec866cc3c20f0ec9af7eb553960

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.28-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 feac06191c5d93e5b1af4c6e508ba67bd1e21e4dd93af2f7097d9057528442ca
MD5 32fd382854f562f90f13d2bdd28e66fb
BLAKE2b-256 c4a1a02c3b49f1324cc3c60519773ff1fc507f708ff4a878e8c1d3e673864ae1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.28-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c807b4047ba3d76b6539f9bc17bc5ae9e5e21c1b0a65a35829579151bdd8ce4d
MD5 fb5a6d1acd645ceac348cb749c761966
BLAKE2b-256 7f45ccdc5ee8bf99d8a6ab1fb231b7db6f2b3f4a38fcd9f03533a2b7d611b986

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.28-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f6b1b2486a4645b899b6818ced00afdcc6e120c20d7af3dd99354b59c7cc8bc3
MD5 d47a290eca896aff6145f0f162d97278
BLAKE2b-256 8b9098b10442074d3bb59b16437b8b63f571e1f06db2de8f92c0e96385f07809

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.28-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a60f0d4af1a1db1d17d58588c7722bbaddc5c320e88689d154f7d085a9dca8b7
MD5 69d66d47092722d89d83621d0561bf1a
BLAKE2b-256 179c8780976d18e61aba1b70835e44aab33be6ee469b1e6a2e83f4cc06ae9c7c

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