Skip to content

Refine CI install and test checks#172

Merged
eggpig merged 2 commits into
pybind11from
fix/ci-pytest-and-smoke
Jun 7, 2026
Merged

Refine CI install and test checks#172
eggpig merged 2 commits into
pybind11from
fix/ci-pytest-and-smoke

Conversation

@eggpig
Copy link
Copy Markdown
Collaborator

@eggpig eggpig commented Jun 7, 2026

Summary

  • run the existing EasyGraph pytest suite only for pull requests and pushes targeting pybind11
  • make the cross-platform PR code review job validate pip install plus a minimal EasyGraph graph smoke test
  • replace the broken python tests/test.py command, since tests/test.py does not exist
  • make the CMake/pybind11 build use the active Python interpreter so pip install produces a usable cpp_easygraph extension for that Python version
  • run pre-commit only on changed files in CI, so historical formatting debt no longer blocks unrelated PRs
  • update checkout/setup-python actions in the affected workflows

Test layout notes

  • The main EasyGraph pytest suite currently has 87 Python test files under easygraph.
  • pytest.ini collects **/tests/test_.py, so the C++ community cpp__test.py files are not part of the main pytest run.
  • The cpp_easygraph/pybind11/tests tree belongs to the pybind11 submodule and should not be mixed into EasyGraph's normal CI.

Verification

  • YAML parsed successfully for .github/workflows/test.yaml, .github/workflows/pr_code_check.yaml, and .github/workflows/pre-commit.yaml
  • git diff --check
  • clean worktree with submodules: pip install requirements, pip install EasyGraph, then import EasyGraph from /tmp and build a minimal graph
  • verified the installed extension uses the active Python ABI tag: cpp_easygraph.cpython-39-darwin.so in the local Python 3.9 venv

Follow-up

This PR fixes CI structure, the broken cross-platform test command, the pre-commit all-files blocker, and a pip install/import packaging issue exposed by the new smoke test. The full pytest workflow can only turn green after the current baseline pytest failures are resolved.

@eggpig
Copy link
Copy Markdown
Collaborator Author

eggpig commented Jun 7, 2026

Latest CI status after the workflow updates:

  • pre-commit now passes with changed-files checking.
  • PR code review build/install/smoke passes on all six platform/Python jobs:
    • Windows 3.9 / 3.12
    • macOS 3.9 / 3.12
    • Ubuntu 3.9 / 3.12
  • Full pytest is now running and failing on real baseline test failures, not on the old missing tests/test.py workflow error.

Current pytest failure groups:

  1. easygraph/functions/drawing/tests/test_geometry.py::TestGeometryUtils::test_common_tangent_radian_invalid

    • common_tangent_radian(5, 1, 2) does not raise ValueError.
  2. easygraph/functions/structural_holes/tests/test_NOBE.py empty-graph cases

    • NOBE_SH / NOBE_GA_SH index into an empty embedding result before raising the expected ValueError.
  3. easygraph/readwrite/tests/test_gexf.py and easygraph/readwrite/tests/test_graphml.py

    • NumPy 2.0 removed np.float_; readwrite type mapping still references np.float_.
  4. easygraph/tests/test_hif.py::HIFTest::test_hif_roundtrip_preservation

    • hif_to_hypergraph currently stores attrs['name'] such as Node A / Node B as v_property name, while the test expects HIF node IDs n1 / n2.

I am leaving these as follow-up product/test fixes rather than mixing them into this CI workflow PR, because they touch multiple EasyGraph functional areas.

@eggpig eggpig merged commit 971a8d6 into pybind11 Jun 7, 2026
7 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant