Skip to content

feat: add progress spinner to check, list, and update commands#88

Merged
shreyasmene06 merged 8 commits into
shreyasmene06:mainfrom
swarnimbandekar:feat/progress-spinner-check
May 17, 2026
Merged

feat: add progress spinner to check, list, and update commands#88
shreyasmene06 merged 8 commits into
shreyasmene06:mainfrom
swarnimbandekar:feat/progress-spinner-check

Conversation

@swarnimbandekar
Copy link
Copy Markdown
Contributor

@swarnimbandekar swarnimbandekar commented May 10, 2026

Closes #82

  • Uses rich console.status() spinner during network fetches
  • pyvm check shows spinner while fetching latest version info
  • pyvm list shows spinner while fetching releases
  • pyvm update shows spinner while checking for updates
  • Spinner clears before printing results for clean output
  • Adds 6 tests verifying spinner behavior
image

GSSoC26

- Uses rich console.status() spinner during network fetches
- pyvm check shows spinner while fetching latest version info
- pyvm list shows spinner while fetching releases
- pyvm update shows spinner while checking for updates
- Spinner clears before printing results for clean output
- Adds 6 tests verifying spinner behavior

Closes shreyasmene06#82
…mpatibility

- ✓ → [OK]
- ⚠ → [!]
- 💡 → [*]
- ❌ → [X]
- ✅ → [OK]
- 🚀 → [>]
- 📌 → [*]
- 📊 → [=]
- 🖥️ → [PC]
- 🩺 → [?]
- ℹ️ → [i]
- ✗ → [X]
- 🎉 → [*]
Copy link
Copy Markdown
Owner

@shreyasmene06 shreyasmene06 left a comment

Choose a reason for hiding this comment

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

@swarnimbandekar please make sure the checks are passed

Copy link
Copy Markdown
Owner

@shreyasmene06 shreyasmene06 left a comment

Choose a reason for hiding this comment

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

Thanks for the PR - the spinner UX direction looks good.

I’m requesting changes for two reasons before merge:

  1. Functional issue in check: it now calls check_python_version(silent=True) and prints success when needs_update is
    false, but on fetch failure that function returns (local_ver, None, False). This can show Latest version: None and still
    report up-to-date. Please handle latest_ver is None explicitly (error message + non-zero exit), like existing behavior.
  2. Scope drift for issue #82: this PR also changes many unrelated status messages/emojis across commands. Please keep
    this PR focused on spinner behavior for check (and if intended, list/update) and move formatting-wide changes to a separate
    PR.

Please also add/update a test covering the check fetch-failure path so this doesn’t regress again.

- Integrate rich.Console spinners for check, list, update commands
- Handle fetch failure in check with explicit error + non-zero exit
- Preserve --json flag from upstream using nullcontext to skip spinner
- Fix test_check_json_network_failure to expect exit code 1 on None
- Update README with spinner feature mention
@swarnimbandekar
Copy link
Copy Markdown
Contributor Author

Summary

  • Bug Fix: The check command now properly handles fetch failures by showing "❌ Could not fetch latest version information." and exiting (fixes misleading up-to-date message and exit code).
  • Scope Correction: Reverted unrelated emoji formatting changes to maintain focus on spinner enhancement (per issue [UX] Progress Spinner for pyvm check #82).
  • Testing: Added test_check_fetch_failure to cover version check error path.
  • Docs: Updated README.md to mention CLI progress spinners.
  • UX & Quality: Spinner implementation uses idiomatic rich.console.Console().status(). User feedback is clear and interactive, limited to network operations.
  • Edge Cases: Spinner gracefully disables in piped/non-TTY scenarios due to built-in rich handling.

All improvements maintain user experience and project scope while enhancing test coverage and discoverability

Copy link
Copy Markdown
Owner

@shreyasmene06 shreyasmene06 left a comment

Choose a reason for hiding this comment

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

LGTM!
Thank you for your contribution.

@shreyasmene06 shreyasmene06 merged commit 5b9f8fc into shreyasmene06:main May 17, 2026
12 checks passed
@swarnimbandekar swarnimbandekar deleted the feat/progress-spinner-check branch May 18, 2026 20:30
@shreyasmene06 shreyasmene06 added the good first issue Good for newcomers label May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UX] Progress Spinner for pyvm check

2 participants