Commit graph

741 commits

Author SHA1 Message Date
Andre Miras
085d04b7aa
Merge pull request #489 from misl6/fix-cwd
Adds initial_working_directory
2020-05-09 11:41:48 +02:00
Mirko Galimberti
eeeb06243c Adds initial_working_directory 2020-05-09 10:40:29 +02:00
Andre Miras
c35c94a0fa
Merge pull request #488 from AndreMiras/feature/netifaces_recipe
Adds netifaces recipe, closes #239
2020-05-07 18:13:24 +02:00
Andre Miras
d61008a94a Adds netifaces recipe, closes #239
Note this is an early version working on the `x86_64` simulator.
It wasn't tested on an arm device.
Requires setuptools to be installed:
```sh
python toolchain.py pip install setuptools
```
Tested with main.py:
```python
import netifaces
print("interfaces:", netifaces.interfaces())
```
And produced the following output in the `x86_64` simulator:
```
Available orientation: KIVY_ORIENTATION=LandscapeLeft LandscapeRight Portrait PortraitUpsideDown
Initializing python
Running main.py: /Users/vagrant/Library/Developer/CoreSimulator/Devices/.../Application/.../testnetifaces.app/YourApp/main.pyc
interfaces: ['lo0', 'gif0', 'stf0', 'en0', 'utun0', 'utun1']
Leaving
```
2020-05-07 16:40:54 +02:00
Andre Miras
e287795e03
Merge pull request #487 from AndreMiras/feature/shorter_exception_catching
Uses contextlib.suppress to ignore exceptions
2020-05-06 23:25:24 +02:00
Andre Miras
f082919a90 Uses contextlib.suppress to ignore exceptions
Shorter, yet more meaningful way to ignore exceptions.
Also note it can prevent race conditions in the `if exists()` case.
2020-05-06 22:38:25 +02:00
Andre Miras
efd47e60bc
Merge pull request #486 from AndreMiras/feature/find_xcodeproj_helper
DRY via the find_xcodeproj() helper method
2020-05-06 21:14:19 +02:00
Andre Miras
04b82d8c85 DRY via the find_xcodeproj() helper method
Also removes try/except on `pbxproj` imports. This is now part of
the `setup.py` dependencies and installed automatically.
Users bypassing the `setup.py` should know what they're doing, hence
they should be able to read an `ImportError` exception.
2020-05-06 20:28:54 +02:00
Andre Miras
9c68080ca3
Merge pull request #485 from AndreMiras/feature/use_cd_context_manager
Uses cd context manager in Python3Recipe.reduce_python()
2020-05-06 20:28:26 +02:00
Andre Miras
b1bdfcd028 Uses cd context manager in Python3Recipe.reduce_python() 2020-05-06 20:06:06 +02:00
Andre Miras
6d42fe3132
Merge pull request #484 from AndreMiras/feature/python3_syntax
Uses Python 3 syntax
2020-05-06 19:41:40 +02:00
Andre Miras
2c0a79a817 Uses Python 3 syntax
This is a follow up for #482, uses Python 3 syntax:
- Simplifies `super()` calls
- Removes some unused `super()` (no parent class)
- Removes `object` inheritance
- Drops `IS_PY2` logic
- Drops Python 2 imports
2020-05-06 18:59:20 +02:00
Andre Miras
6fbf225fdb
Merge pull request #483 from AndreMiras/feature/lint_tools
Also lints the tools/ folder
2020-05-06 18:40:49 +02:00
Andre Miras
3e33c071a0
Merge pull request #482 from AndreMiras/feature/python2_drop
Removed Python 2 support
2020-05-06 17:19:10 +02:00
Andre Miras
7e13a07f57 Also lints the tools/ folder
Thanks to #454 the `tools/` folder only holds code we own so we can lint it
2020-05-06 17:09:35 +02:00
Andre Miras
e29d6aa256 Removed Python 2 support
Drops system, host and target Python 2 support.
Note a lot of recipes were having hardcoded reference to
`lib/python2.7/site-packages/` directory. I suspect most
of theses were not working, but the reference has been updated
to `lib/python3.7/site-packages/` following the same hardcoding
pattern. In follow up work we would do a walkthrough each recipes
to fix at least compilation time issues.
Also note the `rebuild_updated_recipes.py` is expected to fail as
this is touching many recipes including recipes that were already
broken.
2020-05-06 15:46:34 +02:00
Andre Miras
7385cdfca8
Merge pull request #481 from AndreMiras/feature/libffi_python3
Migrates libffi build to Python 3
2020-05-06 15:29:50 +02:00
Andre Miras
8a4e5b43c9 Migrates libffi build to Python 3
Issue reported libffi upstream:
https://github.com/libffi/libffi/pull/563

Also updates `rebuild_updated_recipes.py` following up #472
2020-05-06 15:03:20 +02:00
Andre Miras
3974a1e701
Merge pull request #478 from AndreMiras/feature/top_level_toolchaincl
Takes ToolchainCL definition outside the main
2020-05-06 00:19:15 +02:00
Andre Miras
30cca1ed62 Takes ToolchainCL definition outside the main
I can't justify why it would need to be inside the main.
Let's take it out and see what breaks ;)
2020-05-05 23:53:22 +02:00
Andre Miras
be384fbf91
Merge pull request #479 from AndreMiras/feature/shorter_syntax
Uses a couple of syntax shortcuts
2020-05-05 23:48:56 +02:00
Andre Miras
66fd9fae2b Uses a couple of syntax shortcuts
- shutil.rmtree() with ignore_errors=True
- os.makedirs() with exist_ok=True
- str.endswith() using extension list

Also moves `sh` with other imports and removes unnecessary super() call
2020-05-05 23:22:33 +02:00
Andre Miras
5f408c29b2
Merge pull request #480 from AndreMiras/release/1.1.0
1.1.0
2020-05-05 22:43:26 +02:00
Andre Miras
f6fbca1458 1.1.0 2020-05-05 22:20:06 +02:00
Andre Miras
f19b2cedca
Merge pull request #475 from AndreMiras/feature/automatic_pypi_releases
Automatically publish to PyPI upon tagging
2020-05-05 22:11:32 +02:00
Andre Miras
1dc497baca
Merge pull request #476 from AndreMiras/feature/update_readme
Updates README.md with install/usage from PyPI
2020-05-05 21:10:54 +02:00
Andre Miras
274298d7a6
Merge pull request #474 from AndreMiras/feature/check_setup_workflow
Dedicated setup.py test workflow
2020-05-05 20:10:48 +02:00
Andre Miras
31933974db
Merge pull request #477 from AndreMiras/feature/regression_fix
Fixes a regression introduced during the linting
2020-05-05 16:57:26 +02:00
Andre Miras
e786a30b90 Fixes a regression introduced during the linting
https://github.com/kivy/kivy-ios/pull/451/files#diff-e34220312893036b30eb8d11b5cc12d7R1495
2020-05-05 16:34:22 +02:00
Andre Miras
9f8e079470
Merge pull request #473 from lerela/409_numpy_issues
More fixes to Numpy so that the binary is accepted by the App Store
2020-05-05 11:29:56 +02:00
lerela
a47f946f9a Fixes to Numpy so that the binary is accepted by the App Store.
Explanation: Apple forbids some symbols that Numpy is linked against (ccopy, dcopy, scopy, zcopy and xerbla). Compilation and tests work fine but the App Store complains and prevents uploading such builds.
This patch aliases the culprits to the public, allowed method names, allowing the linking to proceed as before and the resulting binary to be accepted by the App Store.
2020-05-05 10:51:08 +02:00
Andre Miras
5e94c912b3 Updates README.md with install/usage from PyPI 2020-05-05 00:56:34 +02:00
Andre Miras
82c1987f2e Automatically publish to PyPI upon tagging
New `pypi-release.yml` workflow for deploying to PyPI.
The scoped token is already setup in:
https://github.com/kivy/kivy-ios/settings/secrets
Doing a test deployment we got a:
```
Uploading distributions to https://upload.pypi.org/legacy/
Uploading kivy_ios-1.0.0.dev1-py3-none-any.whl

HTTPError: 400 Client Error: File already exists.
See https://pypi.org/help/#file-name-reuse for url:
https://upload.pypi.org/legacy/
```
Which means the credentials are working, refs:
https://github.com/AndreMiras/kivy-ios/runs/644399236
2020-05-04 23:56:00 +02:00
Andre Miras
02a04e7d01 Dedicated setup.py test workflow
Verifies the `setup.py` creates the archive properly by installing
it locally and running basic toolchain commands.
2020-05-04 23:48:53 +02:00
Andre Miras
ad7628c4f5
Merge pull request #472 from AndreMiras/feature/prepares_kivy_ios_package
Moving to dedicated kivy_ios/ package directory
2020-05-04 21:40:44 +02:00
Andre Miras
56431b6922 Moving to dedicated kivy_ios/ package directory
- updates all imports to prefix kivy_ios
- adds basic `setup.py` file
- adds a simple `toolchain.py` to the root folder for compat

Makes it possible to install kivy-ios from PyPI:
```
pip install kivy-ios
toolchain --help
```
Note the `rebuild_updated_recipes.py` is expected to fail as we
moved all the recipes.

This is a working, but unperfect iteration that come with limitations
we would address in subsequent pull requests, such as:
- the new usage is not yet documented
- CI is not testing the source distribution creation and install
- Continuous Delivery to PyPI is not in place
- `toolchain` binary is a bit too generic name
- we're still vendoring things under `tools/`
2020-05-03 23:29:41 +02:00
Andre Miras
b831483cda
Merge pull request #471 from AndreMiras/feature/track_broken_recipes
Do not build known broken recipes
2020-05-03 16:21:58 +02:00
Andre Miras
136d19473d
Merge pull request #465 from AndreMiras/feature/use_cd_context_manager
Uses new `cd` context manager more
2020-05-03 16:04:20 +02:00
Andre Miras
d6d602a6b6
Merge pull request #469 from AndreMiras/feature/minor_issue_template_typos
Fixes minor typos in the issue template
2020-05-03 15:58:44 +02:00
Andre Miras
7c05e50ca7 Do not build known broken recipes
Recipes known to be broken should be part of `BROKEN_RECIPES` and have
a dedicated issue.
Demonstrates with `distribute` recipe that was modified but will be skipped.
Refs: #466, #467 and #468
2020-05-03 15:50:03 +02:00
Andre Miras
b7f5893066
Merge pull request #470 from misl6/bump-cython-version
Bumps Cython version
2020-05-03 14:58:46 +02:00
Andre Miras
9b6559cd5c
Merge pull request #454 from misl6/cleanup-and-cookiecutter
Cleanup + Add test in CI for cookiecutter related things
2020-05-03 14:46:30 +02:00
Mirko Galimberti
ef9e5b3715 Bumps Cython version 2020-05-03 13:56:47 +02:00
Mirko Galimberti
b8f2fd0f51 Cleanup - Removes vendored deps 2020-05-03 13:38:33 +02:00
Andre Miras
c06c51f149 Uses new cd context manager more
Also adds logging as we change directories.
2020-05-03 11:57:58 +02:00
Andre Miras
a692b986c2 Fixes minor typos in the issue template 2020-05-03 11:53:56 +02:00
Andre Miras
a83b3f495b
Merge pull request #464 from AndreMiras/feature/activate_venv_before_build
Activates venv before venv build
2020-05-03 10:55:04 +02:00
Andre Miras
58713e8b6e Activates venv before venv build
Also fixes toolchain.py failing silently on missing dependency.
2020-05-03 10:20:09 +02:00
Andre Miras
513efbb8b8
Merge pull request #462 from AndreMiras/feature/venv_build
Fixes building in venv
2020-05-02 22:02:34 +02:00
Andre Miras
d180ee0807 Fixes building in venv
Borrowed from p4a:
https://github.com/kivy/python-for-android/pull/2159
Also refs upstream issue:
https://bugs.python.org/issue40261
Note that the fix used upstream cannot really be used directly here
because the actual system Python is impacted.
Adds venv build to CI to check for regressions.
2020-05-01 19:56:15 +02:00