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.35.tar.gz (352.1 kB view details)

Uploaded Source

Built Distributions

crush-1.0.35-cp36-cp36m-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.6m

crush-1.0.35-cp35-cp35m-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.5m

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

Uploaded CPython 3.4m

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

Uploaded CPython 2.7mu

File details

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

File metadata

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

File hashes

Hashes for crush-1.0.35.tar.gz
Algorithm Hash digest
SHA256 a0cfb6166965a9cf19d479a14a2909e02af67775772773eb91ab3089b8e2e759
MD5 342c0e7c49ecd0fbc3c9a40d033e2558
BLAKE2b-256 b87b2fd699893193eec99cbcf12e16c6199c6f116e71cea17d1c83f3d715757f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.35-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d14f2751cdb7003183d99599f06aaf7c3d235e55e031288da8a6f777aa615d31
MD5 2ef8179feae7b9dc0b739a8c827b5bc3
BLAKE2b-256 89db7d04576ec1f49468b0852435d9fc77b6892b20503efdd6576c41e45c7b5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.35-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4e45826c1ca092ed24e77be6450305ff25e8cdc9da8f389691905677e1c20a45
MD5 ec573e3edb065bd1d13bf22d3cf1a386
BLAKE2b-256 7dc05937d8905c1a87b28352bcf64ccd12199993f53a6938f1c6de75e6699453

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.35-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 857f3d981f4bc3f27ddfbd2dbfdda45c5beef80447516d577db7b8fd14afd1b1
MD5 f3483da085381155db380768c7a4006a
BLAKE2b-256 7daba7df0516e0a80050d94e69748e766b541a59dfdd6e7b4a62ca62cc145203

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crush-1.0.35-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 51ad44682fad5504982038ad5c2e1335963d1c3e00adf2a998cc851d6d08ace1
MD5 708851e0a44b5df3914ffdc7d4a30747
BLAKE2b-256 5958248740d1e1fa55a3685d9f2824face07d72858c3c89be75278d4a0cbf0c3

See more details on using hashes here.

Supported by

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