Skip to content

chore/monorepos#244

Open
bwalsh wants to merge 2 commits into
developmentfrom
chore/monorepos
Open

chore/monorepos#244
bwalsh wants to merge 2 commits into
developmentfrom
chore/monorepos

Conversation

@bwalsh

@bwalsh bwalsh commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Description

This PR refactors the monorepos test infrastructure to remove Git LFS dependencies and transition to using git-drs (Data Repository Service) for managing large files. The changes simplify the test setup and execution by eliminating Git LFS installation requirements and replacing Git LFS commands with their git-drs equivalents.

Changes

tests/monorepos/Makefile

  • Added generate-large-fixtures-run to .PHONY target list
  • Updated generate-fixtures-run echo message to clarify it generates a "small set of fixtures"
  • Added new generate-large-fixtures-run target that generates a large dataset (25 TCGA projects with 100 files each in 3 subdirectories)

tests/monorepos/run-test.sh

  • Removed Git LFS dependency checks (~30 lines): Eliminated the section that verified Git LFS installation and provided installation instructions for macOS/Homebrew
  • Updated repository initialization:
    • Changed calypr_admin projects ls to calypr-cli auth --all for project verification
    • Added GIT_LFS_SKIP_SMUDGE=1 flag to initial git clone
    • Replaced git lfs pull with git drs pull
  • Migrated from Git LFS to Git DRS commands:
    • git lfs trackgit drs track
    • git lfs ls-filesgit drs ls-files
    • git lfs push --dry-run calls removed (no longer needed)
    • git lfs status calls removed (no longer needed)
  • Updated git-drs remote configuration: Changed git drs remote add syntax from "$PROFILE" "$PROGRAM/$PROJECT" to origin "$PROGRAM/$PROJECT"
  • Enhanced git-drs initialization: Added --enable-data-client-logs flag to git drs init
  • Improved git config validation: Changed from generic grep search to specific git config --local --get drs.enable-data-client-logs check
  • Bug fixes:
    • Added head -n 1 to file search to handle multiple matches
    • Commented out break statement to enable full test execution across all directories (instead of just testing one directory)

Why

These changes:

  1. Simplify test environment setup by removing Git LFS as a prerequisite
  2. Improve test reliability by using the purpose-built DRS system for large file management
  3. Support monorepo testing with the new generate-large-fixtures-run target for comprehensive testing scenarios
  4. Reduce maintenance burden by removing platform-specific installation logic (Homebrew on macOS)

Testing

The refactored test suite should now:

  • Successfully initialize repositories without requiring Git LFS installation
  • Properly track and manage large files using git-drs
  • Execute complete test cycles across all generated fixture directories
  • Provide better logging and diagnostics with data client logs enabled

Type of change:

  • Refactoring/Infrastructure
  • Bug fix
  • New feature

@bwalsh bwalsh requested a review from matthewpeterkort July 2, 2026 00:25

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 21db2c2e88

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

git drs remote add gen3 "$PROFILE" "$PROGRAM/$PROJECT" --cred "$CREDENTIALS_PATH"
git lfs pull origin main
git drs remote add gen3 origin "$PROGRAM/$PROJECT" --cred "$CREDENTIALS_PATH"
git drs pull origin main

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Drop the branch argument from git drs pull

When --clone is used, this always exits before hydration because git drs pull does not accept the branch argument carried over from git lfs pull; I checked cmd/pull/main.go, which rejects more than one arg, and docs/commands.md documents git drs pull as hydration-only. Since this script has set -e, git drs pull origin main aborts the clone validation path instead of hydrating the pointers.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matthewpeterkort Can you confirm this behavior?

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