Release Checklist - darkopevec/kivy GitHub Wiki
Before doing any tagging, a pre-packaging is required. Ie, do the packaging at least once, and test them, before tagging the branch.
Tag
git clean -dxf
git reset --hard
- Edit
kivy/__init__.py
, remove the-dev
part in__version__
- Commit with `git commit -am 'bump to $VERSION'
- Tag the release:
git tag $VERSION
- Edit
kivy/__init__.py
, and edit__version__ = "$NEXTVERSION-dev"
- Commit with
git commit -am 'bump to $NEXTVERSION-dev
- Push everything:
git push --tags origin master
Packaging
Linux (source package)
- Create a source package:
python setup.py sdist
- Upload to Pypi (ONLY AFTER TAGGING):
python setup.py sdist upload
- Edit the Pypi description for the latest uploaded package, and remove the website link. If you don't, easy_install might not find the Kivy package for the right platform.
Windows
- Dowload the
portable-deps-win32.zip
- Start a
kivy.bat
shell for Python 2.7 - Update dependencies: cython, plyer, kivy-garden, docutils, pygments, requests
- Go into
kivy
git reset --hard
git clean -dxf
git fetch
git checkout $VERSION
python setup.py build_portable --deps-url file:\\\c:\Users\tito\Desktop\portable-deps-win32.zip
- Copy the generated package
Kivy-VERSION-py2.7-win32.zip
to the Google drive - Update dependencies: cython, plyer, kivy-garden, docutils, pygments, requests
- Start a
kivy.bat
shell for Python 3.3 - Go into
kivy
git reset --hard
git clean -dxf
git fetch
git checkout $VERSION
python setup.py build_portable --deps-url file:\\\c:\Users\tito\Desktop\portable-deps-win32.zip
- Copy the generated package
Kivy-VERSION-py3.3-win32.zip
to the Google drive
Android examples
Pictures / Touchtracer
- Get a fresh python-for-android, old_toolchain branch
./distribute.sh -m "kivy==1.X.X"
cd dist/default
./build.py --package org.kivy.touchtracer --name "Kivy Touchtracer" --version 1.9.1.0 --private ~/code/kivy/examples/demo/touchtracer/ --orientation sensor --window --sdk 19 --minsdk 8 release
./build.py --package org.kivy.pictures --name "Kivy Pictures" --version 1.9.1.0 --private ~/code/kivy/examples/demo/pictures --orientation sensor --window --sdk 19 --minsdk 8 release
- Sign the
bin/KivyTouchtracer-1.9.1.0-release.apk
(tito only:marketrelease bin/KivyTouchracer-1.9.1.0
) - Sign the
bin/KivyPictures-1.9.1.0-release.apk
(tito only:marketrelease bin/KivyPictures-1.9.1.0
)
Showcase
- Get a fresh python-for-android, old_toolchain branch
./distribute.sh -m "kivy==1.X.X pygments docutils"
cd dist/default
./build.py --package org.kivy.showcase --name "Kivy Showcase" --version 1.9.1.0 --private ~/code/kivy/examples/demo/showcase/ --orientation sensor --window --sdk 19 --minsdk 8 release
- Sign the
bin/KivyShowcase-1.9.1.0-release.apk
(tito only:marketrelease bin/KivyShowcase-1.9.1.0
)
Launcher
- Get a fresh python-for-android
./distribute.sh -m "sqlite3 openssl pyopenssl lxml audiostream cymunk ffmpeg pil pyjnius twisted kivy==1.9.1 plyer docutils pygments numpy"
cd dist/default
- Create a
kivylauncher-manifestextra.xml
containing:
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-feature android:name="android.hardware.location" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps" android:required="false"/>
<uses-feature android:name="android.hardware.location.network" android:required="false"/>
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
<uses-feature android:name="android.hardware.screen.landscape" android:required="false"/>
./build.py --package org.kivy.pygame --name "Kivy Launcher" --version 1.9.1.1 --launcher --icon templates/launcher-icon.png --presplash templates/launcher-presplash.jpg --sdk 19 --minsdk 14 --permission INTERNET --permission BLUETOOTH --permission ACCESS_COARSE_LOCATION --permission ACCESS_FINE_LOCATION --permission RECORD_AUDIO --permission VIBRATE --manifest-extra kivylauncher-manifestextra.xml release
- Sign the
bin/KivyLauncher-1.9.1.1-release.apk
(tito only:marketrelease bin/KivyLauncher-1.9.1.0
)
Syncing
After everything is loaded on gdrive, run the kivy-sync
command on the server to sync gdrive with the server.