library to control placement in a hierarchy
Project description
crush
crush is a library to control placement in a hierarchy
Home page : http://http://libcrush.org/main/python-crush
Documentation : http://crush.readthedocs.org/
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
trim old versions at https://pypi.python.org/pypi/crush
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for crush-1.0.28-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | feac06191c5d93e5b1af4c6e508ba67bd1e21e4dd93af2f7097d9057528442ca |
|
MD5 | 32fd382854f562f90f13d2bdd28e66fb |
|
BLAKE2b-256 | c4a1a02c3b49f1324cc3c60519773ff1fc507f708ff4a878e8c1d3e673864ae1 |
Hashes for crush-1.0.28-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c807b4047ba3d76b6539f9bc17bc5ae9e5e21c1b0a65a35829579151bdd8ce4d |
|
MD5 | fb5a6d1acd645ceac348cb749c761966 |
|
BLAKE2b-256 | 7f45ccdc5ee8bf99d8a6ab1fb231b7db6f2b3f4a38fcd9f03533a2b7d611b986 |
Hashes for crush-1.0.28-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6b1b2486a4645b899b6818ced00afdcc6e120c20d7af3dd99354b59c7cc8bc3 |
|
MD5 | d47a290eca896aff6145f0f162d97278 |
|
BLAKE2b-256 | 8b9098b10442074d3bb59b16437b8b63f571e1f06db2de8f92c0e96385f07809 |
Hashes for crush-1.0.28-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a60f0d4af1a1db1d17d58588c7722bbaddc5c320e88689d154f7d085a9dca8b7 |
|
MD5 | 69d66d47092722d89d83621d0561bf1a |
|
BLAKE2b-256 | 179c8780976d18e61aba1b70835e44aab33be6ee469b1e6a2e83f4cc06ae9c7c |