-
Notifications
You must be signed in to change notification settings - Fork 130
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
204 additions
and
114 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# Chaquopy target | ||
|
||
This directory contains scripts to build Python for Android. | ||
|
||
|
||
## Supporting libraries | ||
|
||
Before building Python, the correct versions of the supporting libraries must already be | ||
present in the `prefix` subdirectory: | ||
|
||
* Bzip2, libffi and xz use static libraries, so you must build them yourself, using the | ||
commands from build-all.sh. | ||
* SQLite and OpenSSL use dynamic libraries, so you may either build them yourself in the | ||
same way, or get pre-built copies using the download-target.sh and unpackage-target.sh | ||
scripts, as shown in ci.yml. | ||
|
||
|
||
## Python | ||
|
||
Update Common.java with the version you want to build, and the build number you want to | ||
give it. | ||
|
||
Run build-and-package.sh, as shown in build-all.sh. This will create a release in the | ||
`maven` directory in the root of this repository. If the packaging phase fails, e.g. | ||
because the version already exists, then rather than doing the whole build again, you | ||
can re-run package-target.sh directly. | ||
|
||
If this is a new major.minor version, do the "Adding a Python version" checklist below. | ||
|
||
Run the PythonVersion integration tests. | ||
|
||
Use the demo app to run the unit tests on the full set of pre-release devices (see | ||
release/README.md). | ||
|
||
To publish the build, follow the "Public release" instructions in release/README.md. | ||
Once a version has been published on Maven Central, it cannot be changed, so any fixes | ||
must be released under a different build number (see Common.java). | ||
|
||
|
||
## Adding a Python version | ||
|
||
Add it to Common.java. | ||
|
||
Add it to build-all.sh. | ||
|
||
In test_gradle_plugin.py: | ||
* Update the `PYTHON_VERSIONS` assertion. | ||
* Update `stdlib_native_expected`. | ||
|
||
Update documentation: | ||
* "Python version" in android.rst | ||
* "Python versions" in versions.rst | ||
|
||
To allow running the unit tests, build any packages used by the demo app. | ||
|
||
When building the other packages: | ||
|
||
* For each package, in dependency order: | ||
* Update to the current stable version, unless it's been updated recently, or updating | ||
would take a lot of work which wouldn't be justified by user demand. | ||
* Review patches and build scripts to see if there are any workarounds which are no | ||
longer necessary. | ||
* When finished the list: | ||
* Clear out any bad builds before copying them to the public repository. | ||
* After release, notify any users who requested new versions. | ||
|
||
|
||
## Removing a Python version | ||
|
||
Update all the things listed in the "Adding a Python version" section. | ||
|
||
Search source code for `python *[<>=]* *[0-9]` to see if any workarounds can now be | ||
removed. | ||
|
||
Check if any modules can be removed from `BOOTSTRAP_NATIVE_STDLIB` in PythonTasks.kt. | ||
|
||
|
||
## Changing the default Python version | ||
|
||
Update `DEFAULT_PYTHON_VERSION` in Common.java. | ||
|
||
Update the pythonX.Y scripts in integration/data/BuildPython. | ||
|
||
(REST OF LIST TBD) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.