crush is a library to control placement in a hierarchy
When using pip versions lower than 8.1 or other operating systems, compilation is necessary and packages must be installed first.
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
tox
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
remove pkg-resources==0.0.0 https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
Prepare a new version
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