The development of python-for-android is managed by the Kivy team via Github.
Issues and pull requests are welcome via the integrated issue tracker.
Read on for more information about how we manage development and releases, but don't worry about the details! Pull requests are welcome and we'll deal with the rest.
python-for-android is developed using the following model:
- The
masterbranch always represents the latest stable release. - The
developbranch is the most up to date with new contributions. - Releases happen periodically, and consist of merging the current
developbranch intomaster.
For reference, this is based on a Git flow model, although we don't follow this religiously.
python-for-android releases currently use calendar versioning. Release numbers are of the form YYYY.MM.DD. We aim to create a new release every four weeks, but more frequent releases are also possible.
We use calendar versioning because in practice, changes in python-for-android are often driven by updates or adjustments in the Android build tools. It's usually best for users to be working from the latest release. We try to maintain backwards compatibility even while internals are changing.
New releases follow these steps:
- Create a new branch
release-YYYY.MM.DDbased on thedevelopbranch. -git checkout -b release-YYYY.MM.DD develop - Create a Github pull request to merge
release-YYYY.MM.DDintomaster. - Complete all steps in the release checklist, and document this in the pull request (copy the checklist into the PR text)
At this point, wait for reviewer approval and conclude any discussion that arises. To complete the release:
- Merge the release branch to the
masterbranch. - Also merge the release branch to the
developbranch. - Tag the release commit in
master, with tagvYYYY.MM.DD. Include a short summary of the changes. - Create the release distributions:
python3 setup.py sdist bdist_wheel - Upload the release to pypi:
python3 -m twine upload. - Add to the Github release page (see e.g. this example): - The python-for-android README summary - A short list of major changes in this release, if any - A changelog summarising merge commits since the last release - The release sdist and wheel(s)
[ ] Check that the [build is passing](https://travis-ci.org/kivy/python-for-android)
[ ] Run the tests locally via tox: this performs some long-running tests that are skipped on Travis.
[ ] Build and run the [on_device_unit_tests](https://github.com/kivy/python-for-android/tree/master/testapps/on_device_unit_tests) app using buildozer. Check that they all pass.
[ ] Build and run the following [testapps](https://github.com/kivy/python-for-android/tree/master/testapps) for arch armeabi-v7a and arm64-v8a: - python3 setup_testapp_python3_sqlite_openssl.py apk
- [ ] armeabi-v7a
- [ ] arm64-v8a
- python3 setup_testapp_python2.py apk - [ ] armeabi-v7a - [ ] arm64-v8a
[ ] Check that the version number is correct