Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Emscripten build and test on GitHub Actions #1026

Draft
wants to merge 10 commits into
base: main
Choose a base branch
from
Draft

Conversation

lobis
Copy link
Collaborator

@lobis lobis commented Nov 15, 2023

Based on https://pyodide.org/en/stable/development/building-and-testing-packages.html and https://github.com/numpy/numpy/blob/main/.github/workflows/emscripten.yml.

(Currently doesn't work since awkward-cpp is not available in the right version but it'll be fixed soon).

This action will build the uproot wheel and run the tests using nodejs.

I will label and skip those tests that don't make sense to run on the browser (local files, etc.).

@lobis lobis mentioned this pull request Nov 15, 2023
@agoose77
Copy link
Collaborator

@lobis you can use the WASM artefact for awkward-cpp from our release workflow to test the CI: https://github.com/scikit-hep/awkward/actions/runs/6894740990

This won't last for ever (I suspect 30 days is the limit on our artefact caching atm).

git clone https://github.com/scikit-hep/awkward.git
cd awkward
git checkout main
git submodule update --init --recursive
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
git submodule update --init --recursive
git submodule update --init --recursive
pipx run nox -s prepare -- --headers --signatures --tests

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

n.b. you'll still need awkward's C++ components too

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My initial goal was to test the build (only uproot) and run the tests. However the uproot build will only work if the dependencies (awkward) are available, and there is a significant delay between the publication in pypi and it's availability from pyodide, this means that this CI will fail for a while whenever there is a release that modifies dependencies.

To test the CI job I though of building the awkward (and awkward-cpp) wheel in this CI job (in particular the version of awkward listed in pyproject.toml).

I am having some troubles understanding the necessary steps though.

Co-authored-by: Angus Hollands <goosey15@gmail.com>
@jpivarski
Copy link
Member

The new docs/readthedocs.org:uproot test requirement can be satisfied by merging #1084/jpivarski/fix-readthedocs-documentation into this PR (or by merging in main, which has it).

* origin/main: (41 commits)
  chore: hatch-vcs generates 'version.py'; add it to .gitignore
  docs: add bnavigator as a contributor for test (#1087)
  feat: support for writing hist derived profiles (#1000)
  feat: add the ability to read RNTuple alias columns (#1004)
  chore: update pre-commit hooks (#1082)
  docs: fix ReadTheDocs documentation (#1084)
  chore: update pre-commit hooks (#1073)
  chore(deps): bump actions/upload-artifact from 3 to 4 (#1071)
  chore(deps): bump actions/download-artifact from 3 to 4 (#1072)
  build: change build to autogen version info (#1062)
  chore: remove src/uproot/version.py (for #1062).
  The next release will be 5.2.1.
  add known_base_form option so that opening root files can be avoided for mature analyses (#1077)
  test: fsspec cache (#1075)
  test: xrootd server fixture (#1076)
  The next release will be 5.2.0.
  fix: correct typo in fsspec globbing (#1067)
  chore(deps): bump actions/setup-python from 4 to 5 (#1059)
  The next release will be 5.2.0rc5.
  fix: dask distributed fsspec issue (#1065)
  ...
git checkout main
git submodule update --init --recursive
pipx run nox -s prepare -- --headers --signatures --tests
pyodide build
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pyodide build only builds the pure-Python component, not the C++ build.

@jpivarski jpivarski added the inactive A pull request that hasn't been touched in a long time label Mar 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
inactive A pull request that hasn't been touched in a long time
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants