# Document $Id: HACKING,v 1.3 2007/01/28 17:58:41 dleidert Exp $ # Summary Hacking on and contributing to the project. Terms like "MAY", "MUST", "MUST NOT", "RECOMMEND", "SHALL" and "SHOULD" are based on RFC 2119 (http://www.ietf.org/rfc/rfc2119.txt). 1. General 2. MIME type database 3. Icons, Graphics and Art 4. Stylesheets 5. Website 1. General ========== All source files MUST be UTF-8 encoded. All source files MUST contain a copyright and a short license information. A copyright is granted with significant changes (don't forget to add or update the copyright information in such a situation). All source files SHOULD contain an ID and summary line at the top of the file or at least in the head section. It's format SHALL be for text files: # Document $Id: HACKING,v 1.3 2007/01/28 17:58:41 dleidert Exp $ # Summary ...summary... and for XML files: <!-- Document $Id: HACKING,v 1.3 2007/01/28 17:58:41 dleidert Exp $ Summary ...summary... --> Files of the build system, like e.g. Makefile.am, configure.ac or XSLT stylesheets, SHALL be licensed with a non-restrictive all-permissive license: # This file is free software. The copyright owner gives unlimited # permission to copy, distribute and modify it. ChangeLog entries MUST follow the GNU coding standards http://www.gnu.org/prep/standards/html_node/Change-Logs.html. CVS commit messages MUST be created from the related ChangeLog entry for a change. Before a release, the NEWS file MUST be updated. Releases MUST be created from `make distcheck' to ensure an error-free build. 2. MIME type database ===================== The chemical MIME types, global pattern and acronyms SHALL be in alphabetical order without dividing between supported and unsupported MIME types. The database XML file MUST have an indentation with one tab per indentation level. Every MIME type entry, that is considered to be supported, MUST have a non-empty `added' attribute. The DTD MUST be documented for easy understanding. 3. Icons, Graphics and Art ========================== Another important part of the package are basic graphics. Users SHOULD be able to identify chemical files ideally on the spur of the moment. Good icons shown in nautilus, konqueror or thunar can help here. Icons MAY show if a file contains: - 2D or 3D data - spectra or structure data - crystal or molecule data - XML, plain text or binary data - simple (SMILES) strings data - sequence data (DNA, ...) - MM results - MDL or CambridgeSoft (or ...) data (showing their icons) - ... So there are no boundaries set to your creativity - with a few exceptions (1) Only icons for the generic hicolor theme and the general pixmaps location are accepted. If you want to create icons (or if you already have icons) for specific KDE and GNOME themes, they SHALL go directly into these themes (upstream) and MUST NOT go into the chemical-mime-data package. Despite this limitation you MAY create different icons for KDE and GNOME. (2) Theme icons for the hicolor theme MUST be in scalable vector graphics. Raster images MUST be in PNG format. (3) Your images MUST be available at least under an OSI-approved license compatible to the license used for the chemical-mime-data package - this is currently the GNU Lesser General Public License (LGPL) 2.1 (see COPYING). 4. Stylesheets ============== Stylesheets MUST have an indentation with one tab per indentation level. Named templates MUST contain a meaningful template name and an introducing documentation of the kind: <!-- * ...comment... --> The order of templates/elements is: - xsl:import - xsl:output - xsl:(preserve|strip)-space - matching xsl:templates beginning with the root element followed by the other in alpabetical order, ended with those, which are not processed - named xsl:templates beginning with a root template (if any) followed by the other in alphabetical order Common templates used by more than one stylesheet SHOULD go into the generic cmd_common.xsl stylesheet. 5. Website ========== It is RECOMMENDed that variable content is created automatically via (e.g.) XSLT to ease and reduce maintenance work. # UTF-8