Hi,

Thanks for this initial work. 

On 26/04/11 at 08:38 +0200, Vincent Fourmond wrote:
>   Hello all !
> 
> On Tue, Apr 19, 2011 at 10:33 AM, Lucas Nussbaum
> <lu...@lucas-nussbaum.net> wrote:
> >> > What you are asking for is not a policy, it's a howto.
> >>
> >>   I'm asking for both.
> >>
> >>   I think the policy should be a docbook-like document (like the
> >> Policy), while the howto probably should be a wiki page.
> >
> > I'm not too interested in working on paperwork, but if you are
> > interested, I strongly encourage you to lead that work :)
> >
> >>   What about making the Debian Ruby (sub) Policy part of the gem2deb
> >> package ?
> >
> > Yes, why not.
> 
>   Good. I've written a first draft of a Ruby policy, which is
> basically my interpretation of the whole gem2deb philosophy. I
> encourage everyone to read it and point me where you think I have
> misunderstood (on this list) or correct it themselves.
> 
>   The document is almost complete in the sense that I think I have
> covered most of the requirements. A big exception though: I haven't
> addressed at all the requirements for Ruby interpreters, which I think
> should be part of the policy.
> 
>   The document is located in the gem2deb git repository.

Could you make it a separate package? It sounds strange to first say that the 
gem2deb documentation cannot be considered a policy, and then to put the 
tentative ruby policy in the gem2deb package.

> It is a
> docbook document, which is fairly easy to read/write. Install the 
> package docbook-utils to convert to other formats (PDF, HTML, etc...).

Could you provide a makefile?

Some quick comments:
>       <para>
>         All binary packages that contains Ruby code &must; have a
>         package name in the form <literal>ruby-</literal>&pkg;,
>         where &pkg; is left to the choice of the packager.

No, be more specific. Usually, it should be what you "require", or the gem name.

> However,
>         packagers &may; ignore this rule in the following cases:
>         <itemizedlist>
>           <listitem>
>             <para>
>               ruby interpreters;
>             </para>
>           </listitem>
> 
>           <listitem>
>             <para>
>               programs;
>             </para>
>           </listitem>

I prefer the wording from RubyInWheezy. + give examples

>           <listitem>
>             <para>
>               packages providing ruby code to be use specifically as
>               plugins for a given program, and that have no use
>               outside of this program.
>             </para>
>           </listitem>

example?

>         </itemizedlist>
>         The source package name &should; match the name of package
>         that holds the code.

the name of the main binary package?

>       </para>
>       <para>
>         In the case of software previoulsy relased with the old
>         package name policy
>         (<literal>lib-</literal>&pkg;<literal>-ruby</literal> and
>         versioned variants thereof), packagers &should; provide
>         transition packages with the old names depending on the new
>         package.
>       </para>
>       </sect2>

This is a must, I think

>       <sect2>
>       <title>Supported Ruby implementations</title>
>       <para>
>         Packages &should; support as many different implementations
>         of Ruby as is possible. Reasons why this is not done
>         &should; be documented visibly, such as in the
>         <filename>README.Debian</filename> file.

I prefer to document that in the changelog.

>         Packages &must; list the versions of Ruby supported in the
>         source package using the <literal>XS-Ruby-Versions</literal>
>         statement in <filename>debian/control</filename>. This
>         statement &must; be a space-separated list of one or more of
>         <literal>ruby1.8</literal>, <literal>ruby1.9</literal> or
>         <literal>all</literal> (the latter meaning all the supported
>         Ruby versions).

Wrong, it's ruby1.9.1

>       </para>
>       <para>
>         All files for the different implementations &must; be
>         shipped inside a single binary package. This binary package
>         &must; have a <literal>XB-Ruby-Versions</literal> statement
>         containing the space-separated list of Ruby implementations
>         supported by the binary package, with fields identical to
>         those for the source package, excepted that
>         <literal>all</literal> cannot be used: the full list &must;
>         be listed explicitly.
>       </para>
>       </sect2>
>       <sect2>
>       <title>Installation paths</title>
>       <para>
>         Pure ruby code (ie ruby files) &must; be installed under
>         <filename>/usr/lib/ruby/vendor_ruby</filename>.
>       </para>
>       <para>
>         Compiled extensions &must; be installed in the
>         <literal>'vendorarchdir'</literal> path.
>       </para>
>       </sect2>
> 
>       <sect2>
>       <title>Dependencies</title>
>       <para>
>         All package &must; depend either on <literal>ruby1.8 |
>         ruby-interpreter</literal> if the package supports all
>         implementations of Ruby or on the specific implementations
>         needed if that is not the case.
>       </para>
>       </sect2>
> 
>       <sect2>
>       <title>Documentation</title>
>       <para>
>         Packages &may; build a <literal>rdoc</literal>
>         documentation. Unless the documentation is really small, it
>         &should; be packaged in a separate binary package named
>         <literal>ruby-</literal>&pkg;<literal>-doc</literal>.
>       </para>
>       </sect2>
> 
>       <sect2>
>       <title>Rubygems</title>
>       <para>
>         Do we disallow the use of <literal>require
>         'rubygems'</literal> by policy ?

Yes

>     </sect1>
>     
>     <sect1 id="programs">
>       <title>Ruby programs</title>

s/programs/applications

>       <para>
>       Excepted for the package name, which does not have to comply
>       to any rules, Ruby programs &must; obey all rules that apply
>       to Ruby libraries (previous sections).  In addition, they must
>       obey the following rules.
>       </para>
> 
>       <sect2>
>       <title>Shebang</title>
>       <para>
>         All the programs &must; have a <literal>#!
>         /usr/bin/ruby1.8</literal> shebang, unless they rely on
>         implementation specific libraries, in which case the shebang
>         should reflect these requirements.
>       </para>
>       </sect2>
>     </sect1>
>     
> 
>   </chapter>
>    
>   <chapter id="advices">
>     <title>Advices to Ruby packagers</title>
>     
>     <para>
>       The contents of this chapter are not part of the Policy per
>       se. However, they should prove useful for developers wishing to
>       package Ruby-related packages.
>     </para>
> 
>     <para>
>       Nothing here yet.
>     </para>
>     
>     
>   </chapter>

- Lucas


-- 
To UNSUBSCRIBE, email to debian-ruby-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110426064939.ga6...@xanadu.blop.info

Reply via email to