Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
GnoPortage UI Discussion
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Wed Mar 19, 2003 10:20 pm    Post subject: GnoPortage UI Discussion Reply with quote

This thread is meant to discuss the User Interface (UI) for GnoPortage, a Gnome-based interface to the Portage package management system created by Slacker.

We are trying to gather comments/suggestions from fellow Gentooers to make your experience with GnoPortage as productive and simple as possible.

I am asking that you take a few minutes to read this post, and preferably the following posts as well, and let us know what you think. Anything from "i think you should support this option", or "I don't like how that button is worded" will be helpful. We are completely open to your suggestions.

Below is a UI proposal. This will be updated regularly as new suggestions are accepted.


# UI Proposal

This is the latest UI graphic:

http://joe.tgpr.org/gnoportage-new.png

Here's a description of how things work:

The main UI presents the portage tree. Here you edit the tree to your liking; install packages, upgrade packages, etc. Changes here are not actually made to your system (they would take way to long to compile ;) ), they are cached. You then move on to commit your changes, which is described below.

1. The filter:
Everything
Installed
Not Installed

Nothing special here. When the filter is changed it will only show packages that fall into that particular category.

2. Search will pop up a new window showing a list (and way to search again). This could also be configured to work as a filter (in preferences). Another issue is search type: name or description. This as far as I know is still up in the air.

3. Update will perform 'emerge sync'. This is a fundamental portage action, and is one that the user should is needed.

4. World and system will pop up a window listing world and system updates. It will ask you if you want to apply these updates (mabey with a quick button to go to commit so you don't have to apply changes to tree, then click commit ... this could speed up a simple 'emerge -u world' use case).

5. The commit button is what applies changes to the tree. Committing will spawn a new window to show you a summary of changes like selected packages for installation/removal, necessary changes because of dependencies/etc.

After the summary it will install the packages with progress bars on the current package (which could be really tough) and total progress with a very short summary of current package and (2 of 12) package thing. Things like compilation output and a complete list of package changes (grayed are finished, current is highlighted) should not be showed by default, but provide a button for "more information" or something that will expand the window to show these things.

Another idea may be to bring package downloading into a separate dialog between summary and installation (config option?)

It may also be good to bring out the cleaning of packages (if autoclean is on, which it is by default I think) until after they are all installed.

This definitely up for discussion (especially how to get to the actual installation process). We are trying to figure the best way to apply changes that were made to the tree, and I'm sure the method in the graphic could be improved.

6. Category list uses "user friendly" naming, but can be configured to show "portage friendly" naming (ie. app-admin)

7. Package listing:

I think a combination of 2 types of status icons could be used.

The first is current package status (since last commit, and not to reflect any changes made to system in the current session). This is meant to show you what the package status is on your system. The place for this icon is in front of the name of the package in the package listing.

The second is the cached package status: what will happen when you commit?. The place for this icon is in a status column (far right of listing). There should be no icon for no changes (but possibly something very subtle). NOTE: The "status" column should be changed to "Action".

All Icons should have tooltips. Also, color coding for the text could be used to aid in quickly scrolling around.

8. Package actions (the Install, Advanced, Deps buttons). This is where package control/information goes. The install button will change based on the installation status of the package. Here is a mapping:

Not Installed => Install
Installed and upgradable => Upgrade, Uninstall
Installed and not upgradable => Reinstall, Uninstall
Changed Status => Undo

Changed Status means that something would happen to this package on a commit.

The Advanced is something I'm toying with. It could be a way to offer more control over the package. Things like upgrading/downgrading to a specific version, editing the ebuild, pinning version to world, unmasking; things that I, as a user, would like to be able to do.

Dependencies will show a list of packages that the current package depends on. This should separate necessary dependencies and dependencies because of USE flags. USE dependencies should list all possible USE dependencies with options to check/uncheck packages that you want the current package to USE. The dependencies from USE is just meant to be an easy way to get to know your USE flags (and to get to use them properly). I think dealing with sub-dependencies (thus going recursive) is beyond the scope of this dialog. I don't want it to get too complicated. Just what it needs, and what it could (or does) need from the USE flags.

9. Please excuse the ugly package information. I didn't take the time to deal with alignment issues and fonts. Perty graphics and icons could be added here as well. Also, the action to be taken on the current package could be here (detail on the "Action" column from the package listing).


# Final Thoughts/Questions: (here I will put any pressing issues)

This thread has been started as an extension to a thread that started out asking if there was a Gnome interface to portage, and turned into a huge GnoPortage discussion that got incredibly long and could be incredibly confusing for people joining the discussion. So we decided to move out the UI discussion to stay organized. You can find this thread here. That thread would be a good place to start before discussion starts moving here.

If anyone coming from the previous thread sees anything I missed in moving the discussion, please let me know.


ps. I appologize for the lenght of the message
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/


Last edited by count on Thu Mar 20, 2003 12:04 am; edited 1 time in total
Back to top
View user's profile Send private message
mmealman
Guru
Guru


Joined: 02 Nov 2002
Posts: 348
Location: Florida

PostPosted: Wed Mar 19, 2003 11:01 pm    Post subject: Reply with quote

My first question would be when you say "a new window" on certain output actions, are you talking about a totally new GUI frame or just a new tab with a seperate window in the current GUI frame?

I'd prefer it all in 1 window to keep the desktop clean, but that might not be a universal preference.

If I understand the commit process:

If I choose to install apache, mysql and xemacs all 3 will install at the same time(one right after another) when I hit the commit, right? What happens if mysql fails to build? Will it abort and show the error text, will it blow right on by and start on xemacs, or something else?

I was gonna complain about a lack of --pretend, but with Dependencies I guess you don't need it.

Being able to install masked packages would also be a must. Hiding the option in the advanced tab would be fine though.

Otherwise I really like it. Any chance it's being written in Python?
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Wed Mar 19, 2003 11:32 pm    Post subject: Reply with quote

mmealman wrote:
My first question would be when you say "a new window" on certain output actions, are you talking about a totally new GUI frame or just a new tab with a seperate window in the current GUI frame?

I'd prefer it all in 1 window to keep the desktop clean, but that might not be a universal preference.

A new window means open a separate window, however there will be at most 2 (maby three if you count warnings or errors), so I dont think that should be a problem. Our concern with keeping it in 1 window is cluttering the GUI.

mmealman wrote:

If I understand the commit process:

If I choose to install apache, mysql and xemacs all 3 will install at the same time(one right after another) when I hit the commit, right? What happens if mysql fails to build? Will it abort and show the error text, will it blow right on by and start on xemacs, or something else?

I think this could be a configuration option, but I think it would be best if there was a warning that popped up explaining the situation and asking to procede or abort (or maby try again).

mmealman wrote:

I was gonna complain about a lack of --pretend, but with Dependencies I guess you don't need it.

There wouldnt be a need for a depend because you can see changes when you start the commit process. There you review packages that are going to be modified before it actually makes any changes to the tree.

mmealman wrote:

Being able to install masked packages would also be a must. Hiding the option in the advanced tab would be fine though.

I definitely agree. This would be best in advanced, like you said.

mmealman wrote:

Any chance it's being written in Python?

Its written in C


Thanks for your comments!
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
slacker
Tux's lil' helper
Tux's lil' helper


Joined: 18 Sep 2002
Posts: 86
Location: Oakland University

PostPosted: Wed Mar 19, 2003 11:58 pm    Post subject: Reply with quote

Quote:
Otherwise I really like it. Any chance it's being written in Python?


Python-gtk is not a complete gtk library. And hence should not be used. Hopefully the project will use little or no python in it's development.
_________________
http://gnoportage.sourceforge.net
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Thu Mar 20, 2003 12:00 am    Post subject: Reply with quote

Here is the start of a continuance of our previous discussion on the old thread (in an effort to pull out UI discussion and keep it in one place).


# Handling World and System updates

What to do with updating world|system?

I think a good idea would be, after a 'emerge rsync' is performed, to automatically select system updates for updating, then present a list of world packages for you to confirm to be added to the list of queued actions. This should definitely be configurable (ie. be able to chose auto, confirm, or no action for both world and update)

If this is the case then I think the "Update" menu bar button could be renamed to "check for updates". This sounds a bit more intuitive.


# Overlay filtering

Should this be an option to filter by your Overlay directory?

Filterying by Overlay would only show packages you have setup in PORTDIR_OVERLAY in make.conf

I dont think it would need to be per say, but there could be people out there that would like this.


# World filtering

Should there be an option to show only packages in your /var/cache/edb/world file?

There are a few ways to handle this one:

1. Add world to the filtering

2. A "Manage World" menu entry that could use a similar interface (or the single tree view since the world is generally relatively small) to basically edit your /var/cache/edb/world file (add-remove items or set explicit version numbers). This wouldn't be tough if the main interface is modularized properly.

3. There could be some indication in the package information when a package is a member of world (and give option in right click menu or main menu) to add/remove world entry.


What do you think?
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
Martigen
n00b
n00b


Joined: 04 Mar 2003
Posts: 59

PostPosted: Thu Mar 20, 2003 1:06 am    Post subject: Reply with quote

Regarding World and System updates:

In order to use new features such as XFree86 4.3, latest Gnome, latest GCC and prelink etc my system is now a mixture of ARCH and ~ARCH packages. After emerging sync updating to new versions requires using both 'emerge -uUp world' and 'ACCEPT_KEYWORDS="~x86" emerge -up world' to see which packages should be updated for ARCH and ~ARCH respectively.

When a user emerges sync it'd be great if, when the list of world updatable packages is displayed, each package has a selector box next to it which is enabled by default. The user can then selectively de-select packages which emerge is recommending be dowgraded, or where the user doesn't want to keep up updating the ~ARCH version (I.e I used ~ARCH to get the latest gcc 3.2.2 when I installed, but I don't necessarily want to keep on upgrading to the latest beta gcc package). Then the user can emerge the modified list of recommended updates.

Martigen
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Thu Mar 20, 2003 1:46 am    Post subject: Reply with quote

In response to Martigens comments:

I have the same problems, but they can be avoided by pinning version numbers in /var/cache/edb/world.

Here's what I mean:

Last nite I upgraded to Gnome 2.2.1 using "~x86" keyword. After it was done I went into /var/cache/edb/world and searched for gnome and replaced my entry with this:
Code:
>=gnome-base/gnome-2.2.1
I then did 'emerge -up world' and found that it still wanted to downgrade things, so I looked for the last thing it wanted to downgrade, which was natilus. I did the same thing until 'emerge -up world' didnt want to downgrade anything.

To get back on topic:

This is the kind of thing that is going to be provided in the "advnaced.." button. What you should be able to do is set the "~86" keyword for that package and install. Gnoportage will handle the world file to make sure 'emerge -up world' will not downgrade. This kind of version management is why I put the "advanced.." button there (disclaimer: "advanced.." button may be renamed)

But I do agree that when approving the upgrade list you should be able to exclude (or uncheck) packages to be changed (also an option for eliminating all downgrades or something)
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
mmealman
Guru
Guru


Joined: 02 Nov 2002
Posts: 348
Location: Florida

PostPosted: Thu Mar 20, 2003 2:15 am    Post subject: Reply with quote

So far, it sounds pretty good. Looks like you already have a fairly solid design concept.

I guess just keep the first release pretty simple, then new features and enhancements can be tossed in later on.
Back to top
View user's profile Send private message
pjp
Administrator
Administrator


Joined: 16 Apr 2002
Posts: 20067

PostPosted: Thu Mar 20, 2003 5:50 am    Post subject: Reply with quote

Moved from Desktop Environments.
_________________
Quis separabit? Quo animo?
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Thu Mar 20, 2003 6:34 am    Post subject: Reply with quote

Thanks for the comment, mmealman

The first release (and a few subsequtent) has actually been released. It's a great start, but could use work. I just started to get involved in helping plan out the UI to try and give this thing a real kickin interface.

We'll start to see these features we're gathering work their way into the code soon. But there are still a lot of questions to be answered, and user intput to be gathered. So keep it coming :)
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
modal
Apprentice
Apprentice


Joined: 02 Oct 2002
Posts: 277

PostPosted: Thu Mar 20, 2003 7:04 am    Post subject: Reply with quote

Good job on the gnome portage program, I was very skeptical about how effective a gui program could be (from experience with debian's apt-get guis) But, I think that this could be a really good thing.
These are some things that i'd like to see in it.

1. I'd like to see an option to see the current Changelog for each ebuild (preferably in advanced)...

2. Also, any package that has pre-compiling instructions (like the new pwlib build, requires you to -C pwlib, before upgrading) should be brought to the attention of the user in a separate window (i don't know if this is possible, but it would be nice).

3. I'd like to not only see dependancies of packages I want to install, but what packages depend on an already installed package (ie, which packages require arts, then list the packages that depend on it)

4. I list of USE variables, with check marks by them for individual builds (not to alter make.conf, but for certain builds that you want a certain use variable ommited, or submitted for use with that package....the default check marks should already be marked based on make.conf, by parsing make.conf?)

5. Same with CFLAGS, using export CFLAGS="doot doot", with links to documentation, and in program examples of configs (like simple, average, uber optimized)

that's it for now. not that it helps with UI, but these are features that i'm sure more than just ME would like to see.
Back to top
View user's profile Send private message
charlieg
Advocate
Advocate


Joined: 30 Jul 2002
Posts: 2149
Location: Manchester UK

PostPosted: Thu Mar 20, 2003 11:20 am    Post subject: Constructive Criticism Reply with quote

I can't see, there, anyway to view in one long list what is queued for installation. Nor can I see anyway to view in one long list what is scheduled to be updated. Nor can I see anyway to view everything in one big list (an 'all' category).

  1. add an 'all' category

  2. Add tabs to the main view pane (the one on the right of the category tree)
    1. Add an Portage Information page (with tab): "Portage tree last updated X, 17 installed packages require updating, 27 packages have unstable updates" etc... and have the Update Portage Tree, Update World Packages, Update System Packages as nice big buttons there, with a little checkbox stating 'preview update'. This would be better than the omnipresent buttons because they are one off actions.
    2. Add a Scheduled Updates page (with tab), listing the packages you have selected to update. If 'preview update' was selected for the update world/system then they jump to this tab and select the appropriate packages.
    3. Add an 'Installed Packages' page (with tab), where you can browse what you have installed.
    4. Have the main screen displayed in that screenshot as a 'Browse Packages' tab.
    5. Add a 'Progress' tab, where you can view the progress and output of an installation. You should also be able to browse previews outputs (save the compilation output and store it if the installation is unsuccessful?).
    6. Keep the description part of the main pain for b, c, and d.
    7. The category tree is relevant to b, c, and d mentioned above.

  3. Have a toolbar labelled 'Installation: ' with 'Start', 'Cancel', 'Pause', 'Resume' buttons - it's good to have them as separate buttons as it's easier to comprehend.


Just a few ideas... hopefully they're good.
_________________
Want Free games?
Free Gamer - open source games list & commentary

Open source web-enabled rich UI platform: Vexi
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Thu Mar 20, 2003 3:38 pm    Post subject: Reply with quote

Charlieg: this is the reason why we are trying to come up with ways to better show how to get to the update process. Most of what you "cant see" is there, its just not in the best place.

1. I really like the idea of an 'all' category. The problem comes when viewing all when not filtering out any packages (or when not many are filtered out). The list will be quite long and is something that could cause performance issues. If we can come up with a way to solve this performance problem this would be a great addition.

2. It takes a lot for me to consider tab views.

2.a. This is a great idea. I was almost thinking of splash screen type things with shortcuts to different portage tasks. This would be a great place to put portage info

2.b This type of thing is meant for the start of the "commit changes" phase of installation. (first you select packages, then you verify, then install, etc)

2.c "installed packages" is a filter, no tab needed.

2.e This again is meant for another phase in installation.

3. That would work well if the app was packaged into a single interface
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Fri Mar 21, 2003 2:58 pm    Post subject: Reply with quote

What does everyone think of using a "wizard" style format to GnoPortage?

This is what I was thinking:

The first window to pop up is a jump screen (similar in purpose to dselect for debian). That has a series of starting buttons and a portage summary including the time it was last updated, how many system/world updates are available, etc.

I was thinking for the buttons:

  1. "Update Portage": performs a "emerge rsync" and updates the portage summary.
  2. "Configure Portage": allows you to configure make.conf, USE flags, etc. and various GnoPortage settings
  3. "Manage Packages": Starts the portage management wizard. The first window is quite similar to my previous examples, moving on in the wizard brings you to package confirmation, then download/install/clean.
  4. "Quit": Quits the application.


This I think is an uber-simple solution to a package manager. No cluttered toobars or menu systems, just you and your system, with GnoPortage as a powerful mediator.


This is just an idea; something I am throwing out there, basically because it is different (and could be easier and better) than any portage GUI out there. I just want to hear what you think.
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
charlieg
Advocate
Advocate


Joined: 30 Jul 2002
Posts: 2149
Location: Manchester UK

PostPosted: Fri Mar 21, 2003 4:05 pm    Post subject: Reply with quote

Wizard style formats are annoying.

In the case of GnoPortage, it is not only a tool for installing packages but also for inspection and maintainence of installed packages.

The categories I state were the most common - covering 95% of needs for package navigation.

The idea should be to make it easy to switch between information views and perform your tasks with the minimum number of mouse clicks in the most intuitive manner.

Using a wizard is not the answer.
_________________
Want Free games?
Free Gamer - open source games list & commentary

Open source web-enabled rich UI platform: Vexi
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Fri Mar 21, 2003 4:30 pm    Post subject: Reply with quote

I guess I should re-state my idea. It is not a wizard, its just that is the best way to differentate from the previous ideas.

This is whats different:

The first window you see is a window with a few buttons, like I described, and a portage summary, like charlieg suggested. This is good because it gives you a clear set of actions you can perform with a quick way to see if there are updates, whichis the most common action.

The only part that looks like a wizard is when managing the portage tree. The only thing different from my proposed UI is that the commit button is a next button. This is the idea "Hey, i'm done making changes to the tree, what do I do next? Oh, click the next button" The rest is exactly the same (like checking dependancies and going through install process. No extra steps or crazy windows asking you to accept a liscence agreement.

What do you think, now that I described it a bit better?
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
count
Apprentice
Apprentice


Joined: 28 May 2002
Posts: 242
Location: Dalton, MA

PostPosted: Fri Mar 21, 2003 4:33 pm    Post subject: Reply with quote

Also, This idea is meant to solve 3 major problems with previous ideas

1. Upating the portage tree. What is the most intuative way to do this?

2. Dealing with system and world updates. How to show what is availble.

3. How to procede after makeing changes to the portage tree.
_________________
- Joseph Monti
_________________
This message is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more info visit http://joemonti.org/
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum