Hi, At Debconf earlier this year, I gave a talk about the benefits of creating language for a lintian/linda check whenever we introduce a new policy rule (when appropriate, and feasible, of course). Not only do we get a instant Lintian check, but it would also tend to focus the discussion and design of the policy rule.
There a re a number of bits and pieces of policy scattered across several documents, not all of which can be found in the policy package. These documents cover different areas, Menu, Python, Perl, X, etc. They also are at different places in the spectrum from release critical measures to best practice recommendations. Also, there are various levels at which people tend to approach the policy document; some people prefer reading the document by topics; which is useful is one is packaging something in a topic area covered by multiple policy documents; others just want to see the "hard" policy rules, and defer best practices until later, to prevent being drowned in a flood of information. Then there is the dimension of Debian sub projects and Derivatives, who would perhaps benefit from deriving from Debian policy, but adding some specialized directives of their own. One solution that enables all these use cases is doing a set of books, each book being a separate entity, with different author sets, but all using a common schema; each rule is an entity, has title, severity, normative section, rationale, informative section, and lintian psuedo-code. Each book can have separate copyrights, SCM systems, and can even be compiled and published separately. Each rule can become a separate XML entity, and live in a shared location on disk like /usr/share/debian-policy/<some dir structure>. This way, you have a published book, and a dev version that has the entity definitions in a well known place; and people can create their own sets, reorder the rules, select only rules in a certain topic area, add rules of their own, or whatever. In other words, you can then cherry pick the best part of each others manuals/ I had a conversation earlier with Roland Mas, he says that it's pretty easy then to write an XSLT stylesheet, or a Perl script, that could parse the set/book/article/rule and ensure that all required sections are present in the correct order. You can even decide to show or hide various sections when rendering a final document; for instance if you want to generate a PDF of only the normative part of the Perl policy, you can decide to hide the lintian code and rationale; again, it's "a simple matter of XSLT". With this in mind, I have created an initial draft format of the Debian technical policy set, and am including it in this mail. Comments appreciated. manoj <?xml version='1.0' encoding="UTF-8"?> <!DOCTYPE set PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> <set> <title>The Debian policy Manual Set</title> <titleabbrev>Debian Policy Set</titleabbrev> <setinfo> <author> <firstname>Manoj</firstname> <surname>Srivastava</surname> </author> <copyright> <year>2007</year> </copyright> <legalnotice> <para> This set outline free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. </para> <para> This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. </para> <para> You should have received a copy of the GNU General Public License along with this document; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA </para> </legalnotice> <corpname>The Debian Project</corpname> <revhistory> <revision> <date>November 30<superscript>th</superscript>, 2007</date> <revdescription> <remark>Initial draft</remark> </revdescription> </revision> </revhistory> </setinfo> <book> <title>The Debian Technical Policy Manual</title> <bookinfo> <author> <firstname>Manoj</firstname><surname>Srivastava</surname> </author> <copyright> <year>2007</year> </copyright> <legalnotice> <para> This set outline free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. </para> <para> This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. </para> <para> You should have received a copy of the GNU General Public License along with this document; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. A copy of the GNU General Public License is available as <filename>/usr/share/common-licenses/GPL</filename> in the Debian GNU/Linux distribution or on the World Wide Web at the GNU General Public Licence <uri>http://www.gnu.org/copyleft/gpl.html</uri>. </para> </legalnotice> </bookinfo> <preface> <title>Foreword</title> <para> I became involved in the Debian technical policy document nearly a decade ago (at the time of writing), in 1998. Almost from the beginning I wanted to move the technical policy document away from the original format, and into something more well established, like DocBook. With this draft, that goal has come withing sight. </para> <para> This manual describes the policy requirements for the Debian GNU/Linux distribution. This includes the structure and contents of the Debian archive and several design issues of the operating system, as well as technical requirements that each package must satisfy to be included in the distribution. </para> </preface> <chapter> <title>Chapter Title</title> <abstract> <para> What the chapter is all about </para> </abstract> <section> <title>Section Title</title> <abstract> <para> What this section is all about </para> </abstract> <section role="PolicyRule"> <title>Policy Rule Example</title> <para role="priority"> <property>MUST</property> </para> <para role="topic"> <property>Control files and their fields</property> </para> <authorblurb> <para> This rule was contributed by Alice and Bob. </para> </authorblurb> <section role="Check"> <title>>Lintian Rule</title> <programlisting> Psuedo code for Lintian check </programlisting> </section> <section role="Normative"> <title>Normative Content</title> <para> Actual policy rule </para> </section> <section role="Informative"> <title>Informative Content</title> <para> Nor normative content, explanations, etc </para> <example> <title>Usage Example</title> <para> Synopsys and examples </para> </example> <section role="Rationale"> <title>Rationale</title> <para> A rationale for the policy rule </para> </section> </section> </section> </section> </chapter> </book> <book> <title>The Developers reference</title> </book> </set> -- "Ignorance transcends architecture." James Gaskin Manoj Srivastava <[EMAIL PROTECTED]> <http://www.debian.org/~srivasta/> 1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]