[yast-devel] better framework for module interaction?
feature #302961: Integrated Software Management Application, which means basically integrate the repository editor with the package management application makes me think we are missing something in the YaST framework which I saw recently in the Android platform. Android separates each view in an activity. Each Activy chains with others (to generate a workflow) by generating Intents, and Activities can filter and respond to Intents too. (http://code.google.com/android/intro/anatomy.html) The idea is, if you wrte an application, and you need to edit a contact, or to select an geo-address. Your application don't care how you do it. It is not hardcoded. The activity generates an intent of "edit contact", or "select point in earth" and other activities will be launched, which of course registered ther capabilities. This allow the workflows to perform the tasks by selecting 1) the best 2) the user prefered, component to do the job. I think YaST is in the need of something similar, where modules could launch sub activities without knowing much about them. At least this would solve problems like integrating launching other modules from a module, and also would allow modules to be easily replaced and avoid all the hardcoding. What do you think? Duncan -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
On Tue, Jan 15, 2008 at 06:14:26PM +0100, Duncan Mac-Vicar Prett wrote:
feature #302961: Integrated Software Management Application, which means basically integrate the repository editor with the package management application makes me think we are missing something in the YaST framework which I saw recently in the Android platform.
Android separates each view in an activity. Each Activy chains with others (to generate a workflow) by generating Intents, and Activities can filter and respond to Intents too. (http://code.google.com/android/intro/anatomy.html)
The idea is, if you wrte an application, and you need to edit a contact, or to select an geo-address. Your application don't care how you do it. It is not hardcoded. The activity generates an intent of "edit contact", or "select point in earth" and other activities will be launched, which of course registered ther capabilities. This allow the workflows to perform the tasks by selecting 1) the best 2) the user prefered, component to do the job.
So the key concepts seem to be choice and alternatives, right?
I think YaST is in the need of something similar, where modules could launch sub activities without knowing much about them. At least this would solve problems like integrating launching other modules from a module, and also would allow modules to be easily replaced and avoid all the hardcoding. What do you think?
Can you give more concrete examples? -- Martin Vidner, YaST developer http://en.opensuse.org/User:Mvidner Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
* Duncan Mac-Vicar Prett <dmacvicar@suse.de> [Jan 15. 2008 18:14]:
feature #302961: Integrated Software Management Application, which means basically integrate the repository editor with the package management application makes me think we are missing something in the YaST framework which I saw recently in the Android platform.
Android separates each view in an activity. Each Activy chains with others (to generate a workflow) by generating Intents, and Activities can filter and respond to Intents too. (http://code.google.com/android/intro/anatomy.html)
Sounds like 'event driven' -- something not very well established in YCP :-( I guess this should be solvable with YCP Modules and popup-style workflows. Or am I misunderstanding your request ? Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
Dňa Wednesday 16 January 2008 17:59:00 Klaus Kaempf ste napísal:
* Duncan Mac-Vicar Prett <dmacvicar@suse.de> [Jan 15. 2008 18:14]:
feature #302961: Integrated Software Management Application, which means basically integrate the repository editor with the package management application makes me think we are missing something in the YaST framework which I saw recently in the Android platform.
Android separates each view in an activity. Each Activy chains with others (to generate a workflow) by generating Intents, and Activities can filter and respond to Intents too. (http://code.google.com/android/intro/anatomy.html)
Sounds like 'event driven' -- something not very well established in YCP :-(
I guess this should be solvable with YCP Modules and popup-style workflows.
Or am I misunderstanding your request ?
Another possibility is to use dbus to get communicate across processes. Stano -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
On Thursday 17 January 2008 09:51:23 Stanislav Visnovsky wrote:
Another possibility is to use dbus to get communicate across processes.
Well, it is a kind of component broken but it does not look components as we are used to but simply as UI screens to perform a task. So I can create a button in the package manager saying launchActivity, :editrepo, :openSUSE_10.3 and the broker will launch the best (or configured) activity to handle that. dbus is a possibility, but I guess what we are trying to solve is to not have 2 processes using libzypp, and I also think it is possible right now to launch a yast process with a module from another module. Duncan -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
Dňa Thursday 17 January 2008 10:57:03 Duncan Mac-Vicar Prett ste napísal:
On Thursday 17 January 2008 09:51:23 Stanislav Visnovsky wrote:
Another possibility is to use dbus to get communicate across processes.
Well, it is a kind of component broken but it does not look components as we are used to but simply as UI screens to perform a task.
So I can create a button in the package manager saying launchActivity, :editrepo, :openSUSE_10.3 and the broker will launch the best (or configured) activity to handle that.
dbus is a possibility, but I guess what we are trying to solve is to not have 2 processes using libzypp, and I also think it is possible right now to launch a yast process with a module from another module.
Yes, libzypp locking is still broken. Stano -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
On Thursday 17 January 2008 11:08:58 you wrote:
Yes, libzypp locking is still broken.
I am not sure if broken is the word. In every piece of software, concurrency is a balance between granularity and simplicity. What introduced the big lock, was the design of having a ZYpp god global object. But if we don't have it, people complain because API is too complicated. Duncan -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
Dňa Thursday 17 January 2008 13:12:45 Duncan Mac-Vicar Prett ste napísal:
On Thursday 17 January 2008 11:08:58 you wrote:
Yes, libzypp locking is still broken.
I am not sure if broken is the word.
In every piece of software, concurrency is a balance between granularity and simplicity.
What introduced the big lock, was the design of having a ZYpp god global object. But if we don't have it, people complain because API is too complicated.
Agreed, too simplistic. We already found quite some cases where the current locking is not granular enough and also that you cannot give up the lock. Stano -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
participants (4)
-
Duncan Mac-Vicar Prett
-
Klaus Kaempf
-
Martin Vidner
-
Stanislav Visnovsky