diff --git a/CHANGELOG.md b/CHANGELOG.md index 66f8559..53304fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## [2019.0909] + + - Fix camera events not binded + - Makefile improvements + - Bump to Kivy==1.11.1, refs #22 + ## [2019.0907] - Update buildozer, p4a, and ndk versions, refs #21 diff --git a/Makefile b/Makefile index 9ce45e5..4502bff 100644 --- a/Makefile +++ b/Makefile @@ -50,13 +50,12 @@ all: system_dependencies virtualenv opencv venv: test -d venv || virtualenv -p python$(PYTHON_MAJOR_VERSION) venv - . venv/bin/activate + +virtualenv: venv $(PIP) install Cython==0.28.6 $(PIP) install -r requirements/requirements.txt $(GARDEN) install xcamera -virtualenv: venv - system_dependencies: ifeq ($(OS), Ubuntu) sudo apt install --yes --no-install-recommends $(SYSTEM_DEPENDENCIES) @@ -112,8 +111,10 @@ $(OPENCV_DEPLOY): $(OPENCV_BUILD) virtualenv opencv: $(OPENCV_DEPLOY) -clean: - rm -rf $(VENV_NAME) .tox/ $(DOWNLOAD_DIR) $(DOCS_DIR)/build/ dist/ build/ +run/linux: virtualenv + $(PYTHON) src/main.py + +run: run/linux test: $(TOX) @@ -122,25 +123,38 @@ uitest: virtualenv $(PIP) install -r requirements/test_requirements.txt PYTHONPATH=src $(PYTHON) -m unittest discover --top-level-directory=. --start-directory=tests/ui/ -isort-check: +isort-check: virtualenv $(ISORT) --check-only --recursive --diff $(SOURCES) -isort-fix: +isort-fix: virtualenv $(ISORT) --recursive $(SOURCES) -flake8: +flake8: virtualenv $(FLAKE8) $(SOURCES) lint: isort-check flake8 +docs/clean: + rm -rf $(DOCS_DIR)/build/ + docs: cd $(DOCS_DIR) && SPHINXBUILD=$(SPHINXBUILD) make html -release/build: +release/clean: rm -rf dist/ build/ + +release/build: release/clean $(PYTHON) setup.py sdist bdist_wheel $(PYTHON) setup_meta.py sdist bdist_wheel $(TWINE) check dist/* release/upload: $(TWINE) upload dist/* + +clean: release/clean docs/clean + py3clean src/ + find src/ -type d -name "__pycache__" -exec rm -r {} + + find src/ -type d -name "*.egg-info" -exec rm -r {} + + +clean/full: clean + rm -rf $(VENV_NAME) .tox/ $(DOWNLOAD_DIR) diff --git a/README.md b/README.md index 5230d0f..42e77d4 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ A full working demo is available in [src/main.py](https://github.com/kivy-garden ### Ubuntu Install system requirements (Ubuntu 18.04): ```sh -sudo apt install libzbar-dev +make system_dependencies ``` Install garden requirements: @@ -42,15 +42,17 @@ garden install --upgrade xcamera Install zbarcam: ```sh -pip install --upgrade https://github.com/kivy-garden/zbarcam/archive/develop.zip +pip install --upgrade zbarcam ``` Then import it in your Python code via: ```python from kivy_garden.zbarcam import ZBarCam ``` - -You may also need to compile/install OpenCV manually, see [OpenCV.md](OpenCV.md). +[OpenCV](OpenCV.md): +```sh +make opencv +``` ### Android Build for Android via buildozer, see [buildozer.spec](buildozer.spec). diff --git a/buildozer.spec b/buildozer.spec index 276eee5..afd0f6f 100644 --- a/buildozer.spec +++ b/buildozer.spec @@ -38,7 +38,7 @@ version.filename = %(source.dir)s/kivy_garden/zbarcam/version.py # comma seperated e.g. requirements = sqlite3,kivy requirements = android, - kivy==5fc5385, + kivy==1.11.1, libiconv, libzbar, Pillow==5.2.0, diff --git a/doc/source/release.md b/doc/source/release.md index 160196b..0e5121c 100644 --- a/doc/source/release.md +++ b/doc/source/release.md @@ -10,7 +10,8 @@ Start the release with git flow: ```sh git flow release start YYYY.MMDD ``` -Now update the [CHANGELOG.md](/CHANGELOG.md) `[Unreleased]` section to match the new release version. +Now update the [CHANGELOG.md](https://github.com/kivy-garden/zbarcam/blob/develop/CHANGELOG.md) +`[Unreleased]` section to match the new release version. Also update the `version` string from the [src/kivy_garden/zbarcam/version.py](https://github.com/kivy-garden/zbarcam/blob/develop/src/kivy_garden/zbarcam/version.py) file. @@ -30,18 +31,18 @@ git push --tags Build it: ```sh -python setup.py sdist bdist_wheel +make release/build ``` -Check archive content: +This will build two packages, `kivy_garden.zbarcam` and the alias meta-package `zbarcam`. +Also note we're running `twine check` on both archives. +You can also check archive content manually via: ```sh tar -tvf dist/kivy_garden.zbarcam-*.tar.gz ``` -Twine check and upload: +Last step is to upload both packages: ```sh -twine check dist/* -twine upload dist/* +make release/upload ``` -Also publish the alias meta package `setup_meta.py`. ## Check Read the Docs diff --git a/requirements/requirements.txt b/requirements/requirements.txt index a36a298..2529428 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,6 +1,5 @@ -pyzbar==0.1.8 -# 5fc5385 adds opencv 4 support -https://github.com/kivy/kivy/archive/5fc5385.zip#egg=kivy +Kivy==1.11.1 Kivy-Garden==0.1.4 -Pillow==5.2.0 numpy==1.16.1 +Pillow==5.2.0 +pyzbar==0.1.8 diff --git a/src/kivy_garden/zbarcam/version.py b/src/kivy_garden/zbarcam/version.py index 621582f..608dd00 100644 --- a/src/kivy_garden/zbarcam/version.py +++ b/src/kivy_garden/zbarcam/version.py @@ -1,7 +1,7 @@ -__version__ = '2019.0907' +__version__ = '2019.0909' # The `__version_code__` is used for the F-Droid auto update and should match # the `versionCode` from the `build.gradle` file located in: # `.buildozer/android/platform/build/dists/zbarcamdemo/` # The auto update method used is the `HTTP`, see: # https://f-droid.org/en/docs/Build_Metadata_Reference/#UpdateCheckMode -__version_code__ = 721202807 +__version_code__ = 721202809 diff --git a/src/kivy_garden/zbarcam/zbarcam.py b/src/kivy_garden/zbarcam/zbarcam.py index 5ed2588..9dc6b98 100644 --- a/src/kivy_garden/zbarcam/zbarcam.py +++ b/src/kivy_garden/zbarcam/zbarcam.py @@ -80,6 +80,9 @@ def _setup(self): # `self.xcamera._camera` instance may not be available if e.g. # the `CAMERA` permission is not granted self.xcamera.bind(on_camera_ready=self._on_camera_ready) + # camera may still be ready before we bind the event + if self.xcamera._camera is not None: + self._on_camera_ready(self.xcamera) def _on_camera_ready(self, xcamera): """