Run the upstream HDBSCAN tests in CI#6995
Run the upstream HDBSCAN tests in CI#6995rapids-bot[bot] merged 4 commits intorapidsai:branch-25.08from
Conversation
Without a `pytest.ini`, the upstream tests will use the pytest config for cuml itself (which turns Deprecation/FutureWarning into errors). This can lead to test failures due to things outside our control. This PR adds a small `pytest.ini` to the upstream tests, and changes the pytest invocation so our upstream tests use it. It currently contains the following warning config: - `UnmatchedXfailTests`: error if there's an issue with the xfail list - `FutureWarning` raised by cuml: error if our code warns of a deprecation. - `PytestUnknownMarkWarning`: ignored, our xfail-list plugin creates a bunch of unknown marks, no need to warn about these. Also fixes some annoying UX in the umap/run-tests.sh script where it would `cd` into the directory before executing, meaning any forwarded args (like `--junit-xml`) would have the incorrect relative path.
This adds the HDBSCAN upstream test suite to CI. A few complications: - The upstream `hdbscan` library has seen a lapse in maintenance lately. Thus, the test suite won't run cleanly (or even import) without sklearn < 1.6. Rather than pinning the sklearn version across the upstream test jobs (which would require a new entry in `dependencies.yaml` and changes to the `test_python_common.sh` script), for now we just skip the HDBSCAN tests if that condition isn't met. The oldest deps run will run the HDBSCAN tests, but not the newest deps run. - There are many failures in the HDBSCAN tests, most of which are memory errors. The xfail list here is stable (I've ran it 10s of times to be sure). That said, if you use `pytest-randomly` to shuffle the test order, you'll see a different set of failures. Not great.
|
Hmmm, looks like the memory failures (while consistent on my machine) are different in CI. Two tasks then:
|
|
Looked into this more this morning. There are 3 categories of failures:
Given this, I think we won't be able to run these tests (at least in a required manner) until the memory bugs are fixed. A few options I see for now:
Clearly we have some bugs in our |
|
I very much prefer option 2. Let's get the infrastructure set up and start working on addressing those issues. I don't think running tests in CI that fail beyond xfails is advantageous as it just creates confusion and noise. We should add some smoke tests to |
We can't run these consistently, holding off adding them for now.
|
/merge |
This adds the HDBSCAN upstream test suite to CI.
A few complications:
hdbscanlibrary has seen a lapse in maintenance lately. Thus, the test suite won't run cleanly (or even import) without sklearn < 1.6. Rather than pinning the sklearn version across the upstream test jobs (which would require a new entry independencies.yamland changes to thetest_python_common.shscript), for now we just skip the HDBSCAN tests if that condition isn't met. The oldest deps run will run the HDBSCAN tests, but not the newest deps run.pytest-randomlyto shuffle the test order, you'll see a different set of failures. Not great. I figure it's still worth getting the test infra in place though before taking a look at the underlying memory issues.Currently on top of #6994.
Fixes #6983.