Skip to content

Windows: git clone fails because HELM test fixture directories contain ":" (invalid NTFS character) #200

Description

@Mandark-droid

Problem

git clone of this repository fails on Windows:

error: invalid path 'tests/data/helm/commonsense:dataset=hellaswag,method=multiple_choice_joint,model=eleutherai_pythia-1b-v0/per_instance_stats.json'
fatal: unable to checkout working tree

The HELM test fixtures use HELM's run-spec names as directory names, and those contain :, which is an illegal character in Windows filenames (NTFS reserves it for alternate data streams). Git for Windows refuses to create these paths (and with the default core.protectNTFS=true, refuses to even stage them in the index), so Windows contributors cannot clone or check out the repo at all.

Affected paths (everything under tests/data/helm/):

  • tests/data/helm/commonsense:dataset=hellaswag,method=multiple_choice_joint,model=eleutherai_pythia-1b-v0/
  • tests/data/helm/mmlu:subject=philosophy,method=multiple_choice_joint,model=openai_gpt2/
  • tests/data/helm/narrative_qa:model=openai_gpt2/

Proposed fix

Rename the fixture directories to replace : with a Windows-safe character (e.g. _), and update the corresponding path strings in tests/test_helm_instance_level_adapter.py. The HELM adapter itself reads run_spec.json from inside each run directory rather than parsing the directory name, so nothing at runtime depends on the colon being present — real HELM output directories on users' machines are unaffected.

Optionally, a small CI check (or pre-commit hook) rejecting committed paths with characters invalid on Windows (: * ? " < > |) would prevent regressions.

I'm happy to submit a PR for this.

Workaround for Windows users meanwhile

git clone --no-checkout https://github.com/evaleval/every_eval_ever.git
cd every_eval_ever
git config core.protectNTFS false
git sparse-checkout set --no-cone '/*' '!/tests/data/helm/'
git checkout main

This checks out everything except the colon-named fixtures (the HELM adapter tests that need them can then only run on Linux/macOS, e.g. in CI).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions