Expose version information in javascript

This commit is contained in:
Roman Yurchak 2018-09-14 16:58:02 +02:00
parent d574047a4d
commit 59de8d4a6d
6 changed files with 32 additions and 4 deletions

View File

@ -8,7 +8,7 @@ git add *
git config --global user.email "deploybot@nowhere.com"
git config --global user.name "Deploybot"
git commit -m << END
Deployed from Circle-CI $CIRCLE_BUILD_NUM"
Deployed from Circle-CI $CIRCLE_BUILD_NUM
Version $(git describe --tags --always)
END

View File

@ -162,7 +162,8 @@ root/.built: \
cp src/pyodide.py root/lib/python$(PYMINOR)/site-packages
if command -v git > /dev/null 2>&1 \
&& git describe --tags > /dev/null 2>&1; then \
sed -i "s/__version__ =.*/__version__ = '$(shell git describe --tags)'/g" root/lib/python$(PYMINOR)/site-packages/pyodide.py; \
sed -i "s/__version__ =.*/__version__ = '$(shell git describe --tags)'/g" \
root/lib/python$(PYMINOR)/site-packages/pyodide.py; \
fi
( \
cd root/lib/python$(PYMINOR); \

View File

@ -48,7 +48,7 @@ main(int argc, char** argv)
if (js2python_init() || JsImport_init() || JsProxy_init() ||
pyimport_init() || pyproxy_init() || python2js_init() ||
runpython_init_js() || runpython_init_py()) {
runpython_init_js() || runpython_init_py() || runpython_finalize_js()) {
return 1;
}

View File

@ -68,3 +68,12 @@ runpython_init_py()
Py_DECREF(d);
return 0;
}
EM_JS(int, runpython_finalize_js, (), {
Module.version = function()
{
Module.runPython("import pyodide");
return Module.runPython("pyodide.__version__");
};
return 0;
});

View File

@ -10,4 +10,7 @@ runpython_init_js();
int
runpython_init_py();
int
runpython_finalize_js();
#endif /* RUNPYTHON_H */

View File

@ -2,7 +2,6 @@ import os
from pathlib import Path
import time
import pytest
@ -391,3 +390,19 @@ def test_load_package_after_convert_string(selenium):
selenium.load_package('kiwisolver')
selenium.run(
"import kiwisolver")
def test_version_info(selenium):
from distutils.version import LooseVersion
version_py_str = selenium.run("""
import pyodide
pyodide.__version__
""")
version_py = LooseVersion(version_py_str)
assert version_py > LooseVersion('0.0.1')
version_js_str = selenium.run_js("return pyodide.version()")
version_js = LooseVersion(version_js_str)
assert version_py == version_js