Skip to content

Interactive installation wizard in TUI#70

Merged
shreyasmene06 merged 6 commits intoshreyasmene06:mainfrom
ShaikhWarsi:fix2
Feb 6, 2026
Merged

Interactive installation wizard in TUI#70
shreyasmene06 merged 6 commits intoshreyasmene06:mainfrom
ShaikhWarsi:fix2

Conversation

@ShaikhWarsi
Copy link
Contributor

@ShaikhWarsi ShaikhWarsi commented Feb 6, 2026

Fixes #58

Summary of Features

  • Multi-Step Guided Setup : A structured flow consisting of Version Selection, Installer Selection, Advanced Options, and Final Confirmation.
  • Advanced Configuration :
    • Build Options : Support for source builds and performance optimizations (Linux).
    • Custom Installation Path : Ability for users to specify a non-default directory for Python installations.
    • Environment Management : Option to automatically add Python to the system PATH (Windows).
  • Interactive UI : Built using textual widgets like RadioSet , Checkbox , and Input for a modern, responsive terminal experience.
  • TUI Integration : Seamlessly launched from the main management screen when a user initiates a new installation

Copy link
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.

Excellent implementation of the installation wizard! This is a well-designed feature with a clean multi-step flow.

  • Proper multi-step wizard (Version → Installer → Options → Confirm)
  • Platform-aware options (Linux source build, Windows PATH)
  • Clean integration with existing plugin system
  • Good UX with Back/Next/Cancel navigation
  • Properly passes **kwargs through the installer chain
  • Deleted pycache directories (good hygiene)

Minor Issues (non-blocking)

1. Fix line endings in wizard.py

The file uses Windows CRLF (\r\n) line endings while the rest of the codebase uses Unix LF (\n). Please normalize:

sed -i 's/\r$//' src/pyvm_updater/wizard.py
  1. Consider adding version validation
    In next_step(), when collecting the version, you could validate the format:
if self.current_step_idx == 0:
    ver = self.query_one("#version-input", Input).value.strip()
    if not ver or not re.match(r"^\d+\.\d+\.\d+$", ver):
        # Show error to user
        return
    self.options["version"] = ver
  1. Tests would be nice (optional, can be follow-up)
    The wizard logic could be unit tested, especially:
  • Step navigation
  • Option collection
  • Confirm details formatting

Summary
This is a solid feature that significantly improves the user experience for Python installation. The wizard makes advanced options accessible while keeping the default path simple.
LGTM! 🎉

Copy link
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 adding the version validation! The implementation now includes:

  • Regex validation for version format (X.Y.Z)
  • Visual feedback with red border on invalid input
  • Border reset when valid
    The wizard feature is complete and well-implemented.

One remaining minor issue (non-blocking)

CRLF line endings in wizard.py
The file still uses Windows CRLF (\r\n) line endings. This won't break functionality but is inconsistent with the codebase. You can fix with:

sed -i 's/\r$//' src/pyvm_updater/wizard.py

Or configure your editor to use LF line endings.

I'm approving since the CRLF issue is cosmetic and doesn't affect functionality. Great feature addition!

@shreyasmene06 shreyasmene06 merged commit 90ab9d0 into shreyasmene06:main Feb 6, 2026
12 checks passed
@androidvitb androidvitb added acwoc Indicates this pull request is a part of AcWoC hard Indicates a difficult or complex task. labels Feb 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

acwoc Indicates this pull request is a part of AcWoC hard Indicates a difficult or complex task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Interactive installation wizard in TUI

3 participants