[pacman-dev] pacman tag support
In answer to http://www.archlinux.org/pipermail/arch-dev-public/2008-August/007644.html To Ronald : It is nice you worked on this, especially considering it was a feature request posted by Aaron himself : http://bugs.archlinux.org/task/7132 However, I warmly recommend you to have a look at this : http://wiki.archlinux.org/index.php/Pacman_Development Especially the submitting patches page. And all the git guides. 1) you should really use git for doing pacman development 2) it it is a good idea to split patches, especially huge ones like this 3) all pacman development happens on pacman-dev, not arch-dev-public 4) all big patches go through the ML for review and discussion. Even Dan sometimes sends his own patches (the less trivial ones) there To everyone : About the feature itself, here is the last thread where it was discussed : http://archlinux.org/pipermail/pacman-dev/2007-June/008555.html I was always divided about it. I understand the point of view "groups are installable, categories are not" However, after having a look at this patch, it seems like it justifies Nagy's opinion even more : http://archlinux.org/pipermail/pacman-dev/2007-June/008565.html This category implementation basically looks like a duplication of the whole group implementation.
In answer to http://www.archlinux.org/pipermail/arch-dev-public/2008-August/007644.html
To Ronald :
It is nice you worked on this, especially considering it was a feature request posted by Aaron himself : http://bugs.archlinux.org/task/7132
However, I warmly recommend you to have a look at this : http://wiki.archlinux.org/index.php/Pacman_Development
Especially the submitting patches page. And all the git guides.
1) you should really use git for doing pacman development 2) it it is a good idea to split patches, especially huge ones like this 3) all pacman development happens on pacman-dev, not arch-dev-public 4) all big patches go through the ML for review and discussion. Even Dan sometimes sends his own patches (the less trivial ones) there
To everyone :
About the feature itself, here is the last thread where it was discussed : http://archlinux.org/pipermail/pacman-dev/2007-June/008555.html I was always divided about it. I understand the point of view "groups are installable, categories are not" However, after having a look at this patch, it seems like it justifies Nagy's opinion even more : http://archlinux.org/pipermail/pacman-dev/2007-June/008565.html This category implementation basically looks like a duplication of the whole group implementation.
In alpm a group is simply a set of packages (with a given "set name", like xorg). Nothing more. (The front-end does the group specific operations, the back-end just stores our "sets".) Tag or category is just an other _type_ of sets (type A: group, type B: category...). The question is, whether we need this? Imho not. (If someone wants to implement categories, he can use "category:multimedia" group (== set) names and hack some "interpreter" to front-end. But I think we don't need this distinction at all, see my linked opinion: IMHO the meaning of "group" and "category" are similar). Bye
On Wed, Aug 20, 2008 at 5:42 PM, Xavier <shiningxc@gmail.com> wrote:
About the feature itself, here is the last thread where it was discussed : http://archlinux.org/pipermail/pacman-dev/2007-June/008555.html I was always divided about it. I understand the point of view "groups are installable, categories are not" However, after having a look at this patch, it seems like it justifies Nagy's opinion even more : http://archlinux.org/pipermail/pacman-dev/2007-June/008565.html This category implementation basically looks like a duplication of the whole group implementation.
It does seem to come down to just that one difference- categories/tags are not installable while groups are. With that in mind, what drawback is there to using our existing group functionality for categories? I can think of the following issues (none of which are critical or unfixable): 1. Category names could potentially conflict with package names. Doesn't seem like it would happen in reality though. 2. Search output would get cluttered. I'm referring to the group display to the right of the package name. ("core/pacman 3.2.0-1 (base)") 3. Slight performance hit with nearly every package in a group. Surely we could improve our code/algorithms to accommodate if it was a big issue, and the categories/tags being separate would incur the same if not a bigger penalty. 4. OMG you could try to install a category! But don't we trust the user anyway? No need to handhold here and wave our finger saying "you can't do that". Anyone else have thoughts here? From the Arch perspective of things, we already added the base and base-devel categories as groups long ago, and there is no real reason other categories of packages couldn't do the same thing. And we allow as many groups as you want on a package. -Dan
On 8/21/08, Dan McGee <dpmcgee@gmail.com> wrote:
On Wed, Aug 20, 2008 at 5:42 PM, Xavier <shiningxc@gmail.com> wrote:
About the feature itself, here is the last thread where it was discussed : http://archlinux.org/pipermail/pacman-dev/2007-June/008555.html I was always divided about it. I understand the point of view "groups are installable, categories are not" However, after having a look at this patch, it seems like it justifies Nagy's opinion even more : http://archlinux.org/pipermail/pacman-dev/2007-June/008565.html This category implementation basically looks like a duplication of the whole group implementation.
It does seem to come down to just that one difference- categories/tags are not installable while groups are.
With that in mind, what drawback is there to using our existing group functionality for categories? I can think of the following issues (none of which are critical or unfixable): 1. Category names could potentially conflict with package names. Doesn't seem like it would happen in reality though. 2. Search output would get cluttered. I'm referring to the group display to the right of the package name. ("core/pacman 3.2.0-1 (base)") 3. Slight performance hit with nearly every package in a group. Surely we could improve our code/algorithms to accommodate if it was a big issue, and the categories/tags being separate would incur the same if not a bigger penalty. 4. OMG you could try to install a category! But don't we trust the user anyway? No need to handhold here and wave our finger saying "you can't do that".
Anyone else have thoughts here? From the Arch perspective of things, we already added the base and base-devel categories as groups long ago, and there is no real reason other categories of packages couldn't do the same thing. And we allow as many groups as you want on a package.
-Dan _______________________________________________ pacman-dev mailing list pacman-dev@archlinux.org http://archlinux.org/mailman/listinfo/pacman-dev
Ghehe, I'm starting to get the impresion that I'm alone in my view that they are different :p Well, in any case it was a nice exercise of getting to know the pacman code a bit. Let me give a final try to convince you that they serve different purposes. Suppose I want to in install a desktop environment, say kde. As you know, all official kde packages (so the complete DE) are part of the kde group. Therefore installing kde on arch is as intuitive as pacman -S kde. Now suppose we use the groups field for using tags. As you can imagine, kde would pop up in the group of quite a number of packages (amarok, digikam, koffice, kmess to name a few, but there are lots more, even excluding pure qt packages). So what do we now have? Instead of an easy install of the desktop environment (think new users, '-S kde' must be the first they try), in the new case, 'pacman -S kde' wants to install a shitload of packages, confusing the users. I can go on with different use cases, but I suppose I made my point, whether you share it or not ;). So can we work around it in the current groups only field ? Sure we can. We can define groups for easy installing things as we do at the moment. In the same field we could included categories in a way similar to 'groups=(category:kde)' for example. I much prefer a new field to include categories/tags as I think it is more use friendly. Besides that people tend to forget things and start writing 'groups=(kde)' where groups=(category:kde) should have been. Enough for now ;) Regards, Ronald
Am Donnerstag 21 August 2008 10:45:04 schrieb Ronald van Haren:
Let me give a final try to convince you that they serve different purposes. Suppose I want to in install a desktop environment, say kde. As you know, all official kde packages (so the complete DE) are part of the kde group. Therefore installing kde on arch is as intuitive as pacman -S kde. Now suppose we use the groups field for using tags. As you can imagine, kde would pop up in the group of quite a number of packages (amarok, digikam, koffice, kmess to name a few, but there are lots more, even excluding pure qt packages). So what do we now have? Instead of an easy install of the desktop environment (think new users, '-S kde' must be the first they try), in the new case, 'pacman -S kde' wants to install a shitload of packages, confusing the users.
That's exact the example I was thinking about. I think some additional meta data which does not affect the install process or dependencies directly is not a bad idea at all. This could be nice for some frontends (I develop a webfrontend for the sync- db). With such information (or call it tagging) one could create such quires like: Show me all games or KDE-related packages. Which browsers are available? ... Pierre -- Pierre Schmitz Clemens-August-Straße 76 53115 Bonn Telefon 0228 9716608 Mobil 0160 95269831 Jabber pierre@jabber.archlinux.de WWW http://www.archlinux.de
On Thu, Aug 21, 2008 at 10:45 AM, Ronald van Haren <pressh@gmail.com> wrote:
I much prefer a new field to include categories/tags as I think it is more use friendly. Besides that people tend to forget things and start writing 'groups=(kde)' where groups=(category:kde) should have been.
Even if we come to the agreement that a new field is better, what Nagy said still holds. Groups and categories are both some kind of tags to packages. A huge part of their implementation will by consequent be the same and should be shared. So in my opinion, the brainstorming should go in that direction, to find out if that is possible and how to do it.
On 8/21/08, Xavier <shiningxc@gmail.com> wrote:
On Thu, Aug 21, 2008 at 10:45 AM, Ronald van Haren <pressh@gmail.com> wrote:
I much prefer a new field to include categories/tags as I think it is more use friendly. Besides that people tend to forget things and start writing 'groups=(kde)' where groups=(category:kde) should have been.
Even if we come to the agreement that a new field is better, what Nagy said still holds. Groups and categories are both some kind of tags to packages. A huge part of their implementation will by consequent be the same and should be shared. So in my opinion, the brainstorming should go in that direction, to find out if that is possible and how to do it. _______________________________________________ pacman-dev mailing list pacman-dev@archlinux.org http://archlinux.org/mailman/listinfo/pacman-dev
I suppose we could share a lot of the code with the groups field. I'm willing to look into it and start writing some new patches, but only after we come to an agreement that a new field is better.
participants (5)
-
Dan McGee
-
Nagy Gabor
-
Pierre Schmitz
-
Ronald van Haren
-
Xavier