Blame Documentation/Models/Docbook/Tcar-ug/Repository/History/2012.docbook

c4f5bf
<section id="repository-history-2012">
b0cc66
6acace
    <title>2012's</title>
6acace
6acace
    <para>
6acace
        &TCAR; development was eventually stopped at November 2011
cea04d
        until July 2012 when we needed to make the
6acace
        <command>centos-art.sh</command> script a bit more
6acace
        customizable than it presently was. For example, it was
1df8fc
        considered as a need that functionalities inside the
1df8fc
        <command>centos-art.sh</command> script must be not just
1df8fc
        conceived independent one another but reusable in different
cea04d
        contexts as well.
6acace
    </para>
378f37
25c17d
    <simplesect id="repository-history-2012-UpdateLocales">
b0cc66
    <title>Make Localization Of <command>centos-art.sh</command>
b0cc66
    Script Specific To Different Contexts</title>
b0cc66
 
b0cc66
    <para>
b0cc66
        The procedure used to locale messages inside the
b0cc66
        <command>centos-art.sh</command> script had to be re-designed
b0cc66
        in order to accept such pluggable behavior into the script. We
b0cc66
        couldn't publish unique <filename>centos-art.sh.po</filename>
b0cc66
        and <filename>centos-art.sh.mo</filename> files because they
b0cc66
        may contain different information in different contexts. For
b0cc66
        example, if you are using the <function>render</function> and
b0cc66
        <function>help</function> functionalities you only need
b0cc66
        translation messages for them and not those from other
b0cc66
        functionalities that may exist in the central repository but
b0cc66
        you didn't download nor use into your working copy.
b0cc66
    </para>
b0cc66
b0cc66
    <para>
b0cc66
        One solution for this could be to have independent PO files
b0cc66
        for each functionality of <command>centos-art.sh</command>
b0cc66
        script which are combined to create the final PO and MO files
b0cc66
        that <application>gettext</application> uses to retrive
b0cc66
        translated strings when <command>centos-art.sh</command>
b0cc66
        script is running. For this solution to be effective, you must
b0cc66
        be selective about the functionalities and locales directories
b0cc66
        you download into your working copy. For example, if you want
b0cc66
        to use the render functionality and its locale messages only,
b0cc66
        you must download the required directories and exclude others.
b0cc66
    </para>
b0cc66
378f37
    <note>
378f37
    <para>
b0cc66
        In case you don't want to be selective and download the whole
b0cc66
        repository, the creation of the
b0cc66
        <filename>centos-art.sh.po</filename>,
b0cc66
        <filename>centos-art.sh.pot</filename> and
b0cc66
        <filename>centos-art.sh.mo</filename> files will occur
b0cc66
        automatically the first time you run the
b0cc66
        <function>prepare</function> functionality (which require the
b0cc66
        <function>locale</function> functionality to be available), or
b0cc66
        later, by running the following command: 
47422e
        <screen>centos-art locale Scripts/Bash --update</screen>
378f37
    </para>
b0cc66
b0cc66
    <para>
b0cc66
        For more information about the <function>prepare</function>
b0cc66
        and <function>locale</function> functionalities, see 
b0cc66
        linkend="scripts-bash-locale" /> and 
b0cc66
        linkend="scripts-bash-prepare" /> respectively.
b0cc66
    </para>
b0cc66
378f37
    </note>
b0cc66
6acace
    <para>
b0cc66
        As shown in <xref linkend="repository-history-2012-2" />, both
b0cc66
        <function>Commons</function> and <function>Locales</function>
b0cc66
        functionalities will always be required directories. The
b0cc66
        <function>Commons</function> directory contains the common
b0cc66
        functionalities and the <function>Locales</function> directory
b0cc66
        contains the standard procedures you need to run in order to
b0cc66
        build the final <filename>centos-art.sh.mo</filename> file
b0cc66
        used by <application>gettext</application> to retrive
b0cc66
        translation strings when the <command>centos-art.sh</command>
b0cc66
        script is running. Remember that
b0cc66
        <filename>centos-art.sh.pot</filename>,
b0cc66
        <filename>centos-art.sh.po</filename> files aren't under
b0cc66
        version control and they are built by combining each
b0cc66
        funtionality message.po file into a PO and later a MO file.
6acace
    </para>
6acace
b0cc66
    <example id="repository-history-2012-2">
b0cc66
    <title>Directory structure of a rendering-only context</title>
b0cc66
    <screenshot>
b0cc66
    <screeninfo>Directory structure of a rendering-only context</screeninfo>
b0cc66
    <mediaobject>
b0cc66
    <textobject>
b0cc66
<programlisting>
47422e
/home/centos/Projects/artwork/
b0cc66
|-- Locales/
b0cc66
|   `-- Scripts/
b0cc66
|       `-- Bash/
b0cc66
|           `-- es_ES/
b0cc66
|               |-- Functions/
b0cc66
|               |   |-- Commons/
b0cc66
|               |   |   |-- messages.po
b0cc66
|               |   |   `-- messages.pot
b0cc66
|               |   |-- Locales/
b0cc66
|               |   |   |-- messages.po
b0cc66
|               |   |   `-- messages.pot
b0cc66
|               |   `-- Render/
b0cc66
|               |       |-- messages.po
b0cc66
|               |       `-- messages.pot
b0cc66
|               |-- LC_MESSAGES/
b0cc66
|               |   `-- centos-art.sh.mo
b0cc66
|               |-- centos-art.sh.po
b0cc66
|               `-- centos-art.sh.pot
b0cc66
`-- Scripts/
b0cc66
    `-- Bash/
b0cc66
        |-- Functions/
b0cc66
        |   |-- Commons/
b0cc66
        |   |-- Locales/
b0cc66
        |   `-- Render/
b0cc66
        `-- centos-art.sh
b0cc66
</programlisting>
b0cc66
    </textobject>
b0cc66
    </mediaobject>
b0cc66
    </screenshot>
b0cc66
    </example>
b0cc66
6acace
    <para>
b0cc66
        A practical example of using the solution described above may
b0cc66
        be found when you are working on the corporate identity of
b0cc66
        &TC;; and then need to start a new corporate identity project
b0cc66
        for another organization. You want to keep the directory
b0cc66
        structure of &TCAR; and its automation tool, the
b0cc66
        <command>centos-art.sh</command> script.  Your new project
b0cc66
        requires you to introduce new functionalities to
b0cc66
        <command>centos-art.sh</command> which don't fit the needs of
6acace
        &TC;; (e.g., you want to introduce a
6acace
        <function>report</function> functionality to mesure how much
b0cc66
        connect time do you consume through your PPP internface.) or
b0cc66
        you just want to keep the directory structure of your new
b0cc66
        project as simple as possible.
6acace
    </para>
6acace
6acace
    <para>
b0cc66
        To go through this it is possible to mix specific parts of
6acace
        different central repositories into one single working copy.
6acace
        This is the working copy you'll use to manage your new
768ba4
        project. In <xref linkend="repository-history-2012-1" />, we
b0cc66
        see how the <filename class="directory">Render</filename>,
b0cc66
        <filename class="directory">Locales</filename> and 
b0cc66
        class="directory">Commons</filename> directories which come
b0cc66
        from the &TCAR; has been integrated into the working copy of
b0cc66
        your new project.
6acace
    </para>
6acace
        
6acace
    <example id="repository-history-2012-1">
6acace
    <title>Mixing automation functionalities.</title>
6acace
    <screenshot>
6acace
    <screeninfo>Mixing automation functionalities.</screeninfo>
6acace
    <mediaobject>
6acace
    <textobject>
6acace
<programlisting>
47422e
/home/al/Projects/Myapp/
b0cc66
|-- Locales/           
b0cc66
|   `-- Scripts/
b0cc66
|       `-- Bash/         
b0cc66
|           `-- es_ES/
b0cc66
|               |-- Functions/
b0cc66
|               |   |-- Commons/ <--| from https://projects.centos.org/svn/artwork/
b0cc66
|               |   |   |-- messages.po
b0cc66
|               |   |   `-- messages.pot
b0cc66
|               |   |-- Locales/ <--| from https://projects.centos.org/svn/artwork/
b0cc66
|               |   |   |-- messages.po
b0cc66
|               |   |   `-- messages.pot
b0cc66
|               |   |-- Render/  <--| from https://projects.centos.org/svn/artwork/
b0cc66
|               |   |   |-- messages.po
b0cc66
|               |   |   `-- messages.pot
b0cc66
|               |   `-- Report/
b0cc66
|               |       |-- messages.po
b0cc66
|               |       `-- messages.pot
b0cc66
|               |-- LC_MESSAGES/
b0cc66
|               |   `-- myapp.sh.mo
b0cc66
|               |-- myapp.sh.po
b0cc66
|               `-- myapp.sh.pot
b0cc66
`-- Scripts/
b0cc66
    `-- Bash/
b0cc66
        |-- Functions/
b0cc66
        |   |-- Commons/ <--| from https://projects.centos.org/svn/artwork/
b0cc66
        |   |-- Locales/ <--| from https://projects.centos.org/svn/artwork/
b0cc66
        |   |-- Render/  <--| from https://projects.centos.org/svn/artwork/
b0cc66
        |   `-- Report/
b0cc66
        `-- myapp.sh
6acace
</programlisting>
6acace
    </textobject>
6acace
    </mediaobject>
6acace
    </screenshot>
6acace
    </example>
6acace
6acace
    <para>
b0cc66
        At this point, your working copy contains files from two
768ba4
        different central repositories. One repository provides the
768ba4
        files of your new organization project and the other one
768ba4
        provides the files related to the <function>render</function>
768ba4
        functionality from &TCAR;.  In this environment, all updates
b0cc66
        commited to the <filename class="directory">Render</filename>,
b0cc66
        <filename class="directory">Locales</filename> and 
b0cc66
        class="directory">Commons</filename> directories at &TCAR;
b0cc66
        will be available to you too, the next time you update your
b0cc66
        working copy. Likewise, if you change something in any of
b0cc66
        these directories and commit your changes, your changes will
b0cc66
        be available to poeple working in &TCAR; the next time they
b0cc66
        update their working copies.
6acace
    </para>
6acace
6acace
    <para>
b0cc66
        Understanding the need of mixing different central
b0cc66
        repositories into a single working copy is an important step
b0cc66
        for reusing the functionalities that come with centos-art.sh
b0cc66
        script, but it is not enough if you want to customize the
b0cc66
        information produced by it.  By default, the centos-art.sh
b0cc66
        script uses information related to &TC;;. You probably need to
b0cc66
        change this if you are producing images to a different
b0cc66
        organization than &TC;;. For example, some of the information
b0cc66
        you might need to change would be the copyright holder,
b0cc66
        brands, domain names, mailing lists, and so forth.  To change
b0cc66
        this information you need to duplicate the file
b0cc66
        <filename>centos-art.sh</filename> and rename it to something
b0cc66
        else. Later, you need to edit the renamed version and change
b0cc66
        variables inside according your needs. In 
b0cc66
        linkend="repository-history-2012-1" />, we used the name
b0cc66
        <command>myapp.sh</command> instead of
b0cc66
        <command>centos-art.sh</command> so the information we set
319720
        inside it could reflect the specific needs that motivated the
6acace
        creation of a new project without affecting those from &TC;;.
6acace
    </para>
6acace
6acace
    <para>
6acace
        Most of the information you need to change in your duplicated
6acace
        version of <filename>centos-art.sh</filename> file is
319720
        controlled by a set of read-only variables. You modify these
6acace
        variables here and they will be available all along the script
6acace
        execution time. For example, you can change the value of
6acace
        <varname>CLI_WRKCOPY</varname> variable inside your duplicated
6acace
        version of <filename>centos-art.sh</filename> to change the
319720
        absolute path you use to store your working copy.
6acace
    </para>
6acace
25c17d
    </simplesect>
a59ac7
25c17d
    <simplesect>
a59ac7
    <title>Enhance The CentOS Logo Construction</title>
a59ac7
    
a59ac7
    <para>
a59ac7
        The CentOS Logo is made of two different components known as
9f93e0
        The CentOS Symbol and The CentOS Type.  Presently (at the end
9f93e0
        of September), to produce these components, we create one
9f93e0
        SVG image for each PNG image we want to
9f93e0
        produce, store it in 
47422e
        class="directory">Identity/Models/Brands/Logos</filename>
9f93e0
        directory structure and run the command: 
a59ac7
    </para>
9f93e0
    
9f93e0
    <cmdsynopsis>
47422e
        <command>centos-art render Identity/Images/Brands/Logos</command>
9f93e0
    </cmdsynopsis>
a59ac7
a59ac7
    <para>
9f93e0
        This model works and scales well in situations when there
9f93e0
        isn't a need to reuse final images among themselves. However,
9f93e0
        when you need to reuse images among themselves, a better
9f93e0
        solution is required. The goal here would be: don't create
9f93e0
        SVG images for PNG images you can build
9f93e0
        based on other PNG images.
a59ac7
    </para>
a59ac7
a59ac7
    <para>  
9f93e0
        This might be achieved through one of the following ways:
a59ac7
    </para>
a59ac7
a59ac7
    <itemizedlist>
a59ac7
    <listitem>
a59ac7
    <para>
9f93e0
        Create a new specific functionality to achieved the goal.
9f93e0
        Needed because the <xref linkend="scripts-bash-render" />
9f93e0
        specific functionality uses SVG files as
9f93e0
        reference to build images (i.e., one SVG
9f93e0
        image produces one PNG image). 
a59ac7
    </para>
a59ac7
    </listitem>
a59ac7
a59ac7
    <listitem>
a59ac7
    <para>
9f93e0
        Modify <xref linkend="scripts-bash-render" /> functionality to
9f93e0
        work in different modes based on file type or file extension.
9f93e0
        The first mode would use SVG files as
9f93e0
        reference to build PNG images (just as it was doing so far).
9f93e0
        The second mode would use a configuration file named
9f93e0
        <filename>render.conf</filename> as reference inside the
9f93e0
        design models directory you want to produce images for so as
9f93e0
        to build the related PNG images.  In this second case, the
9f93e0
        configuration file specifies how final PNG images will be
9f93e0
        produced (e.g., by appending or overlapping them one another).
a59ac7
    </para>
a59ac7
    </listitem>
a59ac7
    </itemizedlist>
a59ac7
a59ac7
    <para>
a59ac7
        For example, consider the following command-line:
a59ac7
    </para>
a59ac7
a59ac7
    <cmdsynopsis>
47422e
        <command>centos-art render Identity/Images/Brands/Logos</command>
a59ac7
    </cmdsynopsis>
a59ac7
25c17d
    <para>
9f93e0
        This command should evaluate which type of rendition will be
9f93e0
        done, based on whether the source file is a scalable vector
9f93e0
        graphic (SVG) or a configuration file.  To
9f93e0
        make this decision, the <command>centos-art.sh</command>
9f93e0
        script looks for SVG files first, and
9f93e0
        configuration files later. When SVG files
9f93e0
        are found, the <command>centos-art.sh</command> script uses a
9f93e0
        list of SVG files and process them one by
9f93e0
        one excluding any related configuration file that could exist.
9f93e0
        On the other hand, if no SVG file is found
9f93e0
        inside the related design model directory structure, the
9f93e0
        <command>centos-art.sh</command> script will use the
9f93e0
        configuration file with the name
9f93e0
        <filename>render.conf</filename> to create images as specified
9f93e0
        inside it. When neither a SVG or a
9f93e0
        configuration file is found inside the design model directory
9f93e0
        structure, the <command>centos-art.sh</command> script
9f93e0
        finishes its execution without any error message.  For
9f93e0
        example, if no SVG file is found inside
9f93e0
        
47422e
        class="directory">Identity/Models/Brands/Logos/</filename>
9f93e0
        directory and the
47422e
        <filename>Identity/Models/Brands/Logos/images.conf</filename>
9f93e0
        configuration file exists therein with the following content:
a59ac7
    </para>
a59ac7
a59ac7
<programlisting>
a59ac7
[centos.png]
47422e
models  = "Identity/Models/Brands/Symbols/centos-symbol-forlogos.svgz Identity/Models/Brands/Types/centos.svgz"
a59ac7
formats = "xpm jpg"
a59ac7
heights = "48 78"
a59ac7
fgcolor = "000000 ffffff"
9f93e0
bgcolor = "ffffff-0"
a59ac7
command = "/usr/bin/convert +append"
a59ac7
a59ac7
[centos-artwork.png]
47422e
models  = "Identity/Models/Brands/Symbols/centos-symbol-forlogos.svgz Identity/Models/Brands/Types/centos.svgz Identity/Models/Brands/Types/artwork.svgz"
a59ac7
formats = "xpm jpg"
a59ac7
heights = "48 78"
a59ac7
fgcolor = "000000 ffffff"
9f93e0
bgcolor = "ffffff-0"
9f93e0
command = "/usr/bin/convert +append"
a59ac7
</programlisting>
a59ac7
a59ac7
    <para>
9f93e0
        The <command>centos-art.sh</command> script should produce the
9f93e0
        following image files:
a59ac7
    </para>
a59ac7
a59ac7
<programlisting>
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.jpg
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.png
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.xpm
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.png
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.jpg
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.xmp
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.jpg
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.png
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.xpm
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.png
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.jpg
47422e
Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.xmp
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.jpg
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.png
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.xpm
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.png
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.jpg
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.xmp
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.jpg
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.png
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.xpm
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.png
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.jpg
47422e
Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.xmp
a59ac7
</programlisting>
a59ac7
a59ac7
    <para>
9f93e0
        The final location for storing images output inside the
9f93e0
        repository is determined by using the design model directory
9f93e0
        provided as argument. Basically, the
9f93e0
        <command>centos-art.sh</command> script changes the path
9f93e0
        components from Models to Images and adds foreground color,
9f93e0
        background color, height value and image name to it to
9f93e0
        differentiate rendered images.
9f93e0
    </para>
9f93e0
9f93e0
    <para>
9f93e0
        In case you need to restrict the amount of files you want to
9f93e0
        produce including their formats, heights, colors and commands,
9f93e0
        you need to modify the content of the related
9f93e0
        <filename>render.conf</filename> configuration file. There is
9f93e0
        not any command-line option available for such tasks. The most
9f93e0
        <xref linkend="scripts-bash-render" xreflabel="render"/>
9f93e0
        command-line options can do for you is when there are more
9f93e0
        than one configuration file inside the same design model
9f93e0
        directory and you need to specify which one of them will be
9f93e0
        used as reference. In such case you can use the
9f93e0
        <option>--filter="REGEX"</option> option.
9f93e0
    </para>
9f93e0
9f93e0
    <para>
9f93e0
        When images are produced through configuration files, the
9f93e0
        <command>centos-art.sh</command> script takes the order
9f93e0
        provided in the list of design models to build the list of
9f93e0
        images you will work with through the command specified. For
9f93e0
        example, the order in which images will be appended or
9f93e0
        overlapped.
9f93e0
    </para>
9f93e0
9f93e0
    <para>
9f93e0
        Localization of logo images will not be and must not be
9f93e0
        supported in any way. That would bring disastrous confusion in
9f93e0
        the area of visual recognition.
a59ac7
    </para>
a59ac7
25c17d
    </simplesect>
b0cc66
c4f5bf
</section>