From e1c963bf0d31a4b9813844ebdcd10c9213022bd0 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sat, 16 Apr 2016 10:51:22 +0200 Subject: [PATCH] doc: Add specification for Java packages * doc/guix.texi (Java Packages): New subsection. --- doc/guix.texi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 9e634135a8..54dc7061e8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -226,6 +226,7 @@ Packaging Guidelines * Synopses and Descriptions:: Helping users find the right package. * Python Modules:: Taming the snake. * Perl Modules:: Little pearls. +* Java Packages:: Coffee break. * Fonts:: Fond of fonts. Contributing @@ -10776,6 +10777,7 @@ needed is to review and apply the patch. * Synopses and Descriptions:: Helping users find the right package. * Python Modules:: Taming the snake. * Perl Modules:: Little pearls. +* Java Packages:: Coffee break. * Fonts:: Fond of fonts. @end menu @@ -11017,6 +11019,25 @@ are also prepended by @code{perl-}. Such modules tend to have the word prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}. +@node Java Packages +@subsection Java Packages + +Java programs standing for themselves are named as any other package, +using the lowercase upstream name. + +To avoid confusion and naming clashes with other programming languages, +it is desirable that the name of a package for a Java package is +prefixed with @code{java-}. If a project already contains the word +@code{java}, we drop this; for instance, the package @code{ngsjava} is +packaged under the name @code{java-ngs}. + +For Java packages containing a single class or a small class hierarchy, +we use the lowercase class name, replace all occurrences of @code{.} by +dashes and prepend the prefix @code{java-}. So the class +@code{apache.commons.cli} becomes package +@code{java-apache-commons-cli}. + + @node Fonts @subsection Fonts