I like the new idea, but felt a need to comment on one thing. Using ':' in an attribute name might have unintended and interesting consequences for search. It's also possible that it would work fine, but I think searching for things matching the ':developer' set of attributes might well break currently.

Brock

On 07/12/10 08:24 PM, Alan Coopersmith wrote:
Danek Duvall wrote:
Looks nice, though I'd replace the underscore with a dash: info.defect-tracker.*
All the other multiword info.* attributes use underscore though - is there
a reason to be different here?

Though after further thought (and probably a bit of overthinking), I wonder
about reorganizing the whole info.* structure a bit.

Right now the defined "informational" attributes for packages are:

     info.maintainer
     info.maintainer_url
     info.upstream
     info.upstream_url
     info.source_url
     info.repository_url
     info.repository_changeset

But in a number of cases, those, like the defect-tracker ones, will apply to
subsets of the package.   In my original proposal mail, one of my examples
overloaded info.keyword to serve as a "grouping" agent:

   pkg:/developer/gnome/gettext
    set name=info.defect_tracker.url \
        value=http://defect.opensolaris.org/
    set name=info.defect_tracker.category \
        value=development/gnome/libraries
    set name=info.keyword value=pkg-config \
        info.upstream_defect_tracker.url=https://bugs.freedesktop.org/ \
        info.upstream_defect_tracker.category=pkg-config
    set name=info.keyword value=intltool \
        info.upstream_defect_tracker.url=https://bugs.launchpad.net/intltool
    set name=info.keyword value=gnome-common \
        info.upstream_defect_tracker.url=https://bugzilla.gnome.org/ \
        info.upstream_defect_tracker.category="product=gnome-common"

And like the defect tracker, there's duplication between upstream and downstream
entries.

Would it make more sense to have the grouping be more explicit, such as:

    info.source.<source_name>.contact
    info.source.<source_name>.contact.url
    info.source.<source_name>.source.url
    info.source.<source_name>.source.repository.url
    info.source.<source_name>.source.repository.changeset
    info.source.<source_name>.defect-tracker.url
    info.source.<source_name>.defect-tracker.category

If the values are the same for everything in a package, then<source_name>
would simply be "upstream" and "packager" for packages delivered from upstream,
and "developer" for those originating from a single source, but if there's
multiple values, then any number of groups can be created, with ":upstream",
":packager", and/or ":developer" added to the end of each<source_name>.
For any values not set on a "*:foo", the default fallback would be the
equivalent "foo" value.

So building on some of the previous examples:

pkg:/package/pkg
    set name=info.source.developer.contact \
        value="[email protected]"
    set name=info.source.developer.contact.url \
        value="http://hub.opensolaris.org/bin/view/Project+pkg/";
    set name=info.source.developer.source.repository.url \
         value="ssh://[email protected]/hg/pkg/gate"
    set name=info.source.developer.defect-tracker.url \
        value=https://defect.opensolaris.org/
    set name=info.source.developer.defect-tracker.category \
        value=Development/pkg

pkg:/system/kernel
    set name=info.source.developer.contact \
        value="[email protected]"
    set name=info.source.developer.contact.url \
         value="http://hub.opensolaris.org/bin/view/Community+Group+on/";
    set name=info.source.developer.defect-tracker.url \
        value=http://bugs.opensolaris.org/
    set name=info.source.developer.defect-tracker.category \
        value=solaris/kernel value=solaris/driver

pkg:/SUNWcs
    set name=info.source.developer.defect-tracker.url \
        value=http://bugs.opensolaris.org/
    set name=info.source.developer.defect-tracker.category \
        value=solaris/utility

    set name=info.source.packager.defect-tracker.url \
        value=http://bugs.opensolaris.org/
    set name=info.source.ksh93:upstream.contact.url \
        value=http://kornshell.com/
    set name=info.source.ksh93:packager.contact \
        [email protected]
    set name=info.source.ksh93:packager.defect-tracker.category \
        value=solaris/shell/korn93

    file usr/has/bin/sh \
        info.source.developer.defect-tracker.category=solaris/shell/bourne
    file usr/bin/csh \
        info.source.developer.defect-tracker.category=solaris/shell/cshell

    file usr/bin/ksh93 info.source=ksh93
    file usr/bin/print info.source=ksh93
    file usr/bin/sleep info.source=ksh93
    file usr/bin/test info.source=ksh93


pkg:/x11/server/xorg
    set name=info.source.packager.defect-tracker.url \
        value=http://bugs.opensolaris.org/
    set name=info.source.packager.defect-tracker.category \
        value=solaris/xserver/xorg-server
    set name=info.source.upstream.defect-tracker.url \
        value=https://bugs.freedesktop.org/
    set name=info.source.upstream.defect-tracker.category \
        value=xorg/Server/general value=xorg/DDX/xorg

pkg:/developer/gnome/gettext

    set name=info.source.packager.defect-tracker.url \
        value=http://defect.opensolaris.org/
    set name=info.source.packager.defect-tracker.category \
        value=development/gnome/libraries

    set name=info.source.pkg-config:upstream.defect-tracker.url \
         value=https://bugs.freedesktop.org/
    set name=info.source.pkg-config:upstream.defect-tracker.category=pkg-config

    set name=info.source.intltool:upstream_defect-tracker.url \
         value=https://bugs.launchpad.net/intltool

    set name=info.source.gnome-common:upstream.defect-tracker.url \
         value=https://bugzilla.gnome.org/
    set name=info.source.gnome-common:upstream.defect-tracker.category \
         value="classification=Other;product=gnome-common"


I'm not thrilled about using source as both "a person/group/place
contributing to the development of a package" and "the programming
language input files that humans wrote", but don't have a better
idea right now (info.about.* and info.for.* both seemed a bit awkward).

I know, I'm totally over-obsessing about this, right?


_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to