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

  1. git clean -dxf
  2. git reset --hard
  3. Edit kivy/__init__.py, remove the -dev part in __version__
  4. Commit with `git commit -am 'bump to $VERSION'
  5. Tag the release: git tag $VERSION
  6. Edit kivy/__init__.py, and edit __version__ = "$NEXTVERSION-dev"
  7. Commit with git commit -am 'bump to $NEXTVERSION-dev
  8. Push everything: git push --tags origin master

Packaging

Linux (source package)

  1. Create a source package: python setup.py sdist
  2. Upload to Pypi (ONLY AFTER TAGGING): python setup.py sdist upload
  3. 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

  1. Dowload the portable-deps-win32.zip
  2. Start a kivy.bat shell for Python 2.7
  3. Update dependencies: cython, plyer, kivy-garden, docutils, pygments, requests
  4. Go into kivy
  5. git reset --hard
  6. git clean -dxf
  7. git fetch
  8. git checkout $VERSION
  9. python setup.py build_portable --deps-url file:\\\c:\Users\tito\Desktop\portable-deps-win32.zip
  10. Copy the generated package Kivy-VERSION-py2.7-win32.zip to the Google drive
  11. Update dependencies: cython, plyer, kivy-garden, docutils, pygments, requests
  12. Start a kivy.bat shell for Python 3.3
  13. Go into kivy
  14. git reset --hard
  15. git clean -dxf
  16. git fetch
  17. git checkout $VERSION
  18. python setup.py build_portable --deps-url file:\\\c:\Users\tito\Desktop\portable-deps-win32.zip
  19. Copy the generated package Kivy-VERSION-py3.3-win32.zip to the Google drive

Android examples

Pictures / Touchtracer

  1. Get a fresh python-for-android, old_toolchain branch
  2. ./distribute.sh -m "kivy==1.X.X"
  3. cd dist/default
  4. ./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
  5. ./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
  6. Sign the bin/KivyTouchtracer-1.9.1.0-release.apk (tito only: marketrelease bin/KivyTouchracer-1.9.1.0)
  7. Sign the bin/KivyPictures-1.9.1.0-release.apk (tito only: marketrelease bin/KivyPictures-1.9.1.0)

Showcase

  1. Get a fresh python-for-android, old_toolchain branch
  2. ./distribute.sh -m "kivy==1.X.X pygments docutils"
  3. cd dist/default
  4. ./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
  5. Sign the bin/KivyShowcase-1.9.1.0-release.apk (tito only: marketrelease bin/KivyShowcase-1.9.1.0)

Launcher

  1. Get a fresh python-for-android
  2. ./distribute.sh -m "sqlite3 openssl pyopenssl lxml audiostream cymunk ffmpeg pil pyjnius twisted kivy==1.9.1 plyer docutils pygments numpy"
  3. cd dist/default
  4. 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"/>
  1. ./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
  2. 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.