Commit Graph

381 Commits

Author SHA1 Message Date
Gyeongjae Choi d24d656f0f
MAINT Reduce CI failures (#2409) 2022-04-20 09:50:33 +02:00
Gyeongjae Choi 6900afdc5b
PKG Add opencv-python, ffmpeg and libwebp (#2305)
* Add opencv-python

* Update comment

* Add JPEG, PNG, WEBP, ZLIB support

* Add tests for image processing

* Add more core modules

* Disable opencl

* Replace lena with baboon and add more tests

* Add file system support

* Add ffmpeg

* Add more tests

* Disable pthread in ffmpeg

* Disable canonical input processing mode in node test

* Update changelog

* Remove import test

* Allow more time in the first test

* Split out libwebp

* Fix node test

* Use a seperate CI job for opencv-python

* Fix generator

* Update changelog

* Remove protobuf package

* Try to fix CI workspace conflict

* Fix CI

* Use another CI job for generating unified packages.json

* Try to fix CI

* Fix CI again

* Disable verbose build

* Prevent from building opencv-python twice

* Persist only build artifacts

* Sepearate Cmake args into a script

* Try to reuse build packages job

* Fix CI

* Fix typo

* Fix merge conflict

* Use large resource class for package build

* Do not upload unwanted artifacts

* Do not upload unwanted artifacts
2022-04-19 09:24:47 +09:00
Gyeongjae Choi a95a27e754
DOC Remove dummy packages from docs (#2358) 2022-04-14 06:22:07 -07:00
Frank 1c14950b1a
Enable python_solvespace (#2389) 2022-04-12 07:35:01 -07:00
Hood Chatham 50af355e8c
Rename 'build' directory to 'dist' (#2387)
dist is both more accurate (the 'build' directory is normally where you do the build,
and normally consists of intermediate build artifacts no one cares about). dist also
occurs less frequently in the code base: after this change \bbuild\b has 466 matches,
whereas \bdist\b has 101 matches. build has 1072 matches whereas dist has 362.
2022-04-11 16:01:40 -07: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
Hood Chatham 66fe7ede18
Update scipy to v1.8.0 (#2361) 2022-04-08 18:43:30 -07:00
Hood Chatham 70633aba7a
xfail statsmodels in chrome (#2377) 2022-04-08 18:42:45 -07:00
Henry Schreiner da7a3f55c1
chore: some pacage updates (#2375) 2022-04-08 14:19:10 -07:00
Hood Chatham fe893b3165
Update pandas to v1.4.2 (#2370) 2022-04-08 12:06:38 -07:00
Hood Chatham 0c4470b6ef
Update cryptography to v3.4.8 (#2372) 2022-04-08 10:20:29 -07:00
Hood Chatham 69aab0b3a8
Update Pillow to v9.1.0 (#2362) 2022-04-08 08:35:22 -07:00
Gyeongjae Choi bd8f8c094d
TST Enable some skipped or xfailed tests (#2368) 2022-04-08 15:54:29 +02:00
Hood Chatham 23662b2772
More package updates (#2369) 2022-04-08 15:53:24 +02:00
Hood Chatham c477ca623a
Update statsmodels to v0.13.2 (#2366) 2022-04-07 18:34:42 -07:00
Hood Chatham 8e3cc8f3e6
Update scikit-image to v0.19.2 (#2367) 2022-04-07 18:34:27 -07:00
Hood Chatham f748f122bd
Update zarr to v2.11.3 (#2365) 2022-04-08 09:46:15 +09:00
Hood Chatham dc6e0ef72a
Update python-sat to 0.1.7.dev16 (#2364) 2022-04-08 09:44:36 +09:00
Hood Chatham 58b6fed5ac
Update nltk to v3.7 (#2363) 2022-04-08 09:42:14 +09:00
Hood Chatham df3a92882b
Run make -C packages update-all (#2355) 2022-04-06 21:02:21 -07:00
Hood Chatham 73a5b29a6e
Fix scipy import failure #2338 (#2348) 2022-04-06 08:12:06 -07:00
Hood Chatham 513919e6cf
Fix matplotlib event listeners (#2335) 2022-04-06 08:11:04 -07:00
Hood Chatham b12399c9ae
Add lazy-object-proxy (#2320)
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
2022-04-02 14:07:50 +02:00
Henry Schreiner 93dc922f46
chore: Python 3.10 pyupgrade (#2342)
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
2022-04-02 00:36:55 +02:00
Hood Chatham a54b1b4bd8
Update numpy to v1.22.3 (#2337) 2022-04-01 22:00:47 +02:00
Henry Schreiner 6f62a89d86
fix: better mypy coverage (#2339) 2022-04-01 21:58:54 +02:00
Hood Chatham 389f8ff1d2
Update openssl to 1.1.1n (#2334)
Update says: 'Security Advisory: one high severity fix' so probably
a good idea to include it.
2022-03-31 20:40:12 -07:00
Hood Chatham 22fab55b04
MAINT Bump zlib version (#2327)
Apparently zlib v1.2.11 had an out of bounds memory access bug so
they yanked it. This bumps the version and gets the build working
again.
2022-03-28 18:17:25 -07:00
Hood Chatham 818dfe4a5b
Remove pyodide-interrupts (#2309) 2022-03-24 12:58:04 -07:00
Hood Chatham e865b77040
Fix scipy linking errors (#2289)
With newer versions of emscripten, linker errors surface eariler.
This makes it easier to find function pointer cast errors without
having to execute the bad code path -- the errors happen when the
wasm modules are linked (at load time in the browser)

Anyways, this fixes more linker errors. Mostly the problems have
to do with LAPACK functions that take string arguments. Most
LAPACK functions that take string arguments use them as enums and
only care about the first character of the string. Because of the
way that f2c works, we need to replace these strings with the ascii
code of the first character so we should replace:

sTRSV( 'UPPER', 'NOTRANS', 'NONUNIT', J, H, LDH, Y, 1 )
==>
CALL sTRSV( 85, 78, 78, J, H, LDH, Y, 1 )

where 85 and 78 are the ascii codes of U and N. Various character
variables are subbed into being integer variables. The two
functions `ilaenv` and `xerbla` expect actual C strings as an
argument, but it is very annoying to produce C strings so instead
I added wrapper functions ilaenvf2c and xerblaf2c to clapack and
instead of calling ilaenv and xerbla we call the f2c versions.
2022-03-23 23:17:29 -07:00
Hood Chatham f4f013a405
Disable python_solvespace due to CI failures (#2308) 2022-03-23 20:25:30 -07:00
Frank 0a2b307cc2
PKG Add python-solvespace (#2287)
python-solvespace is a python library from the geometric constraints
solver of SolveSpace, open source CAD software.
2022-03-22 21:52:43 -07:00
Hood Chatham bfcc58b6e2
Update new package docs and add more detailed meta.yaml validation (#2297) 2022-03-22 12:03:45 -07:00
Hood Chatham eabfa8101e
Use pypa/build (#2272)
This resolves #2189.

> build isolation would be a bit difficult to use in our case, as for instance
> when building scipy we need the patched numpy on the host and not the numpy
> version specified in pyproject.toml (which would be unpatched)

This is indeed the case, certain packages cannot be isolated. My strategy is to
make a list of packages that shouldn't be isolated and add symlinks from the
isolated build environment into the `.artifacts` directory to "unisolate" them.
Then we remove the unisolated package requirements from the list of packages to
install, in case pesky constraints aren't satisfied. In particular, packages
that expect to be used with `pypa/build` often feel free to put very specific
constraints on their build dependencies (often asking them to be == to a
particular version). Specific version constraints is good for build
reproducibility and with build isolation doesn't cost anything. So we just
ignore the constraints. Hopefully nothing goes wrong.

In particular, any package that does stuff both at build time and at runtime and
requires synchronization between the build time and run time environments needs
the unisolation. This includes cffi with `_cffi_backend.so`, and of course numpy
and scipy. pycparser needs to be unisolated because it is a dependency of cffi.

Currently I have also unisolated pythran and cython, though these are build time
only tools and do not really need to be unisolated. Cython I unisolated
specifically because numcodecs needs it but it isn't in the numcodecs build
dependencies. Pythran I unisolated because of a problem with the scipy build
which I don't fully understand (some problem with long double feature
detection).
2022-03-21 22:05:30 -07:00
Hood Chatham 0e1e2ac01c
Python 3.10 (#2225) 2022-03-17 15:48:56 -07:00
Gyeongjae Choi b6555fb6b8
Move making archive of shared libraries to buildpkg (#2279)
Moves the logic of generating zip archive of a shared library from 
`buildall` to `buildpkg` so that thread-unsafe `shutil.make_archive` 
won't bother us anymore.
2022-03-16 08:00:11 -07:00
Gyeongjae Choi 63442defbc
Use uppercase for the package Pillow (#2278) 2022-03-16 07:54:16 -07:00
Gyeongjae Choi 5bd042f6f7
Refactor matplotlib tests (#2271)
* Fix dangling webdriver

* Embed humor sans font

* Refactor matplotlib testing codes

* Trigger CI

* Trigger CI

* Catch error when import from js fails

* Update changelog

* Apply suggestions from the review
2022-03-16 09:39:34 +09:00
Hood Chatham f7b0f8c5cb
No replay (#2256)
Our package build process currently has a significant flaw: we first run setup.py, recording all compilation commands, then we rewrite these compilation commands to invoke emcc and replay them, and then we pray that the cross compiled executables ended up in the right place to go into the wheel. This is not a good strategy because the build script is allowed to implement arbitrary logic, and if it moves, renames, etc any of the output files then we lose track of them. This has repeatedly caused difficulty for us.

However, we also make no particularly significant use of the two pass approach. We can just do the simpler thing: capture the compiler commands as they occur, modify them as needed, and then run the fixed command.

I also added a patch to fix the numpy feature detection for wasm so that we don't have to include _npyconfig.h and config.h, numpy can generate them in the way it would for a native build. I opened a numpy PR that would fix the detection for us upstream:
numpy/numpy#21154

This clears the way for us to switch to using pypa/build (as @henryiii has suggested) by removing our dependence on specific setuptools behavior.

This is on top of #2238.
2022-03-13 11:39:06 -07:00
Hood Chatham 0a9153e7c6
Add cryptography, openssl, and _ssl packages (#2263) 2022-03-11 22:05:36 -08:00
Jo Bovy 3002751887
Update astropy to 5.0.2 (#2268) 2022-03-10 21:14:49 -08:00
Hood Chatham 74e6809da1
Update lxml (#2239) 2022-03-09 21:36:01 -08:00
Hood Chatham c01ab547f0
Better package cross compilation (#2238)
Co-authored-by: Gyeongjae Choi <def6488@gmail.com>
2022-03-09 20:34:25 -08:00
Henry Schreiner 4f8b0a0344
chore: more pre-commit checking (#2257) 2022-03-07 21:51:20 -08:00
Hood Chatham dd70b565f5
Remove numpy decorators patch (#2259) 2022-03-07 21:44:35 -08:00
Henry Schreiner 138c7a7a7c
chore: matplotlib 3.5.1, yt 4 (#2234)
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
2022-03-06 21:14:24 -08:00
Hood Chatham 9feb50bb48
Remove numpy patches work around for chrome 89 bug (#2171) 2022-03-04 16:09:51 -08:00
Hood Chatham 5724bbc05c
MAINT use variables for Python version rather than hardcoding it (#2241)
* As much as possible, use variable for Python version rather than hardcoding it

This should make Python updates easier.
2022-03-03 19:13:58 -08:00
Hood Chatham 913d706090
xfail draw_math_text (#2243) 2022-03-02 14:29:02 -08:00
Jo Bovy 63161b56f5
Fix Astropy: avoid failing top level imports 2022-03-02 07:05:49 -08:00