public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] IMPORTANT: The proposal for the metadata.xml file
@ 2003-06-27 20:48 Paul de Vrieze
  2003-06-27 20:56 ` [gentoo-dev] Re: [gentoo-core] " Jon Portnoy
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Paul de Vrieze @ 2003-06-27 20:48 UTC (permalink / raw
  To: gentoo-dev; +Cc: gentoo-core


[-- Attachment #1.1: body text --]
[-- Type: text/plain, Size: 3794 bytes --]


First let me introduce the context of this proposal.

This proposal is a vital step in making herds work. This proposal proposes the 
format of the metadata file. This proposed file is the result of a process in 
which a number of developers where involved. Before implementing metadata 
files, we want some extra input, and I will make sure that this input is 
taken into account in the final format.

I would like the input from all of you on the files. Note that metadata.dtd is 
the most important one, and db.metadata.xml is an example for the sys-lib/db 
package, that shows some of the features of the dtd. The example is not meant 
to be exhaustive, though.




Below I will write out the reasons for certain choices that have been made. I 
have also put in http://cvs.gentoo.org/~pauldv/metadata-2003.05.26.log and 
IRC log of a discussion of 26 May with me, absinthe, drobbins, danarmak and 
others on this topic.

- We need to have herds. For that we need to be able to assign packages to
  herds. While we first thought a MAINTAINER file was enough, through
  discussions we found that there is more information we want to have about a
  package, and that we are probably going to want to add more even later on.
  For this XML was chosen as an implementation format for this file.

  There must be rather strong arguments against it to let go the choice of XML

- We need ways to have people or herds only responsible for only a certain
  versions of an ebuild. For that reason the restrict attribute is in the DTD

- The changelog. This probably will be a topic of debate. Initial
  implementation is not necessary for the herds system to function. The
  current changelog format though has some problems as the confusion about the
  format some months ago showed. With including the changelog into XML many of
  those issues could be resolved. It also would offer possibilities like
  querying user contributions or things like that.

  If it is decided to include the changelog into the metadata.xml file,
  echangelog should be changed accordingly. We further need a conversion tool
  in both directions. That should not be too difficult though.

- Long descriptions. There have been many requests for long descriptions of
  packages, with inclusion of such a tag in the metadata.xml file this can be
  done.

- Internationalisation. The various descriptions have a lang attribute
  allowing translated versions. The format of this attribute should be the
  same as with glibc. One aditional point is that there MUST be a description
  in English or "C" language.

  The rationale behind it is that the costs are small, and we would do many
  people a great favor by allowing this feature.

- packages allways have herds, but may also have maintainers. The reason that
  packages must allways have herds is that maintainers can leave, or have
  other reasons they cannot maintain a package anymore. We however still need
  to have someone responsible for the package. In such a case the
  maintainership falls back on the herd, or herds assigned to the bug.

- Multiple herds per package. There are packages that cross boundaries of
  different categories. An example would for example be a kde p2p client. Such
  an ebuild should follow the kde style guide, but also should fall to people
  who are maintaining similar clients. For that reason the primary herd would
  be p2p and the secondary would be kde. (First one in the file is primary).

Thanks for reading this overly long email. I look forward on reading your 
replies and suggestions, but please do not quote all of my message in the 
reply.

Paul

-- 
Paul de Vrieze
Researcher
Mail: pauldv@cs.kun.nl
Homepage: http://www.devrieze.net

[-- Attachment #1.2: db.metadata.xml --]
[-- Type: text/xml, Size: 2746 bytes --]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "metadata.dtd">
<pkgmetadata>
<herd>sys-libs</herd>
<maintainer restrict=">=sys-libs/db-3.2.9-r5">
  <!-- I'm currently working on making db 4 work with gentoo, but am not
        maintaining general db -->
  <email>pauldv@gentoo.org</email>
  <name>Paul de Vrieze</name>
  <description>Making db4 work with gentoo</description>
</maintainer>

<longdescription>The Berkeley Database (Berkeley DB) is a programmatic toolkit
that provides embedded database support for both traditional and client/server
applications. Berkeley DB includes b+tree, queue, extended linear hashing,
fixed, and variable-length record access methods, transactions, locking,
logging, shared memory caching and database recovery. DB supports C, C++, Java,
and Perl APIs. DB is available for a wide variety of UNIX platforms as well as
Windows NT and Windows '95 (MSVC 4, 5 and 6).</longdescription>
<longdescription lang="nl">De Berkeley Database is een programmatische toolkit
die embedded database support verzorg voor en traditionele en client/server
applicaties. Berkeley DB bevat b+tree, rij, uitgebreide lineaire hashing, vaste
en variabele lengte record toegangsmethoden, transacties, locking, logging,
gedeeld geheugen caching en database herstel. DB ondersteund C, C++, Java en
Perl API's. DB is beschikbaar voor veel UNIX platformen en
Windows.</longdescription>
<changelog>
<change>
  <date>2003/06/07</date>
  <version>3.2.9-r5</version><version>4.0.14</version>
  <version>4.1.24</version><version>4.1.25</version>
  <developer><name>Paul de Vrieze</name><email>pauldv@gentoo.org</email></developer>
  <file>db-3.2.9-r5.ebuild</file>
  <file>db-4.0.14.ebuild</file>
  <file>db-4.1.24.ebuild</file>
  <file>db-4.1.25.ebuild</file>
  <bug>22393</bug>
  <contributor><email>liquidx@gentoo.org</email></contributor>
  <description>
    Fix the autosymlinking script to work in a cross environment.
  </description>
</change>
<change>
  <date>2003/05/30</date>
  <developer><name>Paul de Vrieze</name><email>pauldv@gentoo.org</email></developer>
  <version>4.1.25</version>
  <file>db-4.1.25.ebuild</file>
  <description>
  Add new upstream version db-4.1.25.
  </description>
</change>
<change>
  <date>2003/05/28</date>
  <developer><name>Grant Goodyear</name><email>g2boojum@gentoo.org</email></developer>
  <file>db-4.0.14.ebuild</file>
  <version>4.0.14</version>
  <description>
  Changed goofy "-x86" mask to "~x86" masks, since the package
  is still hard-masked in package.mask.  (This way those of us
  trying to test this package can use package.unmask!)
  </description>
</change>
<!-- omitted other changes as they are not interesting as examples -->
</changelog>



</pkgmetadata>


[-- Attachment #1.3: metadata.dtd --]
[-- Type: text/xml, Size: 2702 bytes --]

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT pkgmetadata ( (herd|maintainer|longdescription|changelog)* )>
  <!-- One tag for each herd this package is assigned to. -->
  <!ELEMENT herd (PCDATA)>

  <!-- One tag for each maintainer of a package, multiple allowed-->
  <!ELEMENT maintainer ( email, (description, name)* )>

  <!-- A long description of the package in freetext-->
  <!ELEMENT longdescription (PCDATA)>

  <!-- The changelog of the package-->
  <!ELEMENT changelog (change)*>
    <!-- The changelog contains various "changes"-->
    <!ELEMENT change (date,developer,(version|description|file|contributor|bug)*)>
      <!ELEMENT date (PCDATA)>
        <!-- The date of the change, in "YYYY-MM-DD" format -->
      <!ELEMENT contributor (name?,email)>
        <!-- The developer that made the change. The email is required, name
	   is optional-->
      <!ELEMENT version (PCDATA)>
        <!--version of the packages involved (one tag per version)-->
      <!ELEMENT file (PCDATA)><!-- one tag per file touched -->
      <!ELEMENT contributor (name?,email?)>
        <!-- A reference to a user that helped in causing this change. 
          There should at least be a name or email address included. 
          Email is preferred -->
      <!ELEMENT bug (PCDATA)>
        <!-- bug-id of a bug fixed by this change, multiple allowed. The 
          format of this is a number or alias for a bug. NOT including a 
          # character -->
          
<!-- Common attributes -->

<!-- the lang attribute, specifies the language of this tag. This is 
  only useful for descriptions of various kinds. If a tag with this 
  attribute is included there must be a description in the default 
  language "C" or "en", which is equivalent -->
  <!ATTLIST description lang (CDATA) "C">
  <!ATTLIST longdescription lang (CDATA) "C">

<!-- The restrict attribute, this attribute specifies restrictions on 
  the applicability of tags on versions. The format of this attribute is 
  equal to the format of DEPEND lines in ebuilds. There is one special 
  value though: restrict="*". A tag that specifies this only applies if 
  there are no other tags that apply.
  
  For required tags, there must be either an unrestricted version, or a 
  version that is default restricted. -->
  <!ATTLIST herd restrict (CDATA) "">
  <!ATTLIST maintainer restrict (CDATA) "">
  <!ATTLIST longdescription restrict (CDATA) "">



<!-- standard parts -->
<!ELEMENT email (PCDATA)><!-- an email address -->
<!ELEMENT name (PCDATA)><!-- the name of a person (maintainer, contributor)-->
<!ELEMENT description><!-- A description of a maintainer or change-->

[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2003-06-28 13:11 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-27 20:48 [gentoo-dev] IMPORTANT: The proposal for the metadata.xml file Paul de Vrieze
2003-06-27 20:56 ` [gentoo-dev] Re: [gentoo-core] " Jon Portnoy
2003-06-27 21:31   ` Luca Barbato
2003-06-28  0:17     ` Lars Weiler
2003-06-28  0:41       ` Jon Portnoy
2003-06-28  0:45         ` Todd Berman
2003-06-28  0:50           ` Jon Portnoy
2003-06-28  0:53             ` Christian Axelsson
2003-06-28  0:48         ` Matt Rickard
2003-06-28  9:57         ` Martin Schlemmer
2003-06-28 10:02           ` Paul de Vrieze
2003-06-28  1:18     ` Terje Kvernes
2003-06-28 13:11   ` Weeve
2003-06-27 21:19 ` [gentoo-dev] " Christian Axelsson
2003-06-28  7:39   ` Paul de Vrieze
2003-06-28  6:16 ` [gentoo-dev] Re: [gentoo-core] " Daniel Robbins
2003-06-28  7:46   ` Paul de Vrieze
2003-06-28  9:10 ` [gentoo-dev] " Heinrich Wendel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox