Add GitHub Copilot instructions for ZnTrack repository
This PR adds comprehensive GitHub Copilot coding agent instructions to help developers work effectively in the ZnTrack codebase. The instructions are stored in .github/copilot-instructions.md and provide detailed guidance for:
Key Features
Setup and Bootstrap
- Complete dependency installation using
uvpackage manager - Git configuration requirements for DVC operations
- Environment validation steps
Build and Test Commands
- All test categories with measured timing expectations
- Explicit timeout recommendations with "NEVER CANCEL" warnings
- Linting and formatting validation steps
Validation Scenarios
- End-to-end workflow testing for code changes
- Core functionality validation script
- CLI command verification
Development Workflow
- Step-by-step process for making changes
- Pre-commit validation requirements
- Common troubleshooting guidance
Measured Timing Expectations
The instructions include actual measured times for all operations:
- Dependency installation: 2-5 minutes
- Unit test suite: ~45 seconds (65 tests)
- Integration tests: 3-5 minutes total
- Linting: <1 second
- CLI commands: <3 seconds
Validation
All instructions have been thoroughly tested and validated to ensure they work correctly for a fresh repository clone. The instructions follow the imperative tone requirement and include comprehensive coverage of the ZnTrack workflow system built on DVC.
Example validation workflow included:
# Initialize git (required for DVC)
git init
git config user.name "Test User"
git config user.email "[email protected]"
# Test basic ZnTrack functionality
uv run python -c "
import zntrack
from zntrack.examples import ParamsToOuts
with zntrack.Project() as project:
node = ParamsToOuts(params='Hello')
project.build()
print('✓ ZnTrack workflow completed')
"
Fixes #942.
[!WARNING]
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
analytics.dvc.org
- Triggering command:
/home/REDACTED/work/ZnTrack/ZnTrack/.venv/bin/python /home/REDACTED/work/ZnTrack/ZnTrack/.venv/lib/python3.11/site-packages/dvc/__main__.py daemon analytics /tmp/tmpbezplzlq(dns block)- Triggering command:
/home/REDACTED/work/ZnTrack/ZnTrack/.venv/bin/python /home/REDACTED/work/ZnTrack/ZnTrack/.venv/lib/python3.11/site-packages/dvc/__main__.py daemon analytics /tmp/tmp_jsqfqcg(dns block)- Triggering command:
/home/REDACTED/work/ZnTrack/ZnTrack/.venv/bin/python /home/REDACTED/work/ZnTrack/ZnTrack/.venv/lib/python3.11/site-packages/dvc/__main__.py daemon analytics /tmp/tmpvfvxplke(dns block)If you need me to access, download, or install something from one of these locations, you can either:
- Configure Actions setup steps to set up my environment, which run before the firewall is enabled
- Add the appropriate URLs or hosts to the custom allowlist in this repository's Copilot coding agent settings (admins only)
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.