diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 26429aa..c58d199 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,6 +28,7 @@ jobs: - name: Install requirements run: | + pip install wheel pip install -r requirements.txt pip install -r requirements-win.txt npm install -g yarn @@ -37,13 +38,28 @@ jobs: run: | python kapew.py prep-kolibri-dist --exclude-prereleases --skip-preseed - - name: Apply performance patches + - name: Update kolibri.dist.le_utils for kolibri-zim-plugin run: | - cp patches/morango-models-utils.py src/kolibri/dist/morango/models/utils.py + pip install git+https://github.com/learningequality/le-utils.git@master --target="src\kolibri\dist" --upgrade + + - name: Update kolibri.dist.morango for improved performance on Windows + run: | + pip install morango==0.5.6 --target="src\kolibri\dist" --upgrade + + - name: Add kolibri_zim_plugin to Kolibri's dist packages + run: | + pip install kolibri-zim-plugin --target="src\kolibri\dist" + + # - name: Apply performance patches + # run: | + # cp patches/morango-models-utils.py src/kolibri/dist/morango/models/utils.py - name: Build run: | python kapew.py build + + - name: Add package data files to dist + run: | mv src/kolibri dist/win/Kolibri mv dist/win/Kolibri kolibri-electron/src/ diff --git a/project_info.json b/project_info.json index 8f361c9..00a224f 100644 --- a/project_info.json +++ b/project_info.json @@ -15,15 +15,33 @@ "launch_images": {"android": "assets/launch-image.png"}, "asset_dirs": ["assets", "locale"], "build_tool": { - "win": "pyinstaller" + "win": "pyinstaller" }, "import_hooks_file": "stdlib_imports.py", - "includes": ["html.parser", "http.cookies", "kolibri.deployment.default.settings.base", "logging.config", "logging.handlers", "pkg_resources.py2_warn"], - "excludes": ["numpy"], + "includes": [ + "html.parser", + "http.cookies", + "kolibri.deployment.default.settings.base", + "logging.config", + "logging.handlers", + "pkg_resources.py2_warn" + ], + "excludes": [ + "numpy" + ], "packages": { - "common": ["setuptools", "sqlite3", "six"], - "win": ["wx"], - "osx": ["kolibri", "wx"] + "common": [ + "setuptools", + "sqlite3", + "six" + ], + "win": [ + "wx" + ], + "osx": [ + "kolibri", + "wx" + ] }, "disk_image": { "background": "assets/disk_image/Layout.png", diff --git a/requirements.txt b/requirements.txt index dc62d86..92d13d1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,24 +1,37 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.9 # To update, run: # # pip-compile requirements.in # --e git+git://github.com/kollivier/pyeverywhere.git@dev#egg=pyeverywhere # via -r requirements.in -asn1crypto==1.4.0 # via cryptography -certifi==2020.6.20 # via requests -cffi==1.14.3 # via cryptography -chardet==3.0.4 # via requests -cryptography==2.3 # via -r requirements.in -dmgbuild==1.4.2 # via pyeverywhere -docopt==0.6.2 # via pbxproj -ds-store==1.3.0 # via dmgbuild -idna==2.10 # via cryptography, requests -mac-alias==2.1.0 # via dmgbuild -openstep-parser==1.5.3 # via pbxproj -pbxproj==3.2.0 # via pyeverywhere -pycparser==2.20 # via cffi -requests==2.24.0 # via -r requirements.in, pyeverywhere -six==1.15.0 # via cryptography, pyeverywhere, virtualenv-api -urllib3==1.25.11 # via requests -virtualenv-api==2.1.18 # via pyeverywhere +-e git+git://github.com/kollivier/pyeverywhere.git@dev#egg=pyeverywhere + # via -r requirements.in +asn1crypto==1.4.0 + # via cryptography +certifi==2020.6.20 + # via requests +cffi==1.14.3 + # via cryptography +chardet==3.0.4 + # via requests +cryptography==2.3 + # via -r requirements.in +idna==2.10 + # via + # cryptography + # requests +pycparser==2.20 + # via cffi +requests==2.24.0 + # via + # -r requirements.in + # pyeverywhere +six==1.15.0 + # via + # cryptography + # pyeverywhere + # virtualenv-api +urllib3==1.25.11 + # via requests +virtualenv-api==2.1.18 + # via pyeverywhere diff --git a/src/main.py b/src/main.py index f3b2b6e..a8677d3 100644 --- a/src/main.py +++ b/src/main.py @@ -1,10 +1,11 @@ +import builtins import datetime -import gettext import logging import os -import pew import sys +from functools import partial + from config import KOLIBRI_PORT from kolibri_tools.utils import start_kolibri_server @@ -61,34 +62,9 @@ def flush(self): sys.path.insert(0, extra_python_path) sys.path.insert(0, os.path.join(extra_python_path, "kolibri", "dist")) -pew.set_app_name("Kolibri") - KOLIBRI_ROOT_URL = 'http://localhost:{}'.format(KOLIBRI_PORT) os.environ["DJANGO_SETTINGS_MODULE"] = "kolibri.deployment.default.settings.base" -app_data_dir = pew.get_app_files_dir() -os.makedirs(app_data_dir, exist_ok=True) - -languages = None -locale_info = {} -try: - t = gettext.translation('macapp', locale_root_dir, languages=languages, fallback=False) - locale_info = t.info() - # We have not been able to reproduce, but we have seen this happen in user tracebacks, so - # trigger the exception handling fallback if locale_info doesn't have a language key. - if not 'language' in locale_info: - raise Exception("Received invalid language_info dict.") - _ = t.gettext - -except Exception as e: - # Fallback to English and if we fail to find any language catalogs. - locale_info['language'] = 'en_US' - def _(text): - return text - logging.warning("Error retrieving language: {}".format(repr(e))) - -logging.info("Locale info = {}".format(locale_info)) - class Application: def _init_log(self):