From b3af262eb7886db4fcca502b147bcdb29518efeb Mon Sep 17 00:00:00 2001 From: Ulrich Müller Date: Mon, 25 Jan 2016 22:23:02 +0100 Subject: Update rnc schemas. --- metadata.rnc | 24 +++++++++++++++---- projects.rnc | 40 +++++++++++++++++++++++++++++++ repositories.rnc | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ staffing-needs.rnc | 22 ----------------- 4 files changed, 128 insertions(+), 27 deletions(-) create mode 100644 projects.rnc create mode 100644 repositories.rnc delete mode 100644 staffing-needs.rnc diff --git a/metadata.rnc b/metadata.rnc index 7a23cca..b7944d9 100644 --- a/metadata.rnc +++ b/metadata.rnc @@ -11,22 +11,26 @@ attlist.catmetadata &= pkgmetadata = element pkgmetadata { attlist.pkgmetadata, - (herd - | maintainer + (maintainer | natural-name | longdescription + | slots | use | upstream)* } attlist.pkgmetadata &= [ a:defaultValue = "" ] attribute pkgname { text }? -# One tag for each herd this package is assigned to. -herd = element herd { attlist.herd, text } # One tag for each maintainer of a package, multiple allowed maintainer = element maintainer { attlist.maintainer, email, (description | name)* } +# type attribute determines whether the maintainer is a person or a project. +# Unknown is added to handle s in s. Using it (or no +# explicit type) for Gentoo maintainers is prohibited. +attlist.maintainer &= + [ a:defaultValue = "unknown" ] + attribute type { "person" | "project" | "unknown" }? # Natural name for package, example: LibreOffice (for app-office/libreoffice) natural-name = element natural-name { attlist.natural-name, text } attlist.natural-name &= empty @@ -35,6 +39,15 @@ longdescription = element longdescription { attlist.longdescription, (text | pkg | cat)* } +# A description of the packages SLOTs +slots = element slots { attlist.slots, slot*, subslots? } +# A particular SLOT +slot = element slot { attlist.slot, text* } +# name attribute holds the name of the SLOT, for sub-SLOTS use the subslots element +attlist.slot &= attribute name { text } +# The meaning of sub-SLOTs for the whole package +subslots = element subslots { attlist.subslots, text* } +attlist.subslots &= empty # The changelog of the package # Please note that #PCDATA is mentioned only for the upstream changelog @@ -112,6 +125,7 @@ attlist.remote-id &= | "freecode" | "freshmeat" | "github" + | "gitlab" | "gitorious" | "google-code" | "launchpad" @@ -139,6 +153,7 @@ attlist.cat &= empty attlist.description &= [ a:defaultValue = "C" ] attribute lang { text }? attlist.longdescription &= [ a:defaultValue = "C" ] attribute lang { text }? +attlist.slots &= [ a:defaultValue = "C" ] attribute lang { text }? attlist.use &= [ a:defaultValue = "C" ] attribute lang { text }? # The restrict attribute, this attribute specifies restrictions on # the applicability of tags on versions. The format of this attribute is @@ -148,7 +163,6 @@ attlist.use &= [ a:defaultValue = "C" ] attribute lang { text }? # # For required tags, there must be either an unrestricted version, or a # version that is default restricted. -attlist.herd &= attribute restrict { text }? attlist.maintainer &= attribute restrict { text }? attlist.longdescription &= attribute restrict { text }? attlist.flag &= attribute restrict { text }? diff --git a/projects.rnc b/projects.rnc new file mode 100644 index 0000000..b78b56f --- /dev/null +++ b/projects.rnc @@ -0,0 +1,40 @@ +namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" + +projects = element projects { attlist.projects, project* } +attlist.projects &= empty +# A project (identified by email address) +project = + element project { + attlist.project, email, name, url, description, subproject*, member* + } +attlist.project &= empty +# Contact e-mail address of a project or a project member +email = element email { attlist.email, text } +attlist.email &= empty +# Name of a project or a project member +name = element name { attlist.name, text } +attlist.name &= empty +# URL of the project homepage +url = element url { attlist.url, text } +attlist.url &= empty +# Description of the project +description = element description { attlist.description, text } +attlist.description &= empty +# Project member +member = element member { attlist.member, email, name, role } +# is-lead="1" indicates that the member is the project's lead +attlist.member &= + [ a:defaultValue = "0" ] attribute is-lead { "0" | "1" }? +# Project member role +role = element role { attlist.role, text } +attlist.role &= empty +# Subproject of a project +subproject = element subproject { attlist.subproject, text } +# inherit-members="1" indicates that the project inherits members +# from the subproject + +# ref="" references the subproject by the contact e-mail address +attlist.subproject &= + [ a:defaultValue = "0" ] attribute inherit-members { "0" | "1" }?, + attribute ref { text } +start = projects diff --git a/repositories.rnc b/repositories.rnc new file mode 100644 index 0000000..265a371 --- /dev/null +++ b/repositories.rnc @@ -0,0 +1,69 @@ +# $Header + +# Used by [gentoo]/xml/htdocs/proj/en/overlays/repositories.xml + +# The source copy and history of this file is available from +# http://git.overlays.gentoo.org/gitweb/?p=proj/repositories-xml-format.git + +# Gentoo repositories.xml DTD 1.0 +# +# Modelling by +# Robert Buchholz +# Sebastian Pipping +# Mounir Lamouri +# Tiziano Müller +# +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 or later + +default namespace = "" +namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" + +repositories = element repositories { attlist.repositories, repo* } +attlist.repositories &= + [ a:defaultValue = "1.0" ] attribute version { string "1.0" }? +repo = + element repo { + attlist.repo, + name, + description+, + longdescription*, + homepage?, + owner+, + source+, + feed* + } +attlist.repo &= + attribute priority { text }?, + attribute quality { + "core" | "stable" | "testing" | "experimental" | "graveyard" + }, + attribute status { "official" | "unofficial" } +name = element name { attlist.name, text } +attlist.name &= empty +description = element description { attlist.description, text } +attlist.description &= attribute lang { text }? +longdescription = + element longdescription { attlist.longdescription, text } +attlist.longdescription &= attribute lang { text }? +homepage = element homepage { attlist.homepage, text } +attlist.homepage &= empty +owner = element owner { attlist.owner, email, name? } +attlist.owner &= attribute type { "project" | "person" }? +source = element source { attlist.source, text } +attlist.source &= + attribute type { + "bzr" + | "cvs" + | "darcs" + | "git" + | "mercurial" + | "rsync" + | "svn" + | "tar" + } +feed = element feed { attlist.feed, text } +attlist.feed &= empty +email = element email { attlist.email, text } +attlist.email &= empty +start = repositories diff --git a/staffing-needs.rnc b/staffing-needs.rnc deleted file mode 100644 index bb62742..0000000 --- a/staffing-needs.rnc +++ /dev/null @@ -1,22 +0,0 @@ -staffingNeeds = element staffingNeeds { attlist.staffingNeeds, needed* } -attlist.staffingNeeds &= empty -needed = - element needed { attlist.needed, summary, contact, description } -attlist.needed &= empty -summary = element summary { attlist.summary, text } -# If unset, treated as '0'. -attlist.summary &= attribute priority { text }? -# Should be in RFC-2822. -attlist.summary &= attribute dateRequested { text } -contact = element contact { attlist.contact, text } -# Makes a link called "Joe Bloggs", for example rather than jbloggs@... -attlist.contact &= attribute name { text }? -# If set to not "" then the string is formatted to "the ... herd" -attlist.contact &= attribute herd { text }? -# If set to not "" then the string is formatted to "the ... team" -attlist.contact &= attribute team { text }? -description = element description { attlist.description, (text | uri)* } -attlist.description &= empty -uri = element uri { attlist.uri, text } -attlist.uri &= attribute link { text }? -start = staffingNeeds -- cgit v1.2.3-65-gdbad