gpu-dev 0.7.14__tar.gz → 0.7.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/PKG-INFO +1 -1
  2. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/cli.py +8 -1
  3. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/gpu_dev.egg-info/PKG-INFO +1 -1
  4. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/pyproject.toml +1 -1
  5. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_repro.py +14 -0
  6. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/.github/workflows/no-gitlinks.yml +0 -0
  7. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/.github/workflows/publish.yml +0 -0
  8. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/.github/workflows/tests.yml +0 -0
  9. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/.gitignore +0 -0
  10. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/CLAUDE.md +0 -0
  11. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/README.md +0 -0
  12. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/admin/README.md +0 -0
  13. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/admin/generate_stats.py +0 -0
  14. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/admin/requirements.txt +0 -0
  15. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/README.md +0 -0
  16. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/ZERO_CONFIG_SETUP.md +0 -0
  17. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/__init__.py +0 -0
  18. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/auth.py +0 -0
  19. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/config.py +0 -0
  20. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/disks.py +0 -0
  21. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/interactive.py +0 -0
  22. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/name_generator.py +0 -0
  23. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/reservations.py +0 -0
  24. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/gpu_dev_cli/ssh_proxy.py +0 -0
  25. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/gpu-dev-cli/minimal-iam-policy.json +0 -0
  26. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/cli-tools/scripts/clear_stale_disk_locks.py +0 -0
  27. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/conftest.py +0 -0
  28. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/FAST_REPRO_DESIGN.md +0 -0
  29. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/GPU_DEV_SUBMIT.md +0 -0
  30. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/SDK_REPRO.md +0 -0
  31. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/USER_GUIDE.md +0 -0
  32. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/devgpu-features.html +0 -0
  33. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/docker-mark-blue.svg +0 -0
  34. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/docs/icons8-cursor-ai.svg +0 -0
  35. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/gpu_dev.egg-info/SOURCES.txt +0 -0
  36. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/gpu_dev.egg-info/dependency_links.txt +0 -0
  37. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/gpu_dev.egg-info/entry_points.txt +0 -0
  38. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/gpu_dev.egg-info/requires.txt +0 -0
  39. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/gpu_dev.egg-info/top_level.txt +0 -0
  40. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/post-may-2026.md +0 -0
  41. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/CLAUDE.md +0 -0
  42. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/architecture.html +0 -0
  43. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/cli-demo.html +0 -0
  44. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/devgpu-features.html +0 -0
  45. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/docker-mark-blue.svg +0 -0
  46. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/feedback.png +0 -0
  47. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/gpu-fleet.html +0 -0
  48. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/icons8-cursor-ai.svg +0 -0
  49. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/index.html +0 -0
  50. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/k8s-under-the-hood.html +0 -0
  51. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/multinode.html +0 -0
  52. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/osdc-future-plans.html +0 -0
  53. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/problem.png +0 -0
  54. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/pyproject.toml +0 -0
  55. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/sandbox.html +0 -0
  56. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/sdk-demo.html +0 -0
  57. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/teaser.html +0 -0
  58. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/thesis.html +0 -0
  59. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/title-vid.mp4 +0 -0
  60. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/weneedgpus.png +0 -0
  61. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/presentation/wow.html +0 -0
  62. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/README.md +0 -0
  63. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/examples/batch_multi_gpu.py +0 -0
  64. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/examples/interactive_debug.py +0 -0
  65. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/examples/parallel_experiments.ipynb +0 -0
  66. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/examples/quickstart.ipynb +0 -0
  67. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/examples/run_tests.py +0 -0
  68. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/examples/submit_job.py +0 -0
  69. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/__init__.py +0 -0
  70. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_async/__init__.py +0 -0
  71. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_backend/__init__.py +0 -0
  72. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_backend/aws.py +0 -0
  73. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_backend/protocol.py +0 -0
  74. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_sync/__init__.py +0 -0
  75. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_sync/client.py +0 -0
  76. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_sync/sandbox.py +0 -0
  77. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_transport/__init__.py +0 -0
  78. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/_transport/ssh.py +0 -0
  79. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/common/__init__.py +0 -0
  80. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/common/config.py +0 -0
  81. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/common/enums.py +0 -0
  82. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/common/errors.py +0 -0
  83. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/common/models.py +0 -0
  84. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/src/gpu_dev/py.typed +0 -0
  85. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/sdk/python/tests/test_models.py +0 -0
  86. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/setup.cfg +0 -0
  87. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-deck/backend.tf +0 -0
  88. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-deck/main.tf +0 -0
  89. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-deck/terraform.tfvars.example +0 -0
  90. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/.claude/skills/deploy.md +0 -0
  91. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/.terraform.lock.hcl +0 -0
  92. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/README.md +0 -0
  93. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/alb.tf +0 -0
  94. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ami-baker.tf +0 -0
  95. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/availability.tf +0 -0
  96. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/backend.tf +0 -0
  97. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/build-node.tf +0 -0
  98. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/check_b200.py +0 -0
  99. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/cluster-autoscaler.tf +0 -0
  100. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/cmd_proxy.py +0 -0
  101. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/.dockerignore +0 -0
  102. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/Dockerfile +0 -0
  103. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/backup-dotfiles +0 -0
  104. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/bash_profile +0 -0
  105. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/bashrc +0 -0
  106. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/bashrc_ext +0 -0
  107. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/build-with-efa.sh +0 -0
  108. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/dotfiles-shutdown-handler +0 -0
  109. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/list-dotfile-versions +0 -0
  110. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/motd_script +0 -0
  111. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/nproc_wrapper +0 -0
  112. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/profile +0 -0
  113. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/restore-dotfiles +0 -0
  114. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/restore-dotfiles-version +0 -0
  115. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/setup-dotfiles-persistence +0 -0
  116. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/shell_env +0 -0
  117. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/ssh_config +0 -0
  118. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/zprofile +0 -0
  119. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/zshrc +0 -0
  120. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker/zshrc_ext +0 -0
  121. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker-build.tf +0 -0
  122. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker-example/Dockerfile +0 -0
  123. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/docker-example/hello.txt +0 -0
  124. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ecr.tf +0 -0
  125. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/efs.tf +0 -0
  126. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/eks.tf +0 -0
  127. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/expiry.tf +0 -0
  128. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/git-cache.tf +0 -0
  129. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/gpu-dev-pod-irsa.tf +0 -0
  130. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/kubernetes.tf +0 -0
  131. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/availability_updater/index.py +0 -0
  132. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/availability_updater/requirements.txt +0 -0
  133. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/migration/tag_largest_snapshots.py +0 -0
  134. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/reservation_expiry/index.py +0 -0
  135. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/reservation_expiry/requirements.txt +0 -0
  136. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/reservation_processor/buildkit_job.py +0 -0
  137. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/reservation_processor/index.py +0 -0
  138. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/reservation_processor/requirements.txt +0 -0
  139. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/__init__.py +0 -0
  140. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/alb_utils.py +0 -0
  141. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/dns_utils.py +0 -0
  142. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/k8s_client.py +0 -0
  143. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/k8s_resource_tracker.py +0 -0
  144. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/requirements.txt +0 -0
  145. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda/shared/snapshot_utils.py +0 -0
  146. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/lambda.tf +0 -0
  147. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/list_b200.py +0 -0
  148. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/main.tf +0 -0
  149. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/mig-config.tf +0 -0
  150. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/mig-parted-config.yaml +0 -0
  151. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/migrations/backfill_snapshot_contents.py +0 -0
  152. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/migrations/backfill_snapshot_contents.py.bak +0 -0
  153. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/migrations/check_snapshots.py +0 -0
  154. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/migrations/migrate_disks_to_named.py +0 -0
  155. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/migrations/run_backfill.sh +0 -0
  156. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/monitoring.tf +0 -0
  157. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/node-termination-handler.tf +0 -0
  158. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/outputs.tf +0 -0
  159. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/pyproject.toml +0 -0
  160. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/pytorch-ondemand.tf +0 -0
  161. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/pytorch-prebuild.tf +0 -0
  162. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/queue.tf +0 -0
  163. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/route53.tf +0 -0
  164. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/s3-disk-contents.tf +0 -0
  165. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/scripts/CLEANUP_GUIDE.md +0 -0
  166. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/scripts/detect_empty_volumes.sh +0 -0
  167. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/scripts/ec2_avail_probe.sh +0 -0
  168. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/scripts/inspect_user_data.sh +0 -0
  169. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ssh-proxy/Dockerfile +0 -0
  170. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ssh-proxy/proxy.py +0 -0
  171. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ssh-proxy/requirements.txt +0 -0
  172. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ssh-proxy-service.tf +0 -0
  173. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/ssh-proxy.tf +0 -0
  174. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/subnet-0fe3a2c45570091ad +0 -0
  175. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/switch-to.sh +0 -0
  176. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/templates/al2023-cpu-user-data.sh +0 -0
  177. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/templates/al2023-user-data.sh +0 -0
  178. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/templates/ami-baker-user-data.sh +0 -0
  179. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/templates/user-data-self-managed.sh +0 -0
  180. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/templates/user-data.sh +0 -0
  181. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/variables.tf +0 -0
  182. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/terraform-gpu-devservers/warm-pool.tf +0 -0
  183. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/__init__.py +0 -0
  184. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/README.md +0 -0
  185. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/__init__.py +0 -0
  186. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/conftest.py +0 -0
  187. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/test_claude.py +0 -0
  188. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/test_cpu_lifecycle.py +0 -0
  189. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/test_repro_known_failure.py +0 -0
  190. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/test_t4_lifecycle.py +0 -0
  191. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/integration/test_warm_pool.py +0 -0
  192. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/submit/README.md +0 -0
  193. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/submit/fail/run.sh +0 -0
  194. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/submit/multinode/run.sh +0 -0
  195. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/submit/success/run.sh +0 -0
  196. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/__init__.py +0 -0
  197. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/__init__.py +0 -0
  198. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_auth.py +0 -0
  199. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_avail.py +0 -0
  200. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_cancel.py +0 -0
  201. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_config_cmd.py +0 -0
  202. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_config_module.py +0 -0
  203. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_connect.py +0 -0
  204. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_debug.py +0 -0
  205. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_disks.py +0 -0
  206. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_edit.py +0 -0
  207. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_interactive.py +0 -0
  208. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_list_show.py +0 -0
  209. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_name_generator.py +0 -0
  210. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_reservations_mgr.py +0 -0
  211. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_reserve.py +0 -0
  212. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_smoke.py +0 -0
  213. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_ssh_alias.py +0 -0
  214. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/cli/test_submit.py +0 -0
  215. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/__init__.py +0 -0
  216. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_availability.py +0 -0
  217. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_cancellation.py +0 -0
  218. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_claim.py +0 -0
  219. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_dead_pod_cleanup.py +0 -0
  220. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_finalize_no_ssh.py +0 -0
  221. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_get_logs.py +0 -0
  222. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_mig_gpu_config.py +0 -0
  223. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_pod_resources.py +0 -0
  224. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_ref_staging.py +0 -0
  225. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_smoke.py +0 -0
  226. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_version_gate.py +0 -0
  227. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/lambda_fn/test_warm_pool.py +0 -0
  228. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/__init__.py +0 -0
  229. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_backend_aws.py +0 -0
  230. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_client.py +0 -0
  231. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_errors_enums.py +0 -0
  232. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_models_extra.py +0 -0
  233. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_sandbox.py +0 -0
  234. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_sdk_config.py +0 -0
  235. {gpu_dev-0.7.14 → gpu_dev-0.7.15}/tests/unit/sdk/test_transport_ssh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gpu-dev
3
- Version: 0.7.14
3
+ Version: 0.7.15
4
4
  Summary: CLI + Python SDK for PyTorch GPU developer server reservations
5
5
  Author: PyTorch Team
6
6
  Requires-Python: >=3.10
@@ -1748,9 +1748,16 @@ def repro(ctx, ref, test_args, lint, clang, gpu_type, gpus, hours, no_connect, k
1748
1748
  ssh_cmd = ssh_cmd.replace("ssh ", "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR ", 1)
1749
1749
  rprint(f"[dim]→ {ssh_cmd}[/dim]\n")
1750
1750
  rid8 = str(rid)[:8]
1751
+ # lintrunner only renders its live progress bar to a TTY -> run lint over an SSH
1752
+ # PTY (-t) so you see per-linter progress instead of silence. (-t is polite: in a
1753
+ # non-TTY CI run it just proceeds without a PTY.)
1754
+ run_ssh = ssh_cmd.replace("ssh ", "ssh -t ", 1) if lint else ssh_cmd
1755
+ if lint and "--all-files" in (scope or ""):
1756
+ rprint("[yellow]note:[/yellow] full-tree lint (ruff/mypy/pyrefly over ALL files) — several minutes. "
1757
+ "Lint a PR (gpu-dev repro --lint pr/N) for a fast diff-only run.\n")
1751
1758
  rc = 1
1752
1759
  try:
1753
- rc = subprocess.run(f"{ssh_cmd} {shlex.quote(remote)}", shell=True).returncode
1760
+ rc = subprocess.run(f"{run_ssh} {shlex.quote(remote)}", shell=True).returncode
1754
1761
  except KeyboardInterrupt:
1755
1762
  rprint("\n[yellow]interrupted[/yellow]"); rc = 130
1756
1763
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gpu-dev
3
- Version: 0.7.14
3
+ Version: 0.7.15
4
4
  Summary: CLI + Python SDK for PyTorch GPU developer server reservations
5
5
  Author: PyTorch Team
6
6
  Requires-Python: >=3.10
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "gpu-dev"
7
- version = "0.7.14"
7
+ version = "0.7.15"
8
8
  description = "CLI + Python SDK for PyTorch GPU developer server reservations"
9
9
  authors = [{name = "PyTorch Team"}]
10
10
  readme = "cli-tools/gpu-dev-cli/README.md"
@@ -488,6 +488,20 @@ def test_lint_passes_extra_args_as_scope(cli_runner):
488
488
  assert "--merge-base-with" not in cmd
489
489
 
490
490
 
491
+ def test_lint_run_uses_pty_for_progress(cli_runner):
492
+ # lint runs over an SSH PTY (-t) so lintrunner renders its live progress bar.
493
+ res, rm, run = _run(cli_runner, ["--lint", "pr/1"], claim_result=WARM)
494
+ cmd = _remote_str(run)
495
+ assert "ssh -t " in cmd
496
+
497
+
498
+ def test_test_run_has_no_pty(cli_runner):
499
+ # the python-test path must NOT allocate a PTY for the run.
500
+ res, rm, run = _run(cli_runner, ["pr/1", "test/foo.py"], claim_result=WARM)
501
+ cmd = _remote_str(run)
502
+ assert "ssh -t " not in cmd
503
+
504
+
491
505
  def test_lint_explicit_cpu_arm_keeps_zero_gpus(cli_runner):
492
506
  res, rm, run = _run(cli_runner, ["--lint", "--gpu-type", "cpu-arm", "pr/1"], claim_result=WARM)
493
507
  kwargs = rm.claim_direct.call_args.kwargs
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes