Skip to content

Conversation

@prady0t
Copy link
Contributor

@prady0t prady0t commented Dec 29, 2025

Description

Adds an interactive menu option when pixi update.

Fixes #4734

How Has This Been Tested?

Running' pixi update --interactive shows the interactive menu.

AI Disclosure

  • This PR contains AI-generated content.
    • I have tested any AI-generated content in my PR.
    • I take responsibility for any AI-generated content in my PR.

Tools: GitHub Copilot (used for generating the interactive menu using dialouger)

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added sufficient tests to cover my changes.
  • I have verified that changes that would impact the JSON schema have been made in schema/model.py.

Signed-off-by: Pradyot Ranjan <[email protected]>
Signed-off-by: Pradyot Ranjan <[email protected]>
@prady0t
Copy link
Contributor Author

prady0t commented Dec 29, 2025

@ruben-arts This PR includes a very basic prototype of the update menu. Currently, it displays all packages across all platforms and envs hence the list is long.

Screenshot 2025-12-29 at 11 14 52 PM

We can extend this to only show specific packages, for example, pixi update --interactive --platform osx-arm64 shows only osx specific packages to select from. It also currently misses out on the final and current package info in the menu.

@ruben-arts
Copy link
Contributor

Hmm, this is a bit long. A few ideas to improve this:

  • Make it searchable with typing
  • Add the "current" and "latest" versions
  • Sort on explicit first or other sort options.

I'm not sure how much it's worth the maintenance, as this could also be an extension, perhaps.

@lucascolley lucascolley added enhancement New features area:update Related to pixi update labels Dec 31, 2025
@prady0t
Copy link
Contributor Author

prady0t commented Jan 2, 2026

I'm not sure how much it's worth the maintenance, as this could also be an extension, perhaps.

I really like that idea and would be willing to work on it. Should I move this work + the suggestions into a pixi-interactive extension? This would work for both update and upgrade.

@ruben-arts
Copy link
Contributor

I really like that idea and would be willing to work on it. Should I move this work + the suggestions into a pixi-interactive extension? This would work for both update and upgrade.

I like your work, so if you do another iteration in pixi itself maybe I would be convinced to take on the ownership of the code. As I also like the idea 👍

@prady0t prady0t marked this pull request as draft January 7, 2026 19:49
@prady0t
Copy link
Contributor Author

prady0t commented Jan 7, 2026

@ruben-arts With the current commit, it also prints the current version (it doesn't look pretty yet). For the latest or the max upgradable version, will we have to run an update dry-run? That would be time-consuming. Are there any more ways?

@ruben-arts
Copy link
Contributor

I don't think the solve is mendatory, you could match the spec with the repodata to get the target and latest. Without actually solving.
e.g. `python = ">=3.12, <3.13"

> pixi update --interactive
package     current    target    latest
--------    -------    ------    ------
python      3.12.1     3.12.9    3.14.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:update Related to pixi update enhancement New features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pixi update --interactive (and upgrade --interactive)

3 participants