Skip to content

Release 2020.03.30 #2111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 93 commits into from
Apr 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
87d099f
[recipes] Fix compilation for regex recipe
opacam Aug 15, 2019
2005508
[recipes] Update regex's recipe
opacam Aug 15, 2019
61ee55f
Merge pull request #1958 from opacam/hotfix-regex
opacam Aug 16, 2019
cb6035a
put the sdk manager command in a code block (#1956)
tshirtman Aug 17, 2019
73ff6c8
Merge pull request #1959 from kivy/release-2019.08.09
inclement Aug 19, 2019
982469a
Updated version number for develop branch following 2019.08.09 releas…
inclement Aug 19, 2019
eb84372
Fix build for case-insensitive FS and add CI test for OSX (#1951)
opacam Aug 23, 2019
c3145cf
customizability (#1869)
zworkb Aug 23, 2019
3887d2b
Initial migration to NDK r19 (Part I - The core) (#1722)
opacam Aug 24, 2019
9801865
[LIBS - PART I] Initial refactor of library recipes (#1944)
opacam Aug 25, 2019
be8566d
[NDK19] Remove `--sysroot` from LDFLAGS for cffi and pymunk (#1965)
opacam Aug 25, 2019
f6df2bd
Added libffi headers troubleshooting note to doc (#1972)
inclement Aug 26, 2019
7ec64aa
[LIBS - PART II] Part II of NDK r19 migration - Initial STL lib migra…
opacam Aug 29, 2019
129601c
[WIP][LIBS - PART III] Rework of pyleveldb, leveldb and snappy (#1966)
opacam Aug 29, 2019
9e39fbe
[WIP][LIBS - PART IV] Rework of shapely and libgeos (#1967)
opacam Aug 29, 2019
dfad9c0
[recipe-stl] Make libzmq a library recipe (#1968)
opacam Aug 29, 2019
9e93257
[recipe-stl] Rework of libtorrent and boost (#1971)
opacam Aug 29, 2019
e76aad9
Also copy the service/main.py when building with setup.py (#1936)
Aug 29, 2019
e4ed946
[recipe-stl] Rework of protobuf_cpp recipe (#1969)
opacam Aug 30, 2019
57be583
[CI] Fix CI's test for `arm64-v8a` (#1977)
opacam Sep 1, 2019
7f18efa
Updated README.md to clarify NDK versions (#1981)
Zen-CODE Sep 12, 2019
be7abe9
A bunch of tests for library recipes (#1982)
opacam Sep 14, 2019
2f98b81
Recipes tests enhancements (#1984)
opacam Sep 15, 2019
9f6d6fc
Fixes test_virtualenv and test_venv failing, closes #1994 (#1995)
AndreMiras Sep 29, 2019
01c0607
Made p4a use per-arch dist build dirs (#1986)
inclement Sep 29, 2019
a095a55
Fixes libiconv & libzbar configure host
AndreMiras Sep 29, 2019
e40260e
Updates Java version troubleshooting (#1991)
AndreMiras Sep 30, 2019
ac99e29
Merge pull request #1993 from AndreMiras/feature/fixes_libiconv_libzb…
AndreMiras Oct 5, 2019
cb403c9
Made on-device unit tests app use the develop branch by default (#1985)
inclement Oct 6, 2019
1ad1539
:bar_chart: Fix error on py2 when `import numpy`
opacam Oct 14, 2019
f8472bd
Merge pull request #2003 from opacam/hotfix-py2-import-numpy
AndreMiras Oct 15, 2019
9666980
twisted: updated to 19.7.0
goffi-contrib Oct 20, 2019
080ac01
Merge pull request #2006 from goffi-contrib/twisted_19.7.0_update
AndreMiras Oct 21, 2019
c7d76e4
Travis CI revamp part 1, refs #2008
AndreMiras Oct 26, 2019
1a079d6
Documentation: android hide loading screen
adityabhawsingka Oct 30, 2019
0d20e2a
Merge pull request #2011 from AndreMiras/feature/revamp_travis_file
AndreMiras Oct 31, 2019
c828b3a
Merge pull request #2014 from adityabhawsingka/patch-1
AndreMiras Oct 31, 2019
18926d8
Exposes ANDROID_SDK_HOME to rebuild_updated_recipes
AndreMiras Nov 10, 2019
6bda849
Merge pull request #2018 from AndreMiras/feature/rebuild_updated_reci…
AndreMiras Nov 10, 2019
139c778
update pyproj recipe
joergbrech Nov 9, 2019
b27ff0b
Fix rebuild updated recipes, refs #2011 (#2024)
opacam Nov 17, 2019
865de72
Merge pull request #2017 from joergbrech/fix-pyproj-url
AndreMiras Nov 17, 2019
7cdf79b
fixes libcurl with openssl
tito Oct 9, 2019
3938445
Merge pull request #2000 from kivy/fix-libcurl
tito Nov 19, 2019
e2851d9
Fixes ffmpeg build on ndk 19 (#1997)
misl6 Nov 23, 2019
11a9eb0
Introduce github-actions (push & pull_requests) (#2025)
opacam Nov 23, 2019
0c6acfc
Fix libshine and re-enable it for ffmpeg & ffpyplayer_codecs (#2027)
opacam Nov 24, 2019
8bd79b8
from kivy.base import runTouchApp for line 75
cclauss Nov 24, 2019
e57deb4
Merge pull request #2028 from cclauss/patch-1
AndreMiras Nov 25, 2019
2610330
[gh-actions] Add new testapp and upload artifacts... (#2033)
opacam Dec 5, 2019
74fb8e5
added a recipe for bcrypt library (#2035)
tomgold182 Dec 7, 2019
3a155e3
[testapp] Fix vibration for testapps (#2034)
opacam Dec 9, 2019
5304fea
update pyjnius recipe (#2036)
tshirtman Dec 15, 2019
32e3805
Updated version to 2019.10.06 (#2042)
inclement Dec 22, 2019
777f09b
Updated version after 2019.10.06 release (#2043)
inclement Dec 22, 2019
2acddd5
Added an extra-manifest-xml option to build.py (#2040)
inclement Dec 24, 2019
78a8df3
[omemo] updated to 0.11.0 + updated omemo-backend-signal to 0.2.5
goffi-contrib Jan 3, 2020
4cd3ac8
Merge pull request #2049 from goffi-contrib/omemo_recipe_update_0.11.0
AndreMiras Jan 3, 2020
d3d742e
[protobuf_cpp] fixed python binding installation
goffi-contrib Jan 3, 2020
18131b7
Merge pull request #2050 from goffi-contrib/protobuff_cpp_python_fix
AndreMiras Jan 3, 2020
f771ccb
make kivy recipe depend on certifi, for https to work (#2055)
tshirtman Jan 24, 2020
6a7e6ff
Added missing recommendations command and cleaned up code (#1975)
inclement Feb 16, 2020
8b3af95
virtualenv 20 breaks the osx build
AndreMiras Feb 16, 2020
40ed06d
Python 3.8 support on Android (#2044)
inclement Feb 16, 2020
a5658a3
Merge pull request #2063 from AndreMiras/feature/fix_osx_build
AndreMiras Feb 16, 2020
cacebb0
fixed patch's name to apply correclty
HirotsuguMINOWA Feb 18, 2020
9b608e8
Merge pull request #2064 from HirotsuguMINOWA/fix_hogehoge_issue
AndreMiras Feb 18, 2020
8740267
Fix missing renames of Bootstrap.list_bootstraps -> Bootstrap.all_boo…
touilleMan Feb 21, 2020
c0a30ea
[gh-actions] Move to actions/checkout@v2 (#2070)
opacam Feb 24, 2020
9c6d8b8
[recipes] Update Pillow to v7.0.0 (#2067)
opacam Feb 29, 2020
c1b94fd
Fix recipe `kiwisolver` (add `cppy` recipe) (#2075)
opacam Mar 2, 2020
2b5b402
Fix `matplotlib` and update to `v3.1.3` (#2076)
opacam Mar 5, 2020
1bed396
Update PythonService.java
erikhu Mar 10, 2020
4ab6216
Merge pull request #2081 from erikhu/patch-1
AndreMiras Mar 11, 2020
6b73f52
:bug: Fix Python 3 patch naming and content (#2083)
opacam Mar 11, 2020
9d5ebb6
Update `numpy` to v1.18.1 (add `cython` recipe) (#2077)
opacam Mar 14, 2020
22eb6c9
:bug: Add `-fPIC` to `CFLAGS` for Arch `x86_64` (#2085)
opacam Mar 14, 2020
56a92b1
Fixes gevent recipe on arm64-v8a arch
AndreMiras Mar 22, 2020
103e0c2
Update quickstart.rst
yvvt0379 Mar 23, 2020
28c1d97
Merge pull request #2094 from BornForFever/patch-1
AndreMiras Mar 23, 2020
21d4d35
Merge pull request #2093 from AndreMiras/feature/fix_gevent_arm64-v8a…
AndreMiras Mar 23, 2020
2461ec4
Fixes psycopg2 URL, closes #2098
AndreMiras Mar 24, 2020
31cad00
:sparkles: Compression libraries - episode I: libbz2 (#2095)
opacam Mar 24, 2020
f3748b4
:sparkles: Compression libraries - episode II: liblzma (#2096)
opacam Mar 24, 2020
1c95b40
Merge pull request #2099 from AndreMiras/feature/updates_broken_psyco…
AndreMiras Mar 24, 2020
c427344
:sparkles: Compression libraries - episode III: add support for libbz…
opacam Mar 24, 2020
4d9652a
:arrow_up: Update `pytz` to version `2019.3` (#2101)
opacam Mar 25, 2020
f91d080
:sparkles: Add `pandas` recipe (#2100)
opacam Mar 25, 2020
3a87539
:alien: Remove deprecated key `sudo` (#2102)
opacam Mar 26, 2020
d287859
Updates quickstart.rst "Installing Dependencies"
AndreMiras Mar 28, 2020
c47f697
Merge pull request #2109 from AndreMiras/feature/update_doc_install_dep
AndreMiras Mar 28, 2020
24037dc
Updated version number to 2020.03.30
inclement Mar 30, 2020
c78a90d
Merge branch 'master' into release-2020.03.30
inclement Apr 2, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# used by coveralls.io, refs:
# https://coveralls-python.readthedocs.io/en/latest/usage/tox.html#travisci
CI
TRAVIS
TRAVIS_BRANCH
TRAVIS_JOB_ID
TRAVIS_PULL_REQUEST
82 changes: 82 additions & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Unit tests & Build Testapp

on: ['push', 'pull_request']

jobs:

flake8:
name: Flake8 tests
runs-on: ubuntu-latest
steps:
- name: Checkout python-for-android
uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/[email protected]
with:
python-version: 3.7
- name: Run flake8
run: |
python -m pip install --upgrade pip
pip install tox>=2.0
tox -e pep8

test:
name: Pytest [Python ${{ matrix.python-version }} | ${{ matrix.os }}]
needs: flake8
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: [3.6, 3.7]
os: [ubuntu-latest, macOs-latest]
steps:
- name: Checkout python-for-android
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
- name: Tox tests
run: |
python -m pip install --upgrade pip
pip install tox>=2.0
make test

build:
name: Build testapp
needs: [flake8]
runs-on: ubuntu-latest
strategy:
matrix:
build-arch: ['arm64-v8a', 'armeabi-v7a']
steps:
- name: Checkout python-for-android
uses: actions/checkout@v2
- name: Pull docker image
run: |
make docker/pull
- name: Build apk for Python 3 ${{ matrix.build-arch }}
run: |
mkdir -p apks
make docker/run/make/with-artifact/testapps/python3/${{ matrix.build-arch }}
- uses: actions/upload-artifact@v1
with:
name: bdisttest_python3_sqlite_openssl_googlendk__${{ matrix.build-arch }}-debug-1.1.apk
path: apks

rebuild_updated_recipes:
name: Test updated recipes
needs: [flake8]
runs-on: ubuntu-latest
steps:
- name: Checkout python-for-android (current branch)
uses: actions/checkout@v2
- name: Checkout python-for-android (develop branch)
uses: actions/checkout@v2
with:
ref: 'develop'
- name: Pull docker image
run: |
make docker/pull
- name: Rebuild updated recipes
run: |
make docker/run/make/rebuild_updated_recipes
73 changes: 19 additions & 54 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
sudo: required

dist: xenial # needed for more recent python 3 and python3-venv

language: generic

stages:
- lint
- test
- unit tests
- build testapps

services:
- docker
Expand All @@ -18,8 +14,8 @@ before_install:

jobs:
include:
- &linting
stage: lint
- &unittests
stage: unit tests
language: python
python: 3.7
before_script:
Expand All @@ -36,66 +32,35 @@ jobs:
- pip3.7 install pyOpenSSL
- pip3.7 install coveralls
script:
# we want to fail fast on tox errors without having to `docker build` first
# ignores test_pythonpackage.py since it runs for too long
- tox -- tests/ --ignore tests/test_pythonpackage.py
# (we ignore test_pythonpackage.py since these run way too long!!
# test_pythonpackage_basic.py will still be run.)
name: "Tox Pep8"
env: TOXENV=pep8
- <<: *linting
- <<: *unittests
name: "Tox Python 2"
env: TOXENV=py27
- <<: *linting
- <<: *unittests
name: "Tox Python 3 & Coverage"
env: TOXENV=py3
after_success:
- coveralls

- &testing
stage: test
before_script:
# build docker image
- docker build --tag=p4a --file Dockerfile.py3 .
# Run a background process to make sure that travis will not kill our tests in
# case that the travis log doesn't produce any output for more than 10 minutes
- while sleep 540; do echo "==== Still running (travis, don't kill me) ===="; done &
script:
- >
docker run
-e CI
-e TRAVIS_JOB_ID
-e TRAVIS_BRANCH
-e ANDROID_SDK_HOME="/home/user/.android/android-sdk"
-e ANDROID_NDK_HOME="/home/user/.android/android-ndk"
p4a /bin/sh -c "$COMMAND"
after_script:
# kill the background process started before run docker
- kill %1
name: Python 3 arm64-v8a
# overrides requirements to skip `peewee` pure python module, see:
# https://github.com/kivy/python-for-android/issues/1263#issuecomment-390421054
env:
COMMAND='. venv/bin/activate && cd testapps/ && python setup_testapp_python3_sqlite_openssl.py apk --sdk-dir $ANDROID_SDK_HOME --ndk-dir $ANDROID_NDK_HOME --requirements libffi,sdl2,pyjnius,kivy,python3,openssl,requests,sqlite3,setuptools --arch=arm64-v8a'
- <<: *testing
- &testapps
name: Python 3 arm64-v8a (with numpy)
stage: build testapps
before_script: make docker/pull
script: make docker/run/make/testapps/python3/arm64-v8a
- <<: *testapps
name: Python 3 armeabi-v7a
os: osx
osx_image: xcode11 # since xcode1.3, python3 is the default interpreter
before_script:
# installs java 1.8, android's SDK/NDK and p4a
- make -f ci/makefiles/osx.mk
- export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
# Run a background process (like we do with linux tests)
- while sleep 540; do echo "==== Still running (travis, don't kill me) ===="; done &
script:
- >
cd testapps && python3 setup_testapp_python3_sqlite_openssl.py apk
--sdk-dir $HOME/.android/android-sdk
--ndk-dir $HOME/.android/android-ndk
--requirements libffi,sdl2,pyjnius,kivy,python3,openssl,requests,sqlite3,setuptools
--arch=armeabi-v7a
- <<: *testing
name: Python 2 armeabi-v7a (with numpy)
env: COMMAND='. venv/bin/activate && cd testapps/ && python setup_testapp_python2_sqlite_openssl.py apk --sdk-dir $ANDROID_SDK_HOME --ndk-dir $ANDROID_NDK_HOME --requirements sdl2,pyjnius,kivy,python2,openssl,requests,sqlite3,setuptools,numpy'
- <<: *testing
script: make testapps/python3/armeabi-v7a PYTHON_WITH_VERSION=python3
- <<: *testapps
name: Python 2 armeabi-v7a
script: make docker/run/make/testapps/python2/armeabi-v7a
- <<: *testapps
name: Rebuild updated recipes
env: COMMAND='. venv/bin/activate && ./ci/rebuild_updated_recipes.py'
script: travis_wait 30 make docker/run/make/rebuild_updated_recipes
98 changes: 61 additions & 37 deletions Dockerfile.py3
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ ENV LANG="en_US.UTF-8" \
LANGUAGE="en_US.UTF-8" \
LC_ALL="en_US.UTF-8"

RUN apt -y update -qq \
&& apt -y install -qq --no-install-recommends curl unzip ca-certificates \
&& apt -y autoremove
RUN apt -y update -qq > /dev/null && apt -y install -qq --no-install-recommends \
ca-certificates \
curl \
&& apt -y autoremove \
&& apt -y clean \
&& rm -rf /var/lib/apt/lists/*

# retry helper script, refs:
# https://github.com/kivy/python-for-android/issues/1306
Expand All @@ -37,37 +40,53 @@ RUN curl https://raw.githubusercontent.com/kadwanev/retry/1.0.1/retry \

ENV USER="user"
ENV HOME_DIR="/home/${USER}"
ENV ANDROID_HOME="${HOME_DIR}/.android"
ENV WORK_DIR="${HOME_DIR}" \
PATH="${HOME_DIR}/.local/bin:${PATH}"
ENV WORK_DIR="${HOME_DIR}/app" \
PATH="${HOME_DIR}/.local/bin:${PATH}" \
ANDROID_HOME="${HOME_DIR}/.android" \
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

# install system dependencies
RUN ${RETRY} apt -y install -qq --no-install-recommends \
python3 virtualenv python3-pip python3-venv \
wget lbzip2 patch sudo python python-pip \
&& apt -y autoremove

# build dependencies
# https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit
# install system dependencies
RUN dpkg --add-architecture i386 \
&& ${RETRY} apt -y update -qq \
&& ${RETRY} apt -y update -qq > /dev/null \
&& ${RETRY} apt -y install -qq --no-install-recommends \
build-essential ccache git python3 python3-dev \
libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 \
libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 \
zip zlib1g-dev zlib1g:i386 \
&& apt -y autoremove

# specific recipes dependencies (e.g. libffi requires autoreconf binary)
RUN ${RETRY} apt -y install -qq --no-install-recommends \
libffi-dev autoconf automake cmake gettext libltdl-dev libtool pkg-config \
autoconf \
automake \
autopoint \
build-essential \
ccache \
cmake \
gettext \
git \
lbzip2 \
libffi-dev \
libgtk2.0-0:i386 \
libidn11:i386 \
libltdl-dev \
libncurses5:i386 \
libpangox-1.0-0:i386 \
libpangoxft-1.0-0:i386 \
libstdc++6:i386 \
libtool \
openjdk-8-jdk \
patch \
pkg-config \
python \
python-pip \
python3 \
python3-dev \
python3-pip \
python3-venv \
sudo \
unzip \
virtualenv \
wget \
zip \
zlib1g-dev \
zlib1g:i386 \
&& apt -y autoremove \
&& apt -y clean

# Install Java and set JAVA_HOME (to accept android's SDK licenses)
RUN ${RETRY} apt -y install -qq --no-install-recommends openjdk-8-jdk \
&& apt -y autoremove && apt -y clean
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
&& apt -y clean \
&& rm -rf /var/lib/apt/lists/*

# prepare non root env
RUN useradd --create-home --shell /bin/bash ${USER}
Expand All @@ -77,18 +96,23 @@ RUN usermod -append --groups sudo ${USER}
RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# install cython for python 2 (for python 3 it's inside the venv)
RUN pip2 install --upgrade Cython==0.28.6
RUN pip2 install --upgrade Cython==0.28.6 \
&& rm -rf ~/.cache/

WORKDIR ${WORK_DIR}
COPY --chown=user:user . ${WORK_DIR}
RUN mkdir ${ANDROID_HOME} && chown --recursive ${USER} ${ANDROID_HOME}
RUN mkdir ${ANDROID_HOME} && chown --recursive ${USER} ${HOME_DIR} ${ANDROID_HOME}
USER ${USER}

# Download and install android's NDK/SDK
RUN make -f ci/makefiles/android.mk target_os=linux
COPY ci/makefiles/android.mk /tmp/android.mk
RUN make --file /tmp/android.mk target_os=linux \
&& sudo rm /tmp/android.mk

# install python-for-android from current branch
RUN virtualenv --python=python3 venv \
&& . venv/bin/activate \
&& pip3 install --upgrade Cython==0.28.6 \
&& pip3 install -e .
COPY --chown=user:user Makefile README.md setup.py pythonforandroid/__init__.py ${WORK_DIR}/
RUN mkdir pythonforandroid \
&& mv __init__.py pythonforandroid/ \
&& make virtualenv \
&& rm -rf ~/.cache/

COPY --chown=user:user . ${WORK_DIR}
Loading