Skip to content

Commit 937d4b7

Browse files
committed
Documented the development and release models
1 parent 0482be4 commit 937d4b7

File tree

2 files changed

+75
-8
lines changed

2 files changed

+75
-8
lines changed

README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ python-for-android
22
==================
33

44
[![Build Status](https://travis-ci.org/kivy/python-for-android.svg?branch=master)](https://travis-ci.org/kivy/python-for-android)
5-
[![Backers on Open Collective](https://opencollective.com/kivy/backers/badge.svg)](#backers)
6-
[![Sponsors on Open Collective](https://opencollective.com/kivy/sponsors/badge.svg)](#sponsors)
5+
[![Backers on Open Collective](https://opencollective.com/kivy/backers/badge.svg)](#backers)
6+
[![Sponsors on Open Collective](https://opencollective.com/kivy/sponsors/badge.svg)](#sponsors)
77

88
python-for-android is a packager for Python apps on Android. You can
99
create your own Python distribution including the modules and
@@ -68,9 +68,16 @@ We also have [#support Discord channel](https://chat.kivy.org/).
6868

6969
## Contributing
7070

71-
We love pull requests and discussing novel ideas. Check out our
72-
[contribution guide](http://kivy.org/docs/contribute.html) and feel
73-
free to improve python-for-android.
71+
We love pull requests and discussing novel ideas. Check out the Kivy
72+
project [contribution guide](http://kivy.org/docs/contribute.html) and
73+
feel free to improve python-for-android.
74+
75+
python-for-android uses a [Git
76+
flow](https://nvie.com/posts/a-successful-git-branching-model/)
77+
development model. See [our
78+
documentation](https://python-for-android.readthedocs.io/en/latest/contribute/)
79+
for more details, but no need to worry about these. You just need to
80+
make a pull request as normal, we'll take care of the rest.
7481

7582
The following mailing list and IRC channel are used exclusively for
7683
discussions about developing the Kivy framework and its sister projects:
@@ -138,4 +145,3 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
138145
<a href="https://opencollective.com/kivy/sponsor/7/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/7/avatar.svg"></a>
139146
<a href="https://opencollective.com/kivy/sponsor/8/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/8/avatar.svg"></a>
140147
<a href="https://opencollective.com/kivy/sponsor/9/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/9/avatar.svg"></a>
141-

doc/source/contribute.rst

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,69 @@
1-
Contributing
2-
============
1+
Development and Contributing
2+
============================
33

44
The development of python-for-android is managed by the Kivy team `via
55
Github <https://github.com/kivy/python-for-android>`_.
66

77
Issues and pull requests are welcome via the integrated `issue tracker
88
<https://github.com/kivy/python-for-android/issues>`_.
9+
10+
Read on for more information about how we manage development and
11+
releases, but don't worry about the details! Pull requests are welcome
12+
and we'll deal with the rest.
13+
14+
Development model
15+
-----------------
16+
17+
python-for-android is developed using a `Git flow model
18+
<https://nvie.com/posts/a-successful-git-branching-model/>`__. This means that:
19+
20+
- The ``master`` branch always represents the latest stable release.
21+
- The ``develop`` branch is the most up to date with new contributions.
22+
23+
Versioning
24+
----------
25+
26+
python-for-android releases currently use `calendar versioning
27+
<https://calver.org/>`__. Release numbers are of the form
28+
YYYY.MM.DD. We aim to create a new release every four weeks, but more
29+
frequent releases are also possible.
30+
31+
We use calendar versioning because in practice, changes in
32+
python-for-android are often driven by updates or adjustments in the
33+
Android build tools. It's usually best for users to be working from
34+
the latest release. We try to maintain backwards compatibility even
35+
while internals are changing.
36+
37+
38+
Creating a new release
39+
----------------------
40+
41+
New releases follow these steps:
42+
43+
- Create a new branch ``release/YYYY.MM.DD`` based on the ``develop`` branch.
44+
- ``git checkout -b release/YYYY.MM.DD develop``
45+
- Create a Github pull request to merge ``release/YYYY.MM.DD`` into ``master``.
46+
- Complete all steps in the `release checklist <release_checklist_>`_,
47+
and document this in the pull request (copy the checklist into the PR text)
48+
49+
At this point, wait for reviewer approval and conclude any discussion that arises. To complete the release:
50+
51+
- Merge the release branch to the ``master`` branch.
52+
- Also merge the release branch to the ``develop`` branch.
53+
- Tag the release commit in ``master``. Include a short summary of the changes.
54+
- Create the release distributions: ``python3 setup.py sdist``
55+
- Upload the release to pypi: ``python3 -m twine upload``.
56+
- Upload the release ``.tar.gz`` to the Github tag.
57+
58+
.. _release_checklist:
59+
60+
Release checklist
61+
~~~~~~~~~~~~~~~~~
62+
63+
- [ ] Check that the [build is passing](https://travis-ci.org/kivy/python-for-android)
64+
- [ ] Run the tests locally via `tox`: this performs some long-running tests that are skipped on Travis.
65+
- [ ] 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.
66+
- [ ] Build and run the following [testapps](https://github.com/kivy/python-for-android/tree/master/testapps) for arch `armeabi-v7a` and `arm64-v8a`:
67+
- [ ] `python3 setup_testapp_python3_sqlite_openssl.py apk`
68+
- [ ] `python3 setup_testapp_python2.py apk`
69+
- [ ] Check that the version number is correct

0 commit comments

Comments
 (0)