Commit Graph

26 Commits

Author SHA1 Message Date
Gyeongjae Choi 328a9ffc34
Add tag key in meta.yaml spec (#3444)
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
2023-01-27 13:31:26 +09:00
Gyeongjae Choi 8d7137f112
Fix incorrect error messages in ModuleNotFoundError (#3435)
Close https://github.com/pyodide/pyodide/issues/3423
2023-01-22 09:20:19 +01:00
Gyeongjae Choi 0709ec0a26
Split building and installing packages in buildall (#3279) 2022-12-15 13:43:39 +09:00
Gyeongjae Choi cc7a734c49
Add `requirements/executable` key in meta.yaml spec (#3300)
Adds a new key in meta.yaml spec: requirements/executable which specifies the list of executables required to build a package. Unlike conda, we don't build or install these executables. This key exists just to halt build earlier

Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
2022-11-30 16:40:36 +09:00
Gyeongjae Choi af206d159c
Add vendor-sharedlib key in meta.yaml spec (#3234) 2022-11-09 20:18:44 +09:00
Gyeongjae Choi f7bb2489f9
Fix copying shared libraries after build (#3212)
This fixes two minor bugs when building packages:

- Shared libraries are not copied into dist directory when it is already built.
- When build fails, the shared library zip file remains in the package directory.

Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
2022-11-01 10:41:44 +09:00
Roman Yurchak 4dd8a3e0cb
Switch to meta.yaml parsing with pydantic (#3079) 2022-09-11 09:20:56 +02:00
Gyeongjae Choi 555f7828f4
Parse top-level import name from wheel file (#3006) 2022-09-06 15:20:04 +09:00
Roman Yurchak 62de53f5a8
Add build dependencies to meta.yaml (#2132)
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
Co-authored-by: Gyeongjae Choi <def6488@gmail.com>
2022-08-22 13:35:27 +09:00
Hood Chatham 63516c3e83
Add Python version to repodata (#2786) 2022-06-24 21:21:26 -07:00
Roman Yurchak 8de2a04ab0
API Rename packages.json to repodata.json (#2749)
Closes #2747

 * renames packages.json to repodata.json
 * renames the corresponding JS and Python variables to be a bit more explicit.

Tangentially related to #795
2022-06-20 14:46:11 -07:00
Hood Chatham 0283a39629
ENH Add a new "disabled" key to meta.yaml (#2671)
Frequently when updating Python or Emscripten, a handlful of packages
stop working. Because of the way that the CI works, these prevent
other packages from being built or tested. However, packages with
many dependents are currently annoying to disable. This adds a key
to meta.yaml "disable: true" that turns off a package.

I also fixed the "!package" and no-numpy-dependents to be transitive.

We use graphlib to sort the packages topologically, then we traverse
the packages once in build order to locate all the packages which
transitively depend on disabled packages. Then we traverse in reverse
build order to locate all packages that are dependencies of non-disabled
requested packages.
2022-06-08 08:25:12 -07:00
Hood Chatham fdb0a3581d
MAINT Update the packages.json info to include emscripten version and pyodide version (#2655) 2022-06-03 08:40:46 +09:00
Henry Schreiner 5523d539bf
chore(types): fill out remaining partial types (#2612) 2022-05-25 20:31:04 -07:00
Henry Schreiner e31bb554e4
chore: complete more incomplete types (#2590)
* chore: add some incomplete types
* chore: modernize pyproject.toml

Adding more incomplete types. About 2/3 of the way through being
able to turn on the strictness flag for it.
2022-05-21 13:35:02 -07:00
echorand (Amit Saha) b0f7feb210
ENH Verifying checksum when loading packages in browser (#2513)
This PR does the following to complete #2431:

    * Calculate the Subresource integrity hash from the sha256 as explained here:
    https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
    As the document explains, it is a base64 encoded string of the "binary" hash, 
    not the data returned by hexdigest() method.
    * Implement the verification of the checksum when loading packages

This ignores the verification for NodeJS environment as the node-fetch module
doesn't support the integrity option. Node 17.5.0 has added the fetch API as
experimental, it would be prudent to come back and fix this when we are ready
to use that version.
2022-05-16 13:41:01 -07:00
Mario Gersbach 0311cd1c20
ENH Add SHA-256 hash to packages.json entries (#2455) 2022-05-02 22:09:14 -06:00
Gyeongjae Choi 60d530801e
ENH Remove hard coded paths in `pyodide_build` (#2351)
We are pushing pyodide_build to PyPI as a Python package, but for now, 
installing pyodide_build from PyPI (i.e. pip install pyodide_build`) is almost 
useless because:

    there are bunch of hard-coded paths (e.g. Path(__file__).parents[2]),
    its dependencies are not specified in setup.cfg.

This PR is for mitigating this situation by removing hard-coded paths and
adding tests, and is also a preparation for our new CLI 
(https://github.com/pyodide/pyodide/issues/1977).
2022-04-09 13:41:10 -07:00
Henry Schreiner 8385df36a4
tests: enabling mypy on untyped defs (#2204) 2022-02-23 17:10:53 -05:00
Henry Schreiner 66856a7427
MAINT isort (#2200) 2022-02-21 23:27:03 +01:00
Hood Chatham 8323987b39
Use wheels instead of file_packager (#2027) 2022-01-23 17:47:04 -08:00
Hood Chatham f44f7b3dfe
ENH improvements to pyodide-build (#2069) 2021-12-31 09:29:36 -08:00
Hood Chatham 418813de33
MAINT Split CI build-packages step in two (#2017)
Split build packages into a step for everything up to and including numpy and a second step for numpy and its dependencies.
Intended to prevent timeouts.
2021-12-05 12:34:09 -08:00
Roman Yurchak ab53f6b06c
ENH Change to minimal build by default (#1804) 2021-09-02 22:19:23 +02:00
Roman Yurchak b455d6a6fb
Toward a conda compatible packages.json (#1700) 2021-07-24 09:22:46 -07:00
Roman Yurchak 4e9d10833e
BLD Create an installable pyodide-build package (#1566) 2021-05-03 20:51:11 +02:00