Skip to content

Overhaul dandi-cli testing matrix with explicit schema_install dimension - #396

Merged
yarikoptic merged 1 commit into
masterfrom
claude/fix-issue-351-8YJdy
Apr 15, 2026
Merged

yarikoptic merged 1 commit into
masterfrom
claude/fix-issue-351-8YJdy

Conversation

@yarikoptic-gitmate

Copy link
Copy Markdown
Collaborator

Summary

  • Introduces a schema_install matrix dimension (client / server / both) to explicitly control where dandischema is installed during dandi-cli integration tests
  • Removes the useless dandi-devel mode (DANDI_DEVEL=1 does not affect dandi-cli tests) along with associated Python 3.10 entries and hdf5 installation steps
  • Keeps vendorized (ember-dandi) testing, paired with schema_install: both

New matrix (9 jobs)

Scenario OSes dandi-cli version Jobs
schema_install: client windows, ubuntu, macos master + release 6
schema_install: server ubuntu master 1
schema_install: both ubuntu master 1
schema_install: both + ember-dandi ubuntu master 1

This matches the desired testing matrix from the issue:

  1. dandischema installed only into client (released and master)
  2. dandischema installed only into server (master only)
  3. dandischema installed into both (both masters)
  4. vendorization setup with "both"

Coverage impact

None — only test-dandi-cli.yml is modified, and it does not report code coverage. The coverage-reporting workflows (test.yml, test-nonetwork.yml) are untouched.

Test plan

  • Verify the workflow YAML parses correctly (validated locally with yaml.safe_load)
  • Confirm schema_install: client jobs skip the Docker build step
  • Confirm schema_install: server jobs skip the dandischema pip install step
  • Confirm schema_install: both jobs run both dandischema install and Docker build
  • Confirm vendorized (ember-dandi) job sets the correct env vars

Closes #351

https://claude.ai/code/session_01RgrGZVVM44FN7LnGhexiB9

Replace the ad-hoc mode-based matrix with a clear `schema_install` dimension
that explicitly controls where dandischema is installed:

- `client`: dandischema installed only into the client (all OSes, released +
  master dandi-cli)
- `server`: dandischema installed only into the server Docker image (Ubuntu,
  master dandi-cli only)
- `both`: dandischema installed into both client and server (Ubuntu, both
  masters)

Additional changes:
- Remove useless `dandi-devel` mode (DANDI_DEVEL=1 does not affect tests)
- Remove associated Python 3.10 entries and hdf5 installation steps
- Keep vendorized (ember-dandi) testing with `schema_install: both`
- Conditionalize "Install dandischema" step on `schema_install != 'server'`
- Conditionalize Docker image build on `schema_install != 'client'`

Closes #351

https://claude.ai/code/session_01RgrGZVVM44FN7LnGhexiB9
@codecov

codecov Bot commented Apr 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.92%. Comparing base (bf5c98e) to head (f80e8f8).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #396   +/-   ##
=======================================
  Coverage   97.92%   97.92%           
=======================================
  Files          18       18           
  Lines        2405     2405           
=======================================
  Hits         2355     2355           
  Misses         50       50           
Flag Coverage Δ
unittests 97.92% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yarikoptic yarikoptic added the tests Add or improve existing tests label Apr 15, 2026
@yarikoptic

Copy link
Copy Markdown
Member

claude:

● Now verified from actual job logs. Here's the full checklist verification:                                                                                                                                                      
                                                                                   
  1. "Verify the workflow YAML parses correctly" -- Confirmed: yaml.safe_load parses without error.                                                                                                                               
                                                                                                                                                                                                                                  
  2. "Confirm schema_install: client jobs skip the Docker build step" -- Confirmed from job logs. Example: job 70937399933 (ubuntu, master, client) shows "Install dandischema into client" = success, "Build dandi-api image" =  
  skipped. Same pattern across all 6 client jobs.                                                                                                                                                                                 
                                                                                                                                                                                                                                  
  3. "Confirm schema_install: server jobs skip the dandischema pip install step" -- Confirmed from job 70937399934 (ubuntu, master, server): "Install dandischema into client" = skipped, "Build dandi-api image" = success.      
  
  4. "Confirm schema_install: both jobs run both dandischema install and Docker build" -- Confirmed from job 70937399935 (ubuntu, master, both): "Install dandischema into client" = success, "Build dandi-api image" = success.  
  Env var steps correctly skipped (non-ember).                    
                                                                                                                                                                                                                                  
  5. "Confirm vendorized (ember-dandi) job sets the correct env vars" -- Confirmed from job 70937399930 (ubuntu, master, both, ember-dandi): "Set DANDI_TESTS_INSTANCE_NAME" = success, "Set DANDI_TESTS_INSTANCE_IDENTIFIER" =   
  success, "Set DANDI_TESTS_DOI_PREFIX" = success. Both install and Docker build also ran.
                                                                                                                                                                                                                                  
  All 5 test plan items verified from actual CI job logs. The PR is green and ready to merge.    

coverage remained the same, CI is green , changes making sense overall, let's proceed

@yarikoptic
yarikoptic merged commit 40df0ac into master Apr 15, 2026
84 checks passed
@yarikoptic
yarikoptic deleted the claude/fix-issue-351-8YJdy branch April 15, 2026 00:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tests Add or improve existing tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Overhaul dandi-cli testing matrix

3 participants