This document guides a contributor through creating a release of BeakerX.
Review README.md
and make sure that all dependencies are installed.
Update the version in beakerx/beakerx/_version.py
and
js/notebook/package.json
and js/lab/package.json
. Commit
the change and push the git tag:
git commit -a -m 'version $version'
git push
git tag $version
git push origin $version
Make a source archive of the package:
git clean -xfd
cd beakerx
python setup.py sdist
Make a test installation with pip into a fresh environment, if it works then continue with:
pip install twine
twine upload dist/*
# get the sha256 hash for conda-forge install
shasum -a 256 dist/*.tar.gz
Update the feedstock repo:
git clone https://github.com/twosigma/beakerx-feedstock.git
cd beakerx-feedstock
git remote add upstream https://github.com/conda-forge/beakerx-feedstock.git
git fetch upstream
git reset --hard upstream/master
git push origin master --force
- Update the
version
andsha256
variable values inrecipe/meta.yaml
. Return build number to 1.
Then test it locally:
# outside of beakerx conda environment
conda install conda-build
conda upgrade conda
conda upgrade conda-build
# inside of beakerx env and beakerx project root
conda build --python 3.5 PATH_TO_RECIPE
# conda-build will output something like `anaconda upload PATH_TO_beakerx-VERSION-py35HASH.tar.bz2`
conda install --use-local beakerx
- Then commit changes and submit a PR upstream to https://github.com/conda-forge/beakerx-feedstock for the new version.
- Have the CI configs automatically rerendered.
- After CI passes, merge the PR.
To update the embedded version of our widget library, and our Lab extension:
(cd js/notebook; npm publish)
(cd js/lab; npm publish)
docker build -t beakerx-base -f docker/base/Dockerfile .
docker build -t beakerx -f docker/Dockerfile .
docker run -p 8888:8888 beakerx
Test it, then (substituting the version):
docker tag beakerx beakerx/beakerx:$version
docker push beakerx/beakerx:$version
Do the same without a version to set the release to "latest":
docker tag beakerx beakerx/beakerx
docker push beakerx/beakerx
Open the release on github at https://github.com/twosigma/beakerx/releases/tag/$version
And write the release notes.
Go to https://jitpack.io/#twosigma/beakerx and click "Get it".
Wait for the conda packages to become available. Then update the version of the mybinder link in the README, and push to master. If the conda package isn't ready then mybinder will cache the old version forever.