Blame Manuals/Repository/Docbook/Introduction/history.docbook

543699
<chapter id="intro-history" xreflabel="History">
9b9860
c1f6dd
    <title>History</title>
9b9860
07a2e9
    <para>
07a2e9
        The CentOS Artwork Repository started during a discussion
07a2e9
        about how to automate the slide images of Anaconda, at CentOS
07a2e9
        Developers mailing list (
07a2e9
        url="mailto:centos-devel@centos.org">centos-devel@centos.org</ulink>)
07a2e9
        around 2008.  In such discussion, Ralph Angenendt rose up his
07a2e9
        hand to ask —Do you have something to show?—.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        To answer the question, Alain Reguera Delgado suggested a bash
07a2e9
        script which combined SVG and SED files in order to produce
07a2e9
        PNG images in different languages —in conjunction with
07a2e9
        the proposition of creating a Subversion repository where
07a2e9
        translations and image production could be distributed inside
07a2e9
        The CentOS Community—.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        Karanbirn Sighn considered the idea intresting and provided
07a2e9
        the infrastructure necessary to support the effort. This way
07a2e9
        the 
07a2e9
        url="https://projects.centos.org/trac/artwork/">CentOS Artwork
07a2e9
        SIG</ulink> and the 
07a2e9
        url="https://projects.centos.org/svn/artwork/">CentOS Artwork
07a2e9
        Repository</ulink> were officially created.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        Once the CentOS Artwork Repository was available, Alain
07a2e9
        Reguera Delgado uploaded the bash script for rendering
07a2e9
        Anaconda slides; Ralph Angenendt documented it very well; and
07a2e9
        people started to download working copies of CentOS Artwork
07a2e9
        Repository to produce slide images in their own languages.
07a2e9
    </para>
07a2e9
07a2e9
    <sect1>
07a2e9
    <title>2009's</title>
07a2e9
07a2e9
     <para>
07a2e9
        Around 2009, the rendition script was at a very rustic state
07a2e9
        where only slide images could be produced, so it was
07a2e9
        redesigned to extend the image production to other areas,
07a2e9
        different from slide images.  In this configuration, one SVG
07a2e9
        file was used as input to produce a translated instance of it
07a2e9
        which, in turn, was used to produce one translated PNG image
07a2e9
        as output. The SVG translated instance was created through SED
07a2e9
        replacement commands. The translated PNG image was created
07a2e9
        from the SVG translated instance using Inkscape command-line
07a2e9
        interface.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        The repository directory structure was prepared to receive the
07a2e9
        rendition script using design templates and translation files
07a2e9
        in the same location. There was one directory structure for
07a2e9
        each artwork that needed to be produced. In this
07a2e9
        configuration, if you would want to produce the same artwork
07a2e9
        with a different visual style or structure, it was needed to
07a2e9
        create a new directory structure for it because both the image
07a2e9
        structure and the image visual style were together in the
07a2e9
        design template.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        The rendition script was moved to a common place and linked
07a2e9
        from different directory structures. There was no need to have
07a2e9
        the same code in different directory structures if it could be
07a2e9
        in just one place and then be linked from different locations.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        Corporate identity concepts began to be considered. As
07a2e9
        referece, it was used the book "Corporate Identity" by Wally
07a2e9
        Olins (1989) and 
07a2e9
        url="http://en.wikipedia.org/Corporate_identity">Wikipedia</ulink>
07a2e9
        related links. This way, the rendition script main's goal
07a2e9
        becomes into: <emphasis>automating production of a monolithic corporate
07a2e9
        visual identity structure, based on the mission and the
07a2e9
        release schema of The CentOS Project</emphasis>.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        The repository directory structures began to be documented by
07a2e9
        mean of flat text files. Later, documentation in flat text
07a2e9
        files was moved onto LaTeX format and this way the "The CentOS
07a2e9
        Artwork Repository" documentation manual is initiated.
07a2e9
    </para>
07a2e9
    </sect1>
07a2e9
07a2e9
    <sect1>
07a2e9
    <title>2010's</title>
07a2e9
07a2e9
    <para>
07a2e9
        Around 2010, the rendition script changed its name from
07a2e9
        <command>render.sh</command> to
07a2e9
        <command>centos-art.sh</command> and became a collection of
07a2e9
        functionalities where rendition was just one among others
07a2e9
        (e.g., documentation and localization).
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        The <command>centos-art.sh</command> was initially conceived
07a2e9
        to automate frequent tasks inside the repository based in the
07a2e9
        idea of Unix toolbox: to create small and specialized tools
07a2e9
        that do one thing well.  This way, functionalities inside
07a2e9
        <command>centos-art.sh</command> began to be identified and
07a2e9
        separated one another. For example, when images were rendered,
07a2e9
        there was no need to load functionalities related to
07a2e9
        documentation manual. This layout moved us onto <quote>common
07a2e9
        functionalities</quote> and <quote>specific
07a2e9
        functionalities</quote> inside
07a2e9
        <command>centos-art.sh</command> script. Common
07a2e9
        functionalities are loaded when
07a2e9
        <command>centos-art.sh</command> script is initiated and are
07a2e9
        available to specific functionalities.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        Suddenly, no need was found to keep all the links spreaded
07a2e9
        around the repository in order to execute the
07a2e9
        <command>centos-art.sh</command> script from different
07a2e9
        locations.  The centos-art command-line interface was used
07a2e9
        instead. The centos-art command-line interface is a symbolic
07a2e9
        link stored inside the 
07a2e9
        class="directory">~/bin</filename> directory that point to
07a2e9
        <command>centos-art.sh</command> script. As default
07a2e9
        configuration, inside The CentOS Distribution, the path to
07a2e9
        <filename class="directory">~/bin</filename> is included in
07a2e9
        the search path for commands (see PATH environment variable).
07a2e9
        This way, using the centos-art command-line interface, it is
07a2e9
        possible for us to execute the
07a2e9
        <command>centos-art.sh</command> script from virtually
07a2e9
        anywhere inside the workstation, just as we frequently do with
07a2e9
        regular commands.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        Start using GNU getopt as default option parser inside the
07a2e9
        <command>centos-art.sh</command> script.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        The repository directory structure was updated to improve the
07a2e9
        implementation of corporate visual identity concepts.
07a2e9
        Specially in the area related to themes. Having both structure
07a2e9
        and style in the same file introduced content duplication when
07a2e9
        producing art works.  Because of this reason, they were
07a2e9
        divided out to separate directory structures: the design
07a2e9
        models and artistic motifs directory structures.  From this
07a2e9
        point on, the <command>centos-art.sh</command> is able to
07a2e9
        produce themes as result of arbitrary combinations between
07a2e9
        design models (structures) and artistic motifs (visual
07a2e9
        styles).
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        In the documentation area, the documents in LaTeX format were
07a2e9
        migrated to Texinfo format. In this configuration, each
07a2e9
        directory structure in the repository has a documentation
07a2e9
        entry associated in a Texinfo structure which can be read,
07a2e9
        edited and administered (e.g., renamed, deleted and copied)
07a2e9
        interactively through <command>centos-art.sh</command> script.
07a2e9
        Additionally, the texi2html program was used to produced
07a2e9
        customized XHTML output in conjunction with CSS from The
07a2e9
        CentOS Webenv.
07a2e9
    </para>
07a2e9
    </sect1>
07a2e9
07a2e9
    <sect1>
07a2e9
    <title>2011's</title>
07a2e9
07a2e9
    <para>
07a2e9
        Around 2011, the <command>centos-art.sh</command> script was
07a2e9
        redesigned to start translating XML-based files (e.g., SVG and
07a2e9
        Docbook files) through <command>xml2po</command> program and
07a2e9
        shell scripts (e.g., Bash scripts) through GNU gettext tools.
07a2e9
        This configuration provided a stronger localization interface
07a2e9
        for graphic designers, translators and programmers. The SED
07a2e9
        replacement files are no longer used to handle localization.
07a2e9
    </para>
07a2e9
07a2e9
    <para>
07a2e9
        The render, help and
07a2e9
        locale functionalities were consolidated as the
07a2e9
        most frequent tasks performed inside the repository.
07a2e9
        Additionally, the prepare and tuneup functionalities are also
07a2e9
        maintained as useful tasks.
07a2e9
    </para>
07a2e9
07a2e9
    <para> 
07a2e9
        In the documentation area, support for producing localized
07a2e9
        transformations of DocBook XML DTD instances was added through
07a2e9
        the render and locale functionalities. The
07a2e9
        render functionality uses the xsltproc
07a2e9
        command-line XSLT parser in conjunction
07a2e9
        with the styles provided by the
07a2e9
        <package>docbook-style-xsl</package> package, both of them
07a2e9
        included inside The CentOS Distribution.  The locale
07a2e9
        functionality creates the localized portable object
07a2e9
        (PO) the render functionality
07a2e9
        needs to produce localized transformations of DocBook XML DTD
07a2e9
        instances.  
07a2e9
    </para> 
07a2e9
07a2e9
    <para>
460d3e
        To build DocBook documentation, it was considered the idea of
460d3e
        using concepts behind repository directory structure as base,
460d3e
        not the opposite (as I've been doing with Texinfo backend, so
460d3e
        far).
460d3e
    </para>
460d3e
460d3e
    <para>
460d3e
        Producing documentation through DocBook XML as default
460d3e
        documentation backend consolidates render and
460d3e
        locale even more.  In this configuration, once
1b0247
        the DocBook files are written, you use locale
07a2e9
        functionality to localize the DocBook files in your prefered
07a2e9
        language and later, using render functionality,
1b0247
        you produce the XTHML and PDF outputs as specified in a XSLT
1b0247
        or DSL customization layer.
07a2e9
    </para>
460d3e
07a2e9
    </sect1>
9b9860
543699
</chapter>